commerce-toolkit 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/counter/counter.d.ts +25 -0
- package/dist/components/counter/counter.d.ts.map +1 -0
- package/dist/components/counter/index.d.ts +3 -0
- package/dist/components/counter/index.d.ts.map +1 -0
- package/dist/components/counter/primitives/counter-decrease.d.ts +4 -0
- package/dist/components/counter/primitives/counter-decrease.d.ts.map +1 -0
- package/dist/components/counter/primitives/counter-increase.d.ts +4 -0
- package/dist/components/counter/primitives/counter-increase.d.ts.map +1 -0
- package/dist/components/counter/primitives/counter-input.d.ts +4 -0
- package/dist/components/counter/primitives/counter-input.d.ts.map +1 -0
- package/dist/components/counter/primitives/counter-root.d.ts +16 -0
- package/dist/components/counter/primitives/counter-root.d.ts.map +1 -0
- package/dist/components/counter/primitives.d.ts +5 -0
- package/dist/components/counter/primitives.d.ts.map +1 -0
- package/dist/counter-input-BJov0Fub.cjs +2 -0
- package/dist/counter-input-BJov0Fub.cjs.map +1 -0
- package/dist/counter-input-hbz8NVA1.js +106 -0
- package/dist/counter-input-hbz8NVA1.js.map +1 -0
- package/dist/counter.cjs +2 -0
- package/dist/counter.cjs.map +1 -0
- package/dist/counter.js +9 -0
- package/dist/counter.js.map +1 -0
- package/dist/index.cjs +16 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +900 -845
- package/dist/index.js.map +1 -1
- package/package.json +11 -1
- package/dist/minus-BJih_7bh.cjs +0 -7
- package/dist/minus-BJih_7bh.cjs.map +0 -1
- package/dist/minus-B_YS3-aV.js +0 -13
- package/dist/minus-B_YS3-aV.js.map +0 -1
- package/dist/plus-DNl2AbQ2.js +0 -16
- package/dist/plus-DNl2AbQ2.js.map +0 -1
- package/dist/plus-De3UvuAJ.cjs +0 -7
- package/dist/plus-De3UvuAJ.cjs.map +0 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface CounterProps {
|
|
2
|
+
start?: number;
|
|
3
|
+
max?: number;
|
|
4
|
+
decrementAriaLabel?: string;
|
|
5
|
+
incrementAriaLabel?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* This component supports various CSS variables for theming. Here's a comprehensive list, along
|
|
9
|
+
* with their default values:
|
|
10
|
+
*
|
|
11
|
+
* ```css
|
|
12
|
+
* :root {
|
|
13
|
+
* --counter-focus: hsl(var(--primary));
|
|
14
|
+
* --counter-font-family: var(--font-family-body);
|
|
15
|
+
* --counter-background: hsl(var(--background));
|
|
16
|
+
* --counter-background-hover: color-mix(in oklab, hsl(var(--contrast-100)) 50%, transparent);
|
|
17
|
+
* --counter-border: hsl(var(--contrast-100));
|
|
18
|
+
* --counter-text: hsl(var(--foreground));
|
|
19
|
+
* --counter-icon-hover: hsl(var(--foreground));
|
|
20
|
+
* --counter-icon: hsl(var(--contrast-300));
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function Counter({ start, max, decrementAriaLabel, incrementAriaLabel, }: CounterProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
//# sourceMappingURL=counter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"counter.d.ts","sourceRoot":"","sources":["../../../src/components/counter/counter.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,OAAO,CAAC,EACtB,KAAS,EACT,GAAQ,EACR,kBAAqC,EACrC,kBAAqC,GACtC,EAAE,YAAY,2CAsBd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/counter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC1E,cAAc,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
export type CounterDecreaseProps = ComponentProps<'button'>;
|
|
3
|
+
export declare function CounterDecrease({ children, className, ...props }: CounterDecreaseProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
//# sourceMappingURL=counter-decrease.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"counter-decrease.d.ts","sourceRoot":"","sources":["../../../../src/components/counter/primitives/counter-decrease.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAK5C,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;AAE5D,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,2CAmBtF"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
export type CounterIncreaseProps = ComponentProps<'button'>;
|
|
3
|
+
export declare function CounterIncrease({ children, className, ...props }: CounterIncreaseProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
//# sourceMappingURL=counter-increase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"counter-increase.d.ts","sourceRoot":"","sources":["../../../../src/components/counter/primitives/counter-increase.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAK5C,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;AAE5D,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,2CAmBtF"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
export type CounterInputProps = Omit<ComponentProps<'input'>, 'type'>;
|
|
3
|
+
export declare function CounterInput({ className, ...props }: CounterInputProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
//# sourceMappingURL=counter-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"counter-input.d.ts","sourceRoot":"","sources":["../../../../src/components/counter/primitives/counter-input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAK5C,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;AAEtE,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAgBtE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
interface CounterContext {
|
|
3
|
+
count: number;
|
|
4
|
+
max: number;
|
|
5
|
+
decrement: () => void;
|
|
6
|
+
increment: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const CounterContext: import("react").Context<CounterContext | undefined>;
|
|
9
|
+
export type CounterRootProps = ComponentProps<'div'> & {
|
|
10
|
+
start?: number;
|
|
11
|
+
max?: number;
|
|
12
|
+
};
|
|
13
|
+
export declare function CounterRoot({ children, className, start, max, ...props }: CounterRootProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function useCounter(): CounterContext;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=counter-root.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"counter-root.d.ts","sourceRoot":"","sources":["../../../../src/components/counter/primitives/counter-root.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,cAAc,qDAAuD,CAAC;AAEnF,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,KAAS,EACT,GAAQ,EACR,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAmClB;AAED,wBAAgB,UAAU,mBAQzB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { CounterRoot as Root, type CounterRootProps as RootProps, useCounter, } from './primitives/counter-root';
|
|
2
|
+
export { CounterDecrease as Decrease, type CounterDecreaseProps as DecreaseProps, } from './primitives/counter-decrease';
|
|
3
|
+
export { CounterIncrease as Increase, type CounterIncreaseProps as IncreaseProps, } from './primitives/counter-increase';
|
|
4
|
+
export { CounterInput as Input, type CounterInputProps as InputProps, } from './primitives/counter-input';
|
|
5
|
+
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/components/counter/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,IAAI,EACnB,KAAK,gBAAgB,IAAI,SAAS,EAClC,UAAU,GACX,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,eAAe,IAAI,QAAQ,EAC3B,KAAK,oBAAoB,IAAI,aAAa,GAC3C,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EACL,eAAe,IAAI,QAAQ,EAC3B,KAAK,oBAAoB,IAAI,aAAa,GAC3C,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EACL,YAAY,IAAI,KAAK,EACrB,KAAK,iBAAiB,IAAI,UAAU,GACrC,MAAM,+CAA+C,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const s=require("react/jsx-runtime"),c=require("./utils-LBH114_M.cjs"),a=require("react"),p=a.createContext(void 0);function C({children:t,className:n,start:o=0,max:e=10,...r}){const[u,d]=a.useState(o),b=a.useCallback(()=>{d(l=>l-1)},[e]),v=a.useCallback(()=>{d(l=>l+1)},[e]),f=a.useMemo(()=>({count:u,max:e,decrement:b,increment:v}),[u,e,b,v]);return s.jsx(p.Provider,{value:f,children:s.jsx("div",{className:c.cn("flex items-center justify-between rounded-lg border border-[var(--counter-border,hsl(var(--contrast-100)))] bg-[var(--counter-background,hsl(var(--background)))] font-[var(--counter-font-family,var(--font-family-body))] text-[var(--counter-text,hsl(var(--foreground)))]",n),"data-slot":"counter-root",...r,children:t})})}function i(){const t=a.use(p);if(t===void 0)throw new Error("useCounter must be used within a CounterRoot");return t}function g({children:t,className:n,...o}){const{count:e,decrement:r}=i();return s.jsx("button",{className:c.cn("group z-[1] rounded-l-lg p-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--counter-focus,hsl(var(--primary)))] enabled:hover:bg-[var(--counter-background-hover,color-mix(in_oklab,hsl(var(--contrast-100))_50%,transparent))] disabled:cursor-not-allowed disabled:opacity-50",n),"data-slot":"counter-decrease","data-state":e>0?"enabled":"disabled",disabled:e===0,onClick:r,type:"button",...o,children:t})}function m({children:t,className:n,...o}){const{count:e,max:r,increment:u}=i();return s.jsx("button",{className:c.cn("group z-[1] rounded-r-lg p-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--counter-focus,hsl(var(--primary)))] enabled:hover:bg-[var(--counter-background-hover,color-mix(in_oklab,hsl(var(--contrast-100))_50%,transparent))] disabled:cursor-not-allowed disabled:opacity-50",n),"data-slot":"counter-increase","data-state":e<r?"enabled":"disabled",disabled:e===r,onClick:u,type:"button",...o,children:t})}function x({className:t,...n}){const{count:o,max:e}=i();return s.jsx("input",{className:c.cn("w-8 bg-transparent text-center [appearance:textfield] focus-visible:outline-none [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",t),"data-slot":"counter-input",max:e,type:"number",value:o,...n})}exports.CounterDecrease=g;exports.CounterIncrease=m;exports.CounterInput=x;exports.CounterRoot=C;exports.useCounter=i;
|
|
2
|
+
//# sourceMappingURL=counter-input-BJov0Fub.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"counter-input-BJov0Fub.cjs","sources":["../src/components/counter/primitives/counter-root.tsx","../src/components/counter/primitives/counter-decrease.tsx","../src/components/counter/primitives/counter-increase.tsx","../src/components/counter/primitives/counter-input.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, use, useCallback, useMemo, useState } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\ninterface CounterContext {\n count: number;\n max: number;\n decrement: () => void;\n increment: () => void;\n}\n\nexport const CounterContext = createContext<CounterContext | undefined>(undefined);\n\nexport type CounterRootProps = ComponentProps<'div'> & {\n start?: number;\n max?: number;\n};\n\nexport function CounterRoot({\n children,\n className,\n start = 0,\n max = 10,\n ...props\n}: CounterRootProps) {\n const [count, setCount] = useState(start);\n\n const decrement = useCallback(() => {\n setCount((prev) => prev - 1);\n }, [max]);\n\n const increment = useCallback(() => {\n setCount((prev) => prev + 1);\n }, [max]);\n\n const contextValues = useMemo(\n () => ({\n count,\n max,\n decrement,\n increment,\n }),\n [count, max, decrement, increment],\n );\n\n return (\n <CounterContext.Provider value={contextValues}>\n <div\n className={cn(\n 'flex items-center justify-between rounded-lg border border-[var(--counter-border,hsl(var(--contrast-100)))] bg-[var(--counter-background,hsl(var(--background)))] font-[var(--counter-font-family,var(--font-family-body))] text-[var(--counter-text,hsl(var(--foreground)))]',\n className,\n )}\n data-slot=\"counter-root\"\n {...props}\n >\n {children}\n </div>\n </CounterContext.Provider>\n );\n}\n\nexport function useCounter() {\n const context = use(CounterContext);\n\n if (context === undefined) {\n throw new Error('useCounter must be used within a CounterRoot');\n }\n\n return context;\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useCounter } from '@/components/counter';\nimport { cn } from '@/lib';\n\nexport type CounterDecreaseProps = ComponentProps<'button'>;\n\nexport function CounterDecrease({ children, className, ...props }: CounterDecreaseProps) {\n const { count, decrement } = useCounter();\n\n return (\n <button\n className={cn(\n 'group z-[1] rounded-l-lg p-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--counter-focus,hsl(var(--primary)))] enabled:hover:bg-[var(--counter-background-hover,color-mix(in_oklab,hsl(var(--contrast-100))_50%,transparent))] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n data-slot=\"counter-decrease\"\n data-state={count > 0 ? 'enabled' : 'disabled'}\n disabled={count === 0}\n onClick={decrement}\n type=\"button\"\n {...props}\n >\n {children}\n </button>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useCounter } from '@/components/counter';\nimport { cn } from '@/lib';\n\nexport type CounterIncreaseProps = ComponentProps<'button'>;\n\nexport function CounterIncrease({ children, className, ...props }: CounterIncreaseProps) {\n const { count, max, increment } = useCounter();\n\n return (\n <button\n className={cn(\n 'group z-[1] rounded-r-lg p-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--counter-focus,hsl(var(--primary)))] enabled:hover:bg-[var(--counter-background-hover,color-mix(in_oklab,hsl(var(--contrast-100))_50%,transparent))] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n data-slot=\"counter-increase\"\n data-state={count < max ? 'enabled' : 'disabled'}\n disabled={count === max}\n onClick={increment}\n type=\"button\"\n {...props}\n >\n {children}\n </button>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useCounter } from '@/components/counter';\nimport { cn } from '@/lib';\n\nexport type CounterInputProps = Omit<ComponentProps<'input'>, 'type'>;\n\nexport function CounterInput({ className, ...props }: CounterInputProps) {\n const { count, max } = useCounter();\n\n return (\n <input\n className={cn(\n 'w-8 bg-transparent text-center [appearance:textfield] focus-visible:outline-none [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none',\n className,\n )}\n data-slot=\"counter-input\"\n max={max}\n type=\"number\"\n value={count}\n {...props}\n />\n );\n}\n"],"names":["CounterContext","createContext","CounterRoot","children","className","start","max","props","count","setCount","useState","decrement","useCallback","prev","increment","contextValues","useMemo","jsx","cn","useCounter","context","use","CounterDecrease","CounterIncrease","CounterInput"],"mappings":"uGAcaA,EAAiBC,EAAAA,cAA0C,MAAS,EAO1E,SAASC,EAAY,CAC1B,SAAAC,EACA,UAAAC,EACA,MAAAC,EAAQ,EACR,IAAAC,EAAM,GACN,GAAGC,CACL,EAAqB,CACnB,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SAASL,CAAK,EAElCM,EAAYC,EAAAA,YAAY,IAAM,CAClCH,EAAUI,GAASA,EAAO,CAAC,CAC7B,EAAG,CAACP,CAAG,CAAC,EAEFQ,EAAYF,EAAAA,YAAY,IAAM,CAClCH,EAAUI,GAASA,EAAO,CAAC,CAC7B,EAAG,CAACP,CAAG,CAAC,EAEFS,EAAgBC,EAAAA,QACpB,KAAO,CACL,MAAAR,EACA,IAAAF,EACA,UAAAK,EACA,UAAAG,CAAA,GAEF,CAACN,EAAOF,EAAKK,EAAWG,CAAS,CAAA,EAGnC,OACEG,EAAAA,IAACjB,EAAe,SAAf,CAAwB,MAAOe,EAC9B,SAAAE,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GACT,gRACAd,CAAA,EAEF,YAAU,eACT,GAAGG,EAEH,SAAAJ,CAAA,CAAA,EAEL,CAEJ,CAEO,SAASgB,GAAa,CAC3B,MAAMC,EAAUC,EAAAA,IAAIrB,CAAc,EAElC,GAAIoB,IAAY,OACd,MAAM,IAAI,MAAM,8CAA8C,EAGhE,OAAOA,CACT,CC/DO,SAASE,EAAgB,CAAE,SAAAnB,EAAU,UAAAC,EAAW,GAAGG,GAA+B,CACvF,KAAM,CAAE,MAAAC,EAAO,UAAAG,CAAA,EAAcQ,EAAA,EAE7B,OACEF,EAAAA,IAAC,SAAA,CACC,UAAWC,EAAAA,GACT,6SACAd,CAAA,EAEF,YAAU,mBACV,aAAYI,EAAQ,EAAI,UAAY,WACpC,SAAUA,IAAU,EACpB,QAASG,EACT,KAAK,SACJ,GAAGJ,EAEH,SAAAJ,CAAA,CAAA,CAGP,CCnBO,SAASoB,EAAgB,CAAE,SAAApB,EAAU,UAAAC,EAAW,GAAGG,GAA+B,CACvF,KAAM,CAAE,MAAAC,EAAO,IAAAF,EAAK,UAAAQ,CAAA,EAAcK,EAAA,EAElC,OACEF,EAAAA,IAAC,SAAA,CACC,UAAWC,EAAAA,GACT,6SACAd,CAAA,EAEF,YAAU,mBACV,aAAYI,EAAQF,EAAM,UAAY,WACtC,SAAUE,IAAUF,EACpB,QAASQ,EACT,KAAK,SACJ,GAAGP,EAEH,SAAAJ,CAAA,CAAA,CAGP,CCnBO,SAASqB,EAAa,CAAE,UAAApB,EAAW,GAAGG,GAA4B,CACvE,KAAM,CAAE,MAAAC,EAAO,IAAAF,CAAA,EAAQa,EAAA,EAEvB,OACEF,EAAAA,IAAC,QAAA,CACC,UAAWC,EAAAA,GACT,iLACAd,CAAA,EAEF,YAAU,gBACV,IAAAE,EACA,KAAK,SACL,MAAOE,EACN,GAAGD,CAAA,CAAA,CAGV"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { c as u } from "./utils-BOGlfttm.js";
|
|
3
|
+
import { createContext as m, useState as g, useCallback as v, useMemo as C, use as h } from "react";
|
|
4
|
+
const p = m(void 0);
|
|
5
|
+
function w({
|
|
6
|
+
children: t,
|
|
7
|
+
className: n,
|
|
8
|
+
start: o = 0,
|
|
9
|
+
max: e = 10,
|
|
10
|
+
...r
|
|
11
|
+
}) {
|
|
12
|
+
const [s, l] = g(o), d = v(() => {
|
|
13
|
+
l((c) => c - 1);
|
|
14
|
+
}, [e]), b = v(() => {
|
|
15
|
+
l((c) => c + 1);
|
|
16
|
+
}, [e]), f = C(
|
|
17
|
+
() => ({
|
|
18
|
+
count: s,
|
|
19
|
+
max: e,
|
|
20
|
+
decrement: d,
|
|
21
|
+
increment: b
|
|
22
|
+
}),
|
|
23
|
+
[s, e, d, b]
|
|
24
|
+
);
|
|
25
|
+
return /* @__PURE__ */ a(p.Provider, { value: f, children: /* @__PURE__ */ a(
|
|
26
|
+
"div",
|
|
27
|
+
{
|
|
28
|
+
className: u(
|
|
29
|
+
"flex items-center justify-between rounded-lg border border-[var(--counter-border,hsl(var(--contrast-100)))] bg-[var(--counter-background,hsl(var(--background)))] font-[var(--counter-font-family,var(--font-family-body))] text-[var(--counter-text,hsl(var(--foreground)))]",
|
|
30
|
+
n
|
|
31
|
+
),
|
|
32
|
+
"data-slot": "counter-root",
|
|
33
|
+
...r,
|
|
34
|
+
children: t
|
|
35
|
+
}
|
|
36
|
+
) });
|
|
37
|
+
}
|
|
38
|
+
function i() {
|
|
39
|
+
const t = h(p);
|
|
40
|
+
if (t === void 0)
|
|
41
|
+
throw new Error("useCounter must be used within a CounterRoot");
|
|
42
|
+
return t;
|
|
43
|
+
}
|
|
44
|
+
function N({ children: t, className: n, ...o }) {
|
|
45
|
+
const { count: e, decrement: r } = i();
|
|
46
|
+
return /* @__PURE__ */ a(
|
|
47
|
+
"button",
|
|
48
|
+
{
|
|
49
|
+
className: u(
|
|
50
|
+
"group z-[1] rounded-l-lg p-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--counter-focus,hsl(var(--primary)))] enabled:hover:bg-[var(--counter-background-hover,color-mix(in_oklab,hsl(var(--contrast-100))_50%,transparent))] disabled:cursor-not-allowed disabled:opacity-50",
|
|
51
|
+
n
|
|
52
|
+
),
|
|
53
|
+
"data-slot": "counter-decrease",
|
|
54
|
+
"data-state": e > 0 ? "enabled" : "disabled",
|
|
55
|
+
disabled: e === 0,
|
|
56
|
+
onClick: r,
|
|
57
|
+
type: "button",
|
|
58
|
+
...o,
|
|
59
|
+
children: t
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
function _({ children: t, className: n, ...o }) {
|
|
64
|
+
const { count: e, max: r, increment: s } = i();
|
|
65
|
+
return /* @__PURE__ */ a(
|
|
66
|
+
"button",
|
|
67
|
+
{
|
|
68
|
+
className: u(
|
|
69
|
+
"group z-[1] rounded-r-lg p-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--counter-focus,hsl(var(--primary)))] enabled:hover:bg-[var(--counter-background-hover,color-mix(in_oklab,hsl(var(--contrast-100))_50%,transparent))] disabled:cursor-not-allowed disabled:opacity-50",
|
|
70
|
+
n
|
|
71
|
+
),
|
|
72
|
+
"data-slot": "counter-increase",
|
|
73
|
+
"data-state": e < r ? "enabled" : "disabled",
|
|
74
|
+
disabled: e === r,
|
|
75
|
+
onClick: s,
|
|
76
|
+
type: "button",
|
|
77
|
+
...o,
|
|
78
|
+
children: t
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
function j({ className: t, ...n }) {
|
|
83
|
+
const { count: o, max: e } = i();
|
|
84
|
+
return /* @__PURE__ */ a(
|
|
85
|
+
"input",
|
|
86
|
+
{
|
|
87
|
+
className: u(
|
|
88
|
+
"w-8 bg-transparent text-center [appearance:textfield] focus-visible:outline-none [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",
|
|
89
|
+
t
|
|
90
|
+
),
|
|
91
|
+
"data-slot": "counter-input",
|
|
92
|
+
max: e,
|
|
93
|
+
type: "number",
|
|
94
|
+
value: o,
|
|
95
|
+
...n
|
|
96
|
+
}
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
export {
|
|
100
|
+
w as C,
|
|
101
|
+
N as a,
|
|
102
|
+
_ as b,
|
|
103
|
+
j as c,
|
|
104
|
+
i as u
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=counter-input-hbz8NVA1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"counter-input-hbz8NVA1.js","sources":["../src/components/counter/primitives/counter-root.tsx","../src/components/counter/primitives/counter-decrease.tsx","../src/components/counter/primitives/counter-increase.tsx","../src/components/counter/primitives/counter-input.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, use, useCallback, useMemo, useState } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\ninterface CounterContext {\n count: number;\n max: number;\n decrement: () => void;\n increment: () => void;\n}\n\nexport const CounterContext = createContext<CounterContext | undefined>(undefined);\n\nexport type CounterRootProps = ComponentProps<'div'> & {\n start?: number;\n max?: number;\n};\n\nexport function CounterRoot({\n children,\n className,\n start = 0,\n max = 10,\n ...props\n}: CounterRootProps) {\n const [count, setCount] = useState(start);\n\n const decrement = useCallback(() => {\n setCount((prev) => prev - 1);\n }, [max]);\n\n const increment = useCallback(() => {\n setCount((prev) => prev + 1);\n }, [max]);\n\n const contextValues = useMemo(\n () => ({\n count,\n max,\n decrement,\n increment,\n }),\n [count, max, decrement, increment],\n );\n\n return (\n <CounterContext.Provider value={contextValues}>\n <div\n className={cn(\n 'flex items-center justify-between rounded-lg border border-[var(--counter-border,hsl(var(--contrast-100)))] bg-[var(--counter-background,hsl(var(--background)))] font-[var(--counter-font-family,var(--font-family-body))] text-[var(--counter-text,hsl(var(--foreground)))]',\n className,\n )}\n data-slot=\"counter-root\"\n {...props}\n >\n {children}\n </div>\n </CounterContext.Provider>\n );\n}\n\nexport function useCounter() {\n const context = use(CounterContext);\n\n if (context === undefined) {\n throw new Error('useCounter must be used within a CounterRoot');\n }\n\n return context;\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useCounter } from '@/components/counter';\nimport { cn } from '@/lib';\n\nexport type CounterDecreaseProps = ComponentProps<'button'>;\n\nexport function CounterDecrease({ children, className, ...props }: CounterDecreaseProps) {\n const { count, decrement } = useCounter();\n\n return (\n <button\n className={cn(\n 'group z-[1] rounded-l-lg p-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--counter-focus,hsl(var(--primary)))] enabled:hover:bg-[var(--counter-background-hover,color-mix(in_oklab,hsl(var(--contrast-100))_50%,transparent))] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n data-slot=\"counter-decrease\"\n data-state={count > 0 ? 'enabled' : 'disabled'}\n disabled={count === 0}\n onClick={decrement}\n type=\"button\"\n {...props}\n >\n {children}\n </button>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useCounter } from '@/components/counter';\nimport { cn } from '@/lib';\n\nexport type CounterIncreaseProps = ComponentProps<'button'>;\n\nexport function CounterIncrease({ children, className, ...props }: CounterIncreaseProps) {\n const { count, max, increment } = useCounter();\n\n return (\n <button\n className={cn(\n 'group z-[1] rounded-r-lg p-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--counter-focus,hsl(var(--primary)))] enabled:hover:bg-[var(--counter-background-hover,color-mix(in_oklab,hsl(var(--contrast-100))_50%,transparent))] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n data-slot=\"counter-increase\"\n data-state={count < max ? 'enabled' : 'disabled'}\n disabled={count === max}\n onClick={increment}\n type=\"button\"\n {...props}\n >\n {children}\n </button>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useCounter } from '@/components/counter';\nimport { cn } from '@/lib';\n\nexport type CounterInputProps = Omit<ComponentProps<'input'>, 'type'>;\n\nexport function CounterInput({ className, ...props }: CounterInputProps) {\n const { count, max } = useCounter();\n\n return (\n <input\n className={cn(\n 'w-8 bg-transparent text-center [appearance:textfield] focus-visible:outline-none [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none',\n className,\n )}\n data-slot=\"counter-input\"\n max={max}\n type=\"number\"\n value={count}\n {...props}\n />\n );\n}\n"],"names":["CounterContext","createContext","CounterRoot","children","className","start","max","props","count","setCount","useState","decrement","useCallback","prev","increment","contextValues","useMemo","jsx","cn","useCounter","context","use","CounterDecrease","CounterIncrease","CounterInput"],"mappings":";;;AAcO,MAAMA,IAAiBC,EAA0C,MAAS;AAO1E,SAASC,EAAY;AAAA,EAC1B,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,KAAAC,IAAM;AAAA,EACN,GAAGC;AACL,GAAqB;AACnB,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAASL,CAAK,GAElCM,IAAYC,EAAY,MAAM;AAClC,IAAAH,EAAS,CAACI,MAASA,IAAO,CAAC;AAAA,EAC7B,GAAG,CAACP,CAAG,CAAC,GAEFQ,IAAYF,EAAY,MAAM;AAClC,IAAAH,EAAS,CAACI,MAASA,IAAO,CAAC;AAAA,EAC7B,GAAG,CAACP,CAAG,CAAC,GAEFS,IAAgBC;AAAA,IACpB,OAAO;AAAA,MACL,OAAAR;AAAA,MACA,KAAAF;AAAA,MACA,WAAAK;AAAA,MACA,WAAAG;AAAA,IAAA;AAAA,IAEF,CAACN,GAAOF,GAAKK,GAAWG,CAAS;AAAA,EAAA;AAGnC,SACE,gBAAAG,EAACjB,EAAe,UAAf,EAAwB,OAAOe,GAC9B,UAAA,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAd;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGG;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;AAEO,SAASgB,IAAa;AAC3B,QAAMC,IAAUC,EAAIrB,CAAc;AAElC,MAAIoB,MAAY;AACd,UAAM,IAAI,MAAM,8CAA8C;AAGhE,SAAOA;AACT;AC/DO,SAASE,EAAgB,EAAE,UAAAnB,GAAU,WAAAC,GAAW,GAAGG,KAA+B;AACvF,QAAM,EAAE,OAAAC,GAAO,WAAAG,EAAA,IAAcQ,EAAA;AAE7B,SACE,gBAAAF;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAd;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACV,cAAYI,IAAQ,IAAI,YAAY;AAAA,MACpC,UAAUA,MAAU;AAAA,MACpB,SAASG;AAAA,MACT,MAAK;AAAA,MACJ,GAAGJ;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP;ACnBO,SAASoB,EAAgB,EAAE,UAAApB,GAAU,WAAAC,GAAW,GAAGG,KAA+B;AACvF,QAAM,EAAE,OAAAC,GAAO,KAAAF,GAAK,WAAAQ,EAAA,IAAcK,EAAA;AAElC,SACE,gBAAAF;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAd;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACV,cAAYI,IAAQF,IAAM,YAAY;AAAA,MACtC,UAAUE,MAAUF;AAAA,MACpB,SAASQ;AAAA,MACT,MAAK;AAAA,MACJ,GAAGP;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP;ACnBO,SAASqB,EAAa,EAAE,WAAApB,GAAW,GAAGG,KAA4B;AACvE,QAAM,EAAE,OAAAC,GAAO,KAAAF,EAAA,IAAQa,EAAA;AAEvB,SACE,gBAAAF;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAd;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACV,KAAAE;AAAA,MACA,MAAK;AAAA,MACL,OAAOE;AAAA,MACN,GAAGD;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
package/dist/counter.cjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./counter-input-BJov0Fub.cjs");exports.Decrease=e.CounterDecrease;exports.Increase=e.CounterIncrease;exports.Input=e.CounterInput;exports.Root=e.CounterRoot;exports.useCounter=e.useCounter;
|
|
2
|
+
//# sourceMappingURL=counter.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"counter.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/counter.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"counter.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|