@dinefy/react-button 2.0.6 → 2.0.9

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
@@ -50,18 +50,6 @@ import { Plus } from "lucide-react";
50
50
  </Button.Root>
51
51
  ```
52
52
 
53
- ### Render Props
54
-
55
- ```tsx
56
- <Button.Root variant="primary">
57
- {({ isLoading }) => (
58
- <>
59
- {isLoading ? "Saving..." : "Save"}
60
- </>
61
- )}
62
- </Button.Root>
63
- ```
64
-
65
53
  ## API
66
54
 
67
55
  ### Button.Root
@@ -69,7 +57,7 @@ import { Plus } from "lucide-react";
69
57
  - `size`: "xs" | "sm" | "md" | "lg" | "xl"
70
58
  - `isLoading`: boolean
71
59
  - `isFull`: boolean (full width)
72
- - `children`: ReactNode | ((props: { isLoading: boolean }) => ReactNode)
60
+ - `children`: ReactNode
73
61
 
74
62
  ### Button.Icon
75
63
  - `icon`: Lucide React icon component
package/dist/index.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  'use strict';var react=require('react'),createRuntimeFn=require('@vanilla-extract/recipes/createRuntimeFn'),jsxRuntime=require('react/jsx-runtime'),lucideReact=require('lucide-react');require('./index.css');
2
- var u=createRuntimeFn.createRuntimeFn({defaultClassName:"jvws981 _4zefg30",variantClassNames:{variant:{primary:"jvws982",danger:"jvws983",secondary:"jvws984",secondaryGhost:"jvws985",tertiary:"jvws986",tertiaryGhost:"jvws987"},size:{xs:"jvws988",sm:"jvws989",md:"jvws98a",lg:"jvws98b",xl:"jvws98c"},full:{true:"jvws98d"}},defaultVariants:{variant:"primary",size:"md"},compoundVariants:[]});var y="et8m6e0";var c=({icon:n,size:e,className:o,iconProps:r,...s})=>{let a=n;if(!a)return null;let d={...r??{}},t=[y,o].filter(Boolean).join(" "),l=e!=null?{width:e,height:e}:void 0;return jsxRuntime.jsx(a,{"data-slot":"icon","aria-hidden":true,className:t,style:l,...d,...s})};c.displayName="Button.Icon";var m=createRuntimeFn.createRuntimeFn({defaultClassName:"apymnw1",variantClassNames:{},defaultVariants:{},compoundVariants:[]});var i=({className:n,...e})=>{let o=[m(),n].filter(Boolean).join(" ");return jsxRuntime.jsx(lucideReact.LoaderCircle,{"data-slot":"spinner",className:o,"aria-hidden":true,...e})};i.displayName="Button.Spinner";var f=({children:n,...e})=>jsxRuntime.jsx("span",{"data-slot":"value",...e,children:n});f.displayName="Button.Value";var g=({className:n,type:e="button",children:o,isLoading:r=false,isFull:s=false,size:a="md",variant:d="primary",...t})=>{let l=[u({full:s?true:void 0,size:a,variant:d}),n].filter(Boolean).join(" "),h=!!t.disabled||r,p=typeof o=="function",j=Array.isArray(o)?o:[o],x=!p&&j.some(v=>react.isValidElement(v)&&v.type===i),k=p?o({isLoading:r}):r?x?o:jsxRuntime.jsx(w.Spinner,{}):o;return jsxRuntime.jsx("button",{...t,className:l,type:e,disabled:h,"aria-busy":r||void 0,children:k})};g.displayName="Button";var w={Root:g,Icon:c,Value:f,Spinner:i};exports.Button=w;//# sourceMappingURL=index.cjs.map
2
+ var p=createRuntimeFn.createRuntimeFn({defaultClassName:"jvws981 _4zefg30",variantClassNames:{variant:{primary:"jvws982",danger:"jvws983",secondary:"jvws984",secondaryGhost:"jvws985",tertiary:"jvws986",tertiaryGhost:"jvws987"},size:{xs:"jvws988",sm:"jvws989",md:"jvws98a",lg:"jvws98b",xl:"jvws98c"},full:{true:"jvws98d"}},defaultVariants:{variant:"primary",size:"md"},compoundVariants:[]});var u="et8m6e0";var c=({icon:e,size:o,className:n,iconProps:r,...s})=>{let a=e;if(!a)return null;let d={...r??{}},t=[u,n].filter(Boolean).join(" "),l=o!=null?{width:o,height:o}:void 0;return jsxRuntime.jsx(a,{"data-slot":"icon","aria-hidden":true,className:t,style:l,...d,...s})};c.displayName="Button.Icon";var y=createRuntimeFn.createRuntimeFn({defaultClassName:"apymnw1",variantClassNames:{},defaultVariants:{},compoundVariants:[]});var i=({className:e,...o})=>{let n=[y(),e].filter(Boolean).join(" ");return jsxRuntime.jsx(lucideReact.LoaderCircle,{"data-slot":"spinner",className:n,"aria-hidden":true,...o})};i.displayName="Button.Spinner";var f=({children:e,...o})=>jsxRuntime.jsx("span",{"data-slot":"value",...o,children:e});f.displayName="Button.Value";var b=({className:e,type:o="button",children:n,isLoading:r=false,isFull:s=false,size:a="md",variant:d="primary",...t})=>{let l=[p({full:s?true:void 0,size:a,variant:d}),e].filter(Boolean).join(" "),w=!!t.disabled||r,h=(Array.isArray(n)?n:[n]).some(v=>react.isValidElement(v)&&v.type===i),j=r?h?n:jsxRuntime.jsx(g.Spinner,{}):n;return jsxRuntime.jsx("button",{...t,className:l,type:o,disabled:w,"aria-busy":r||void 0,children:j})};b.displayName="Button.Root";var g={Root:b,Icon:c,Value:f,Spinner:i};exports.Button=g;//# sourceMappingURL=index.cjs.map
3
3
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/button.css.ts","../src/components/Icon/Button.Icon.css.ts","../src/components/Icon/Button.Icon.tsx","../src/components/spinner/Button.Spinner.css.ts","../src/components/spinner/Button.Spinner.tsx","../src/components/Value/Button.Value.tsx","../src/Button.tsx"],"names":["button","_7a468","icon","ButtonIcon","size","className","iconProps","restProps","IconComp","mergedIconProps","mergedClassName","styleOverride","jsx","spinner","ButtonSpinner","props","LoaderCircle","ButtonValue","children","ButtonBase","type","isLoading","isFull","variant","isDisabled","isRenderProp","childList","hasCustomSpinner","c","isValidElement","content","Button"],"mappings":"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","file":"index.cjs","sourcesContent":["import 'src/button.reset.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51Uy44bIRC871dw8yWsHCUnVvmSaLVqoGemZUyPoPEr2n+PYD3xeGcsJTl2Ff0qCp7fvl+w679t1a8npSyfdKYLxd4oy8lj0pZPL42pkVGRI95incBTyUZtK8ZFAkWcHQK36xOX6Ncw7ThwMkoSxDxCwigv0wwDeD7ekmAcERJENyuuj2h3JHqV2/Nlleg4ilEUB0wkE6A72FM4L/FMF1yiR6R+uK9S19bDEr9uOEMET6I9Ok4gxPE2WSOaFB2n/SccAvXRKIdRMFX0gEnIQZgYCxnrEK1pSbl2HZmm4yVj0hkDOlkKuE5WBR8w+QFxrScw6oH6IVQ5Hlzyn7Nc3KAdhMBlVspTHgO0G2nS2sBuV4kjeRmMgiJcw0nyKeYDpi5U5xwokw0fCtbWNFf7/el5sr3p2JXczL+078KJ88ShNvufRHBCB/zbzOv8c1PMi3nKYAP6j3IjOJKzUV/nPvDYQQlyn2faBbflNcV43WR65e05j+B9+wm2d6k/5Tzij40tIhw3r1/UZyYXuydZYxJmlM1ra/VvT/r9N1bx6MKoBAAA';\nimport 'src/button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VY226jMBB9z1fwslIj7VS9JWnpl+zjgA1Ma2xkm1y66r+vMJACLQlQss1DlMBczsw5Hlu+ftnuzNPjrfd34XmB0oxr0MgoN763RX0FwEjy6OAeEoh4+ewM92DojWTs106B2hdvGJlM4MH3SAqSHCLB3XMUFEsgy1PjeyGXluvi8UtuLEUHCJW0XNrmqxizDgSTYUgyBpM6EJGSFnac4sR2DO0hU7HGLDlAwwhSzihv+EaYkjic8S2NgApYztWVlZxJ2zACW3w71zDXRmnfyxTVVVqN0pAlJX0vwPA11iqXDEIllG5HT1VhBSzX6H5EaOzySxOOxrXJomSo2fK3t/CaH8degkztLpVB5dZ14KJlXLhHTtUXzeG4j5RO50rwvHhfXFcL2mdkMBCcuZVdK08qCyiE2nFWqE8VK8p2l0D1FOoI7bgYWtpyF/VYgF/+FGj5n6vbbP8xJJzMirySN6LcleOmo/cODPfMQKBRsnL59BtJnluNAkKUWzRV+oLBz6n9RG25HgsAnNeyFajRiTGReJolaMi0g0UqzA1syVAgypjVIvK9u2zvGSWIDQv6sfxUFBnenVL1FN23ANyPKIOhjKthOAsl96MpKREAhsV20SpjPClVrK9YuZ/Oyueok2h5GFFIb8OHOJlcRxhyMHlgBW8674jZpOPcfAUJki7qajoZexDcL/vz3Oxah/qH0dR3ALeaNZ783vIbQSdroA5O8nUy/+0xPldRqzlkVZPZz+5qTnZXl2B39aPsrmZgd+gYtnxvIc1teztfX3q+DNq9P4z+x8xZTzwB1CpC0dpy1lPPAU0CBzayvZ9MOmmsv3vSqA9CkxS/nqL4k+3ffE/BI1R5ft5t5lXWZg5lTRLJ5kdFspldJI8uEED576aLgt64AQqVLIF4XoaMucuNPrTnLyaKoGeuFgqTTulPQ4FWqU4DNWkP0JSNB+oyHoHiUKBVqtNAU9YDtLpvGgU0be1wwVCgVarTQEXcA3QvxgN1GY9Aw8EaFUM0KnqA3k1B6nyOSMtlWe3Rtzc3v1oXf+WN3/s/JGFvqVkUAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var button = _7a468({defaultClassName:'jvws981 _4zefg30',variantClassNames:{variant:{primary:'jvws982',danger:'jvws983',secondary:'jvws984',secondaryGhost:'jvws985',tertiary:'jvws986',tertiaryGhost:'jvws987'},size:{xs:'jvws988',sm:'jvws989',md:'jvws98a',lg:'jvws98b',xl:'jvws98c'},full:{true:'jvws98d'}},defaultVariants:{variant:'primary',size:'md'},compoundVariants:[]});\nexport var iconSizeVar = 'var(--jvws980)';","import 'src/button.reset.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51Uy44bIRC871dw8yWsHCUnVvmSaLVqoGemZUyPoPEr2n+PYD3xeGcsJTl2Ff0qCp7fvl+w679t1a8npSyfdKYLxd4oy8lj0pZPL42pkVGRI95incBTyUZtK8ZFAkWcHQK36xOX6Ncw7ThwMkoSxDxCwigv0wwDeD7ekmAcERJENyuuj2h3JHqV2/Nlleg4ilEUB0wkE6A72FM4L/FMF1yiR6R+uK9S19bDEr9uOEMET6I9Ok4gxPE2WSOaFB2n/SccAvXRKIdRMFX0gEnIQZgYCxnrEK1pSbl2HZmm4yVj0hkDOlkKuE5WBR8w+QFxrScw6oH6IVQ5Hlzyn7Nc3KAdhMBlVspTHgO0G2nS2sBuV4kjeRmMgiJcw0nyKeYDpi5U5xwokw0fCtbWNFf7/el5sr3p2JXczL+078KJ88ShNvufRHBCB/zbzOv8c1PMi3nKYAP6j3IjOJKzUV/nPvDYQQlyn2faBbflNcV43WR65e05j+B9+wm2d6k/5Tzij40tIhw3r1/UZyYXuydZYxJmlM1ra/VvT/r9N1bx6MKoBAAA';\nimport 'src/button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VY226jMBB9z1fwslIj7VS9JWnpl+zjgA1Ma2xkm1y66r+vMJACLQlQss1DlMBczsw5Hlu+ftnuzNPjrfd34XmB0oxr0MgoN763RX0FwEjy6OAeEoh4+ewM92DojWTs106B2hdvGJlM4MH3SAqSHCLB3XMUFEsgy1PjeyGXluvi8UtuLEUHCJW0XNrmqxizDgSTYUgyBpM6EJGSFnac4sR2DO0hU7HGLDlAwwhSzihv+EaYkjic8S2NgApYztWVlZxJ2zACW3w71zDXRmnfyxTVVVqN0pAlJX0vwPA11iqXDEIllG5HT1VhBSzX6H5EaOzySxOOxrXJomSo2fK3t/CaH8degkztLpVB5dZ14KJlXLhHTtUXzeG4j5RO50rwvHhfXFcL2mdkMBCcuZVdK08qCyiE2nFWqE8VK8p2l0D1FOoI7bgYWtpyF/VYgF/+FGj5n6vbbP8xJJzMirySN6LcleOmo/cODPfMQKBRsnL59BtJnluNAkKUWzRV+oLBz6n9RG25HgsAnNeyFajRiTGReJolaMi0g0UqzA1syVAgypjVIvK9u2zvGSWIDQv6sfxUFBnenVL1FN23ANyPKIOhjKthOAsl96MpKREAhsV20SpjPClVrK9YuZ/Oyueok2h5GFFIb8OHOJlcRxhyMHlgBW8674jZpOPcfAUJki7qajoZexDcL/vz3Oxah/qH0dR3ALeaNZ783vIbQSdroA5O8nUy/+0xPldRqzlkVZPZz+5qTnZXl2B39aPsrmZgd+gYtnxvIc1teztfX3q+DNq9P4z+x8xZTzwB1CpC0dpy1lPPAU0CBzayvZ9MOmmsv3vSqA9CkxS/nqL4k+3ffE/BI1R5ft5t5lXWZg5lTRLJ5kdFspldJI8uEED576aLgt64AQqVLIF4XoaMucuNPrTnLyaKoGeuFgqTTulPQ4FWqU4DNWkP0JSNB+oyHoHiUKBVqtNAU9YDtLpvGgU0be1wwVCgVarTQEXcA3QvxgN1GY9Aw8EaFUM0KnqA3k1B6nyOSMtlWe3Rtzc3v1oXf+WN3/s/JGFvqVkUAAA=';\nimport 'src/components/Icon/Button.Icon.css.ts.vanilla.css?source=LmV0OG02ZTAgewogIHdpZHRoOiB2YXIoLS1qdndzOTgwKTsKICBoZWlnaHQ6IHZhcigtLWp2d3M5ODApOwp9';\nexport var icon = 'et8m6e0';","import type {\n\tComponentType,\n\tCSSProperties,\n\tElementType,\n\tForwardRefExoticComponent,\n\tSVGProps,\n} from \"react\";\nimport { icon as iconClass } from \"./Button.Icon.css.ts\";\n\nexport type IconComponent =\n\t| ElementType\n\t| ComponentType<SVGProps<SVGSVGElement>>\n\t| ForwardRefExoticComponent<SVGProps<SVGSVGElement>>;\n\nexport type ButtonIconProps = Record<string, unknown> & {\n\ticon:\n\t\t| ElementType\n\t\t| ComponentType<SVGProps<SVGSVGElement>>\n\t\t| ForwardRefExoticComponent<SVGProps<SVGSVGElement>>;\n\tsize?: number | string;\n\tclassName?: string;\n\ticonProps?: Record<string, unknown>;\n};\n\nexport const ButtonIcon = ({ icon, size, className, iconProps, ...restProps }: ButtonIconProps) => {\n\tconst IconComp = icon;\n\tif (!IconComp) return null;\n\n\tconst mergedIconProps = { ...(iconProps ?? {}) } as Record<string, unknown>;\n\tconst mergedClassName = [iconClass, className].filter(Boolean).join(\" \");\n\tconst styleOverride: CSSProperties | undefined =\n\t\tsize != null ? { width: size, height: size } : undefined;\n\n\treturn (\n\t\t<IconComp\n\t\t\tdata-slot=\"icon\"\n\t\t\taria-hidden\n\t\t\tclassName={mergedClassName}\n\t\t\tstyle={styleOverride}\n\t\t\t{...mergedIconProps}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n};\n\nButtonIcon.displayName = \"Button.Icon\";\n","import 'src/button.reset.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51Uy44bIRC871dw8yWsHCUnVvmSaLVqoGemZUyPoPEr2n+PYD3xeGcsJTl2Ff0qCp7fvl+w679t1a8npSyfdKYLxd4oy8lj0pZPL42pkVGRI95incBTyUZtK8ZFAkWcHQK36xOX6Ncw7ThwMkoSxDxCwigv0wwDeD7ekmAcERJENyuuj2h3JHqV2/Nlleg4ilEUB0wkE6A72FM4L/FMF1yiR6R+uK9S19bDEr9uOEMET6I9Ok4gxPE2WSOaFB2n/SccAvXRKIdRMFX0gEnIQZgYCxnrEK1pSbl2HZmm4yVj0hkDOlkKuE5WBR8w+QFxrScw6oH6IVQ5Hlzyn7Nc3KAdhMBlVspTHgO0G2nS2sBuV4kjeRmMgiJcw0nyKeYDpi5U5xwokw0fCtbWNFf7/el5sr3p2JXczL+078KJ88ShNvufRHBCB/zbzOv8c1PMi3nKYAP6j3IjOJKzUV/nPvDYQQlyn2faBbflNcV43WR65e05j+B9+wm2d6k/5Tzij40tIhw3r1/UZyYXuydZYxJmlM1ra/VvT/r9N1bx6MKoBAAA';\nimport 'src/button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VY226jMBB9z1fwslIj7VS9JWnpl+zjgA1Ma2xkm1y66r+vMJACLQlQss1DlMBczsw5Hlu+ftnuzNPjrfd34XmB0oxr0MgoN763RX0FwEjy6OAeEoh4+ewM92DojWTs106B2hdvGJlM4MH3SAqSHCLB3XMUFEsgy1PjeyGXluvi8UtuLEUHCJW0XNrmqxizDgSTYUgyBpM6EJGSFnac4sR2DO0hU7HGLDlAwwhSzihv+EaYkjic8S2NgApYztWVlZxJ2zACW3w71zDXRmnfyxTVVVqN0pAlJX0vwPA11iqXDEIllG5HT1VhBSzX6H5EaOzySxOOxrXJomSo2fK3t/CaH8degkztLpVB5dZ14KJlXLhHTtUXzeG4j5RO50rwvHhfXFcL2mdkMBCcuZVdK08qCyiE2nFWqE8VK8p2l0D1FOoI7bgYWtpyF/VYgF/+FGj5n6vbbP8xJJzMirySN6LcleOmo/cODPfMQKBRsnL59BtJnluNAkKUWzRV+oLBz6n9RG25HgsAnNeyFajRiTGReJolaMi0g0UqzA1syVAgypjVIvK9u2zvGSWIDQv6sfxUFBnenVL1FN23ANyPKIOhjKthOAsl96MpKREAhsV20SpjPClVrK9YuZ/Oyueok2h5GFFIb8OHOJlcRxhyMHlgBW8674jZpOPcfAUJki7qajoZexDcL/vz3Oxah/qH0dR3ALeaNZ783vIbQSdroA5O8nUy/+0xPldRqzlkVZPZz+5qTnZXl2B39aPsrmZgd+gYtnxvIc1teztfX3q+DNq9P4z+x8xZTzwB1CpC0dpy1lPPAU0CBzayvZ9MOmmsv3vSqA9CkxS/nqL4k+3ffE/BI1R5ft5t5lXWZg5lTRLJ5kdFspldJI8uEED576aLgt64AQqVLIF4XoaMucuNPrTnLyaKoGeuFgqTTulPQ4FWqU4DNWkP0JSNB+oyHoHiUKBVqtNAU9YDtLpvGgU0be1wwVCgVarTQEXcA3QvxgN1GY9Aw8EaFUM0KnqA3k1B6nyOSMtlWe3Rtzc3v1oXf+WN3/s/JGFvqVkUAAA=';\nimport 'src/components/spinner/Button.Spinner.css.ts.vanilla.css?source=QGtleWZyYW1lcyBhcHltbncwIHsKICBmcm9tIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogIH0KICB0byB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogIH0KfQouYXB5bW53MSB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGFuaW1hdGlvbjogYXB5bW53MCAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsKICB3aWR0aDogdmFyKC0tanZ3czk4MCk7CiAgaGVpZ2h0OiB2YXIoLS1qdndzOTgwKTsKfQ==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var spinner = _7a468({defaultClassName:'apymnw1',variantClassNames:{},defaultVariants:{},compoundVariants:[]});","import { LoaderCircle } from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\nimport { spinner } from \"./Button.Spinner.css.ts\";\n\nexport type ButtonSpinnerProps = ComponentProps<typeof LoaderCircle>;\n\nexport const ButtonSpinner = ({ className, ...props }: ButtonSpinnerProps) => {\n\tconst mergedClassName = [spinner(), className].filter(Boolean).join(\" \");\n\n\treturn <LoaderCircle data-slot=\"spinner\" className={mergedClassName} aria-hidden {...props} />;\n};\n\nButtonSpinner.displayName = \"Button.Spinner\";\n","import type { ButtonHTMLAttributes, ReactNode } from \"react\";\n\nexport type ButtonValueProps = ButtonHTMLAttributes<HTMLSpanElement> & {\n\tchildren?: ReactNode;\n};\n\nexport const ButtonValue = ({ children, ...props }: ButtonValueProps) => (\n\t<span data-slot=\"value\" {...props}>\n\t\t{children}\n\t</span>\n);\n\nButtonValue.displayName = \"Button.Value\";\n","import type { ButtonHTMLAttributes, ReactNode } from \"react\";\nimport { isValidElement } from \"react\";\nimport { button } from \"./button.css\";\nimport { ButtonIcon } from \"./components/Icon/Button.Icon\";\nimport { ButtonSpinner } from \"./components/spinner/Button.Spinner\";\nimport { ButtonValue } from \"./components/Value/Button.Value\";\n\nexport type ButtonSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport type ButtonVariant =\n\t| \"primary\"\n\t| \"secondary\"\n\t| \"tertiary\"\n\t| \"secondaryGhost\"\n\t| \"tertiaryGhost\"\n\t| \"danger\";\n\ntype ButtonRenderProps = {\n\tisLoading: boolean;\n};\n\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"children\"> {\n\tchildren?: ReactNode | ((props: ButtonRenderProps) => ReactNode);\n\tisLoading?: boolean;\n\tisFull?: boolean;\n\tsize?: ButtonSize;\n\tvariant?: ButtonVariant;\n}\n\nconst ButtonBase = ({\n\tclassName,\n\ttype = \"button\",\n\tchildren,\n\tisLoading = false,\n\tisFull = false,\n\tsize = \"md\",\n\tvariant = \"primary\",\n\t...props\n}: ButtonProps) => {\n\tconst mergedClassName = [button({ full: isFull ? true : undefined, size, variant }), className]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n\tconst isDisabled = Boolean(props.disabled) || isLoading;\n\n\tconst isRenderProp = typeof children === \"function\";\n\tconst childList = Array.isArray(children) ? children : [children];\n\tconst hasCustomSpinner =\n\t\t!isRenderProp && childList.some((c) => isValidElement(c) && c.type === ButtonSpinner);\n\n\tconst content: ReactNode = isRenderProp ? (\n\t\t(children as (p: ButtonRenderProps) => ReactNode)({ isLoading })\n\t) : isLoading ? (\n\t\thasCustomSpinner ? (\n\t\t\tchildren\n\t\t) : (\n\t\t\t<Button.Spinner />\n\t\t)\n\t) : (\n\t\tchildren\n\t);\n\n\treturn (\n\t\t<button\n\t\t\t{...props}\n\t\t\tclassName={mergedClassName}\n\t\t\ttype={type}\n\t\t\tdisabled={isDisabled}\n\t\t\taria-busy={isLoading || undefined}\n\t\t>\n\t\t\t{content}\n\t\t</button>\n\t);\n};\n\nButtonBase.displayName = \"Button\";\n\nexport const Button = {\n\tRoot: ButtonBase,\n\tIcon: ButtonIcon,\n\tValue: ButtonValue,\n\tSpinner: ButtonSpinner,\n} as const;\n"]}
1
+ {"version":3,"sources":["../src/button.css.ts","../src/components/Icon/Button.Icon.css.ts","../src/components/Icon/Button.Icon.tsx","../src/components/spinner/Button.Spinner.css.ts","../src/components/spinner/Button.Spinner.tsx","../src/components/Value/Button.Value.tsx","../src/Button.tsx"],"names":["button","_7a468","icon","ButtonIcon","size","className","iconProps","restProps","IconComp","mergedIconProps","mergedClassName","styleOverride","jsx","spinner","ButtonSpinner","props","LoaderCircle","ButtonValue","children","ButtonBase","type","isLoading","isFull","variant","isDisabled","hasCustomSpinner","c","isValidElement","content","Button"],"mappings":"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","file":"index.cjs","sourcesContent":["import 'src/button.reset.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51Uy44bIRC871dw8yWsHCUnVvmSaLVqoGemZUyPoPEr2n+PYD3xeGcsJTl2Ff0qCp7fvl+w679t1a8npSyfdKYLxd4oy8lj0pZPL42pkVGRI95incBTyUZtK8ZFAkWcHQK36xOX6Ncw7ThwMkoSxDxCwigv0wwDeD7ekmAcERJENyuuj2h3JHqV2/Nlleg4ilEUB0wkE6A72FM4L/FMF1yiR6R+uK9S19bDEr9uOEMET6I9Ok4gxPE2WSOaFB2n/SccAvXRKIdRMFX0gEnIQZgYCxnrEK1pSbl2HZmm4yVj0hkDOlkKuE5WBR8w+QFxrScw6oH6IVQ5Hlzyn7Nc3KAdhMBlVspTHgO0G2nS2sBuV4kjeRmMgiJcw0nyKeYDpi5U5xwokw0fCtbWNFf7/el5sr3p2JXczL+078KJ88ShNvufRHBCB/zbzOv8c1PMi3nKYAP6j3IjOJKzUV/nPvDYQQlyn2faBbflNcV43WR65e05j+B9+wm2d6k/5Tzij40tIhw3r1/UZyYXuydZYxJmlM1ra/VvT/r9N1bx6MKoBAAA';\nimport 'src/button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VY226jMBB9z1fwslIj7VS9JWnpl+zjgA1Ma2xkm1y66r+vMJACLQlQss1DlMBczsw5Hlu+ftnuzNPjrfd34XmB0oxr0MgoN763RX0FwEjy6OAeEoh4+ewM92DojWTs106B2hdvGJlM4MH3SAqSHCLB3XMUFEsgy1PjeyGXluvi8UtuLEUHCJW0XNrmqxizDgSTYUgyBpM6EJGSFnac4sR2DO0hU7HGLDlAwwhSzihv+EaYkjic8S2NgApYztWVlZxJ2zACW3w71zDXRmnfyxTVVVqN0pAlJX0vwPA11iqXDEIllG5HT1VhBSzX6H5EaOzySxOOxrXJomSo2fK3t/CaH8degkztLpVB5dZ14KJlXLhHTtUXzeG4j5RO50rwvHhfXFcL2mdkMBCcuZVdK08qCyiE2nFWqE8VK8p2l0D1FOoI7bgYWtpyF/VYgF/+FGj5n6vbbP8xJJzMirySN6LcleOmo/cODPfMQKBRsnL59BtJnluNAkKUWzRV+oLBz6n9RG25HgsAnNeyFajRiTGReJolaMi0g0UqzA1syVAgypjVIvK9u2zvGSWIDQv6sfxUFBnenVL1FN23ANyPKIOhjKthOAsl96MpKREAhsV20SpjPClVrK9YuZ/Oyueok2h5GFFIb8OHOJlcRxhyMHlgBW8674jZpOPcfAUJki7qajoZexDcL/vz3Oxah/qH0dR3ALeaNZ783vIbQSdroA5O8nUy/+0xPldRqzlkVZPZz+5qTnZXl2B39aPsrmZgd+gYtnxvIc1teztfX3q+DNq9P4z+x8xZTzwB1CpC0dpy1lPPAU0CBzayvZ9MOmmsv3vSqA9CkxS/nqL4k+3ffE/BI1R5ft5t5lXWZg5lTRLJ5kdFspldJI8uEED576aLgt64AQqVLIF4XoaMucuNPrTnLyaKoGeuFgqTTulPQ4FWqU4DNWkP0JSNB+oyHoHiUKBVqtNAU9YDtLpvGgU0be1wwVCgVarTQEXcA3QvxgN1GY9Aw8EaFUM0KnqA3k1B6nyOSMtlWe3Rtzc3v1oXf+WN3/s/JGFvqVkUAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var button = _7a468({defaultClassName:'jvws981 _4zefg30',variantClassNames:{variant:{primary:'jvws982',danger:'jvws983',secondary:'jvws984',secondaryGhost:'jvws985',tertiary:'jvws986',tertiaryGhost:'jvws987'},size:{xs:'jvws988',sm:'jvws989',md:'jvws98a',lg:'jvws98b',xl:'jvws98c'},full:{true:'jvws98d'}},defaultVariants:{variant:'primary',size:'md'},compoundVariants:[]});\nexport var iconSizeVar = 'var(--jvws980)';","import 'src/button.reset.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51Uy44bIRC871dw8yWsHCUnVvmSaLVqoGemZUyPoPEr2n+PYD3xeGcsJTl2Ff0qCp7fvl+w679t1a8npSyfdKYLxd4oy8lj0pZPL42pkVGRI95incBTyUZtK8ZFAkWcHQK36xOX6Ncw7ThwMkoSxDxCwigv0wwDeD7ekmAcERJENyuuj2h3JHqV2/Nlleg4ilEUB0wkE6A72FM4L/FMF1yiR6R+uK9S19bDEr9uOEMET6I9Ok4gxPE2WSOaFB2n/SccAvXRKIdRMFX0gEnIQZgYCxnrEK1pSbl2HZmm4yVj0hkDOlkKuE5WBR8w+QFxrScw6oH6IVQ5Hlzyn7Nc3KAdhMBlVspTHgO0G2nS2sBuV4kjeRmMgiJcw0nyKeYDpi5U5xwokw0fCtbWNFf7/el5sr3p2JXczL+078KJ88ShNvufRHBCB/zbzOv8c1PMi3nKYAP6j3IjOJKzUV/nPvDYQQlyn2faBbflNcV43WR65e05j+B9+wm2d6k/5Tzij40tIhw3r1/UZyYXuydZYxJmlM1ra/VvT/r9N1bx6MKoBAAA';\nimport 'src/button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VY226jMBB9z1fwslIj7VS9JWnpl+zjgA1Ma2xkm1y66r+vMJACLQlQss1DlMBczsw5Hlu+ftnuzNPjrfd34XmB0oxr0MgoN763RX0FwEjy6OAeEoh4+ewM92DojWTs106B2hdvGJlM4MH3SAqSHCLB3XMUFEsgy1PjeyGXluvi8UtuLEUHCJW0XNrmqxizDgSTYUgyBpM6EJGSFnac4sR2DO0hU7HGLDlAwwhSzihv+EaYkjic8S2NgApYztWVlZxJ2zACW3w71zDXRmnfyxTVVVqN0pAlJX0vwPA11iqXDEIllG5HT1VhBSzX6H5EaOzySxOOxrXJomSo2fK3t/CaH8degkztLpVB5dZ14KJlXLhHTtUXzeG4j5RO50rwvHhfXFcL2mdkMBCcuZVdK08qCyiE2nFWqE8VK8p2l0D1FOoI7bgYWtpyF/VYgF/+FGj5n6vbbP8xJJzMirySN6LcleOmo/cODPfMQKBRsnL59BtJnluNAkKUWzRV+oLBz6n9RG25HgsAnNeyFajRiTGReJolaMi0g0UqzA1syVAgypjVIvK9u2zvGSWIDQv6sfxUFBnenVL1FN23ANyPKIOhjKthOAsl96MpKREAhsV20SpjPClVrK9YuZ/Oyueok2h5GFFIb8OHOJlcRxhyMHlgBW8674jZpOPcfAUJki7qajoZexDcL/vz3Oxah/qH0dR3ALeaNZ783vIbQSdroA5O8nUy/+0xPldRqzlkVZPZz+5qTnZXl2B39aPsrmZgd+gYtnxvIc1teztfX3q+DNq9P4z+x8xZTzwB1CpC0dpy1lPPAU0CBzayvZ9MOmmsv3vSqA9CkxS/nqL4k+3ffE/BI1R5ft5t5lXWZg5lTRLJ5kdFspldJI8uEED576aLgt64AQqVLIF4XoaMucuNPrTnLyaKoGeuFgqTTulPQ4FWqU4DNWkP0JSNB+oyHoHiUKBVqtNAU9YDtLpvGgU0be1wwVCgVarTQEXcA3QvxgN1GY9Aw8EaFUM0KnqA3k1B6nyOSMtlWe3Rtzc3v1oXf+WN3/s/JGFvqVkUAAA=';\nimport 'src/components/Icon/Button.Icon.css.ts.vanilla.css?source=LmV0OG02ZTAgewogIHdpZHRoOiB2YXIoLS1qdndzOTgwKTsKICBoZWlnaHQ6IHZhcigtLWp2d3M5ODApOwp9';\nexport var icon = 'et8m6e0';","import type {\n\tComponentType,\n\tCSSProperties,\n\tElementType,\n\tForwardRefExoticComponent,\n\tSVGProps,\n} from \"react\";\nimport { icon as iconClass } from \"./Button.Icon.css.ts\";\n\nexport type IconComponent =\n\t| ElementType\n\t| ComponentType<SVGProps<SVGSVGElement>>\n\t| ForwardRefExoticComponent<SVGProps<SVGSVGElement>>;\n\nexport type ButtonIconProps = Record<string, unknown> & {\n\ticon:\n\t\t| ElementType\n\t\t| ComponentType<SVGProps<SVGSVGElement>>\n\t\t| ForwardRefExoticComponent<SVGProps<SVGSVGElement>>;\n\tsize?: number | string;\n\tclassName?: string;\n\ticonProps?: Record<string, unknown>;\n};\n\nexport const ButtonIcon = ({ icon, size, className, iconProps, ...restProps }: ButtonIconProps) => {\n\tconst IconComp = icon;\n\tif (!IconComp) return null;\n\n\tconst mergedIconProps = { ...(iconProps ?? {}) } as Record<string, unknown>;\n\tconst mergedClassName = [iconClass, className].filter(Boolean).join(\" \");\n\tconst styleOverride: CSSProperties | undefined =\n\t\tsize != null ? { width: size, height: size } : undefined;\n\n\treturn (\n\t\t<IconComp\n\t\t\tdata-slot=\"icon\"\n\t\t\taria-hidden\n\t\t\tclassName={mergedClassName}\n\t\t\tstyle={styleOverride}\n\t\t\t{...mergedIconProps}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n};\n\nButtonIcon.displayName = \"Button.Icon\";\n","import 'src/button.reset.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51Uy44bIRC871dw8yWsHCUnVvmSaLVqoGemZUyPoPEr2n+PYD3xeGcsJTl2Ff0qCp7fvl+w679t1a8npSyfdKYLxd4oy8lj0pZPL42pkVGRI95incBTyUZtK8ZFAkWcHQK36xOX6Ncw7ThwMkoSxDxCwigv0wwDeD7ekmAcERJENyuuj2h3JHqV2/Nlleg4ilEUB0wkE6A72FM4L/FMF1yiR6R+uK9S19bDEr9uOEMET6I9Ok4gxPE2WSOaFB2n/SccAvXRKIdRMFX0gEnIQZgYCxnrEK1pSbl2HZmm4yVj0hkDOlkKuE5WBR8w+QFxrScw6oH6IVQ5Hlzyn7Nc3KAdhMBlVspTHgO0G2nS2sBuV4kjeRmMgiJcw0nyKeYDpi5U5xwokw0fCtbWNFf7/el5sr3p2JXczL+078KJ88ShNvufRHBCB/zbzOv8c1PMi3nKYAP6j3IjOJKzUV/nPvDYQQlyn2faBbflNcV43WR65e05j+B9+wm2d6k/5Tzij40tIhw3r1/UZyYXuydZYxJmlM1ra/VvT/r9N1bx6MKoBAAA';\nimport 'src/button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VY226jMBB9z1fwslIj7VS9JWnpl+zjgA1Ma2xkm1y66r+vMJACLQlQss1DlMBczsw5Hlu+ftnuzNPjrfd34XmB0oxr0MgoN763RX0FwEjy6OAeEoh4+ewM92DojWTs106B2hdvGJlM4MH3SAqSHCLB3XMUFEsgy1PjeyGXluvi8UtuLEUHCJW0XNrmqxizDgSTYUgyBpM6EJGSFnac4sR2DO0hU7HGLDlAwwhSzihv+EaYkjic8S2NgApYztWVlZxJ2zACW3w71zDXRmnfyxTVVVqN0pAlJX0vwPA11iqXDEIllG5HT1VhBSzX6H5EaOzySxOOxrXJomSo2fK3t/CaH8degkztLpVB5dZ14KJlXLhHTtUXzeG4j5RO50rwvHhfXFcL2mdkMBCcuZVdK08qCyiE2nFWqE8VK8p2l0D1FOoI7bgYWtpyF/VYgF/+FGj5n6vbbP8xJJzMirySN6LcleOmo/cODPfMQKBRsnL59BtJnluNAkKUWzRV+oLBz6n9RG25HgsAnNeyFajRiTGReJolaMi0g0UqzA1syVAgypjVIvK9u2zvGSWIDQv6sfxUFBnenVL1FN23ANyPKIOhjKthOAsl96MpKREAhsV20SpjPClVrK9YuZ/Oyueok2h5GFFIb8OHOJlcRxhyMHlgBW8674jZpOPcfAUJki7qajoZexDcL/vz3Oxah/qH0dR3ALeaNZ783vIbQSdroA5O8nUy/+0xPldRqzlkVZPZz+5qTnZXl2B39aPsrmZgd+gYtnxvIc1teztfX3q+DNq9P4z+x8xZTzwB1CpC0dpy1lPPAU0CBzayvZ9MOmmsv3vSqA9CkxS/nqL4k+3ffE/BI1R5ft5t5lXWZg5lTRLJ5kdFspldJI8uEED576aLgt64AQqVLIF4XoaMucuNPrTnLyaKoGeuFgqTTulPQ4FWqU4DNWkP0JSNB+oyHoHiUKBVqtNAU9YDtLpvGgU0be1wwVCgVarTQEXcA3QvxgN1GY9Aw8EaFUM0KnqA3k1B6nyOSMtlWe3Rtzc3v1oXf+WN3/s/JGFvqVkUAAA=';\nimport 'src/components/spinner/Button.Spinner.css.ts.vanilla.css?source=QGtleWZyYW1lcyBhcHltbncwIHsKICBmcm9tIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogIH0KICB0byB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogIH0KfQouYXB5bW53MSB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGFuaW1hdGlvbjogYXB5bW53MCAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsKICB3aWR0aDogdmFyKC0tanZ3czk4MCk7CiAgaGVpZ2h0OiB2YXIoLS1qdndzOTgwKTsKfQ==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var spinner = _7a468({defaultClassName:'apymnw1',variantClassNames:{},defaultVariants:{},compoundVariants:[]});","import { LoaderCircle } from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\nimport { spinner } from \"./Button.Spinner.css.ts\";\n\nexport type ButtonSpinnerProps = ComponentProps<typeof LoaderCircle>;\n\nexport const ButtonSpinner = ({ className, ...props }: ButtonSpinnerProps) => {\n\tconst mergedClassName = [spinner(), className].filter(Boolean).join(\" \");\n\n\treturn <LoaderCircle data-slot=\"spinner\" className={mergedClassName} aria-hidden {...props} />;\n};\n\nButtonSpinner.displayName = \"Button.Spinner\";\n","import type { ButtonHTMLAttributes, ReactNode } from \"react\";\n\nexport type ButtonValueProps = ButtonHTMLAttributes<HTMLSpanElement> & {\n\tchildren?: ReactNode;\n};\n\nexport const ButtonValue = ({ children, ...props }: ButtonValueProps) => (\n\t<span data-slot=\"value\" {...props}>\n\t\t{children}\n\t</span>\n);\n\nButtonValue.displayName = \"Button.Value\";\n","import type { ButtonHTMLAttributes, ReactNode } from \"react\";\nimport { isValidElement } from \"react\";\nimport { button } from \"./button.css\";\nimport { ButtonIcon } from \"./components/Icon/Button.Icon\";\nimport { ButtonSpinner } from \"./components/spinner/Button.Spinner\";\nimport { ButtonValue } from \"./components/Value/Button.Value\";\n\nexport type ButtonSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport type ButtonVariant =\n\t| \"primary\"\n\t| \"secondary\"\n\t| \"tertiary\"\n\t| \"secondaryGhost\"\n\t| \"tertiaryGhost\"\n\t| \"danger\";\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n\tisLoading?: boolean;\n\tisFull?: boolean;\n\tsize?: ButtonSize;\n\tvariant?: ButtonVariant;\n}\n\nconst ButtonBase = ({\n\tclassName,\n\ttype = \"button\",\n\tchildren,\n\tisLoading = false,\n\tisFull = false,\n\tsize = \"md\",\n\tvariant = \"primary\",\n\t...props\n}: ButtonProps) => {\n\tconst mergedClassName = [button({ full: isFull ? true : undefined, size, variant }), className]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n\tconst isDisabled = Boolean(props.disabled) || isLoading;\n\n\tconst childList = Array.isArray(children) ? children : [children];\n\tconst hasCustomSpinner = childList.some((c) => isValidElement(c) && c.type === ButtonSpinner);\n\n\tconst content: ReactNode = isLoading ? (\n\t\thasCustomSpinner ? (\n\t\t\tchildren\n\t\t) : (\n\t\t\t<Button.Spinner />\n\t\t)\n\t) : (\n\t\tchildren\n\t);\n\n\treturn (\n\t\t<button\n\t\t\t{...props}\n\t\t\tclassName={mergedClassName}\n\t\t\ttype={type}\n\t\t\tdisabled={isDisabled}\n\t\t\taria-busy={isLoading || undefined}\n\t\t>\n\t\t\t{content}\n\t\t</button>\n\t);\n};\n\nButtonBase.displayName = \"Button.Root\";\n\nexport const Button = {\n\tRoot: ButtonBase,\n\tIcon: ButtonIcon,\n\tValue: ButtonValue,\n\tSpinner: ButtonSpinner,\n} as const;\n"]}
package/dist/index.d.cts CHANGED
@@ -17,11 +17,7 @@ type ButtonIconProps = Record<string, unknown> & {
17
17
 
18
18
  type ButtonSize = "xs" | "sm" | "md" | "lg" | "xl";
19
19
  type ButtonVariant = "primary" | "secondary" | "tertiary" | "secondaryGhost" | "tertiaryGhost" | "danger";
20
- type ButtonRenderProps = {
21
- isLoading: boolean;
22
- };
23
- interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
24
- children?: ReactNode | ((props: ButtonRenderProps) => ReactNode);
20
+ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
25
21
  isLoading?: boolean;
26
22
  isFull?: boolean;
27
23
  size?: ButtonSize;
package/dist/index.d.ts CHANGED
@@ -17,11 +17,7 @@ type ButtonIconProps = Record<string, unknown> & {
17
17
 
18
18
  type ButtonSize = "xs" | "sm" | "md" | "lg" | "xl";
19
19
  type ButtonVariant = "primary" | "secondary" | "tertiary" | "secondaryGhost" | "tertiaryGhost" | "danger";
20
- type ButtonRenderProps = {
21
- isLoading: boolean;
22
- };
23
- interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
24
- children?: ReactNode | ((props: ButtonRenderProps) => ReactNode);
20
+ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
25
21
  isLoading?: boolean;
26
22
  isFull?: boolean;
27
23
  size?: ButtonSize;
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import'./index.css';import {isValidElement}from'react';import {createRuntimeFn}from'@vanilla-extract/recipes/createRuntimeFn';import {jsx}from'react/jsx-runtime';import {LoaderCircle}from'lucide-react';var u=createRuntimeFn({defaultClassName:"jvws981 _4zefg30",variantClassNames:{variant:{primary:"jvws982",danger:"jvws983",secondary:"jvws984",secondaryGhost:"jvws985",tertiary:"jvws986",tertiaryGhost:"jvws987"},size:{xs:"jvws988",sm:"jvws989",md:"jvws98a",lg:"jvws98b",xl:"jvws98c"},full:{true:"jvws98d"}},defaultVariants:{variant:"primary",size:"md"},compoundVariants:[]});var y="et8m6e0";var c=({icon:n,size:e,className:o,iconProps:r,...s})=>{let a=n;if(!a)return null;let d={...r??{}},t=[y,o].filter(Boolean).join(" "),l=e!=null?{width:e,height:e}:void 0;return jsx(a,{"data-slot":"icon","aria-hidden":true,className:t,style:l,...d,...s})};c.displayName="Button.Icon";var m=createRuntimeFn({defaultClassName:"apymnw1",variantClassNames:{},defaultVariants:{},compoundVariants:[]});var i=({className:n,...e})=>{let o=[m(),n].filter(Boolean).join(" ");return jsx(LoaderCircle,{"data-slot":"spinner",className:o,"aria-hidden":true,...e})};i.displayName="Button.Spinner";var f=({children:n,...e})=>jsx("span",{"data-slot":"value",...e,children:n});f.displayName="Button.Value";var g=({className:n,type:e="button",children:o,isLoading:r=false,isFull:s=false,size:a="md",variant:d="primary",...t})=>{let l=[u({full:s?true:void 0,size:a,variant:d}),n].filter(Boolean).join(" "),h=!!t.disabled||r,p=typeof o=="function",j=Array.isArray(o)?o:[o],x=!p&&j.some(v=>isValidElement(v)&&v.type===i),k=p?o({isLoading:r}):r?x?o:jsx(w.Spinner,{}):o;return jsx("button",{...t,className:l,type:e,disabled:h,"aria-busy":r||void 0,children:k})};g.displayName="Button";var w={Root:g,Icon:c,Value:f,Spinner:i};export{w as Button};//# sourceMappingURL=index.js.map
1
+ import'./index.css';import {isValidElement}from'react';import {createRuntimeFn}from'@vanilla-extract/recipes/createRuntimeFn';import {jsx}from'react/jsx-runtime';import {LoaderCircle}from'lucide-react';var p=createRuntimeFn({defaultClassName:"jvws981 _4zefg30",variantClassNames:{variant:{primary:"jvws982",danger:"jvws983",secondary:"jvws984",secondaryGhost:"jvws985",tertiary:"jvws986",tertiaryGhost:"jvws987"},size:{xs:"jvws988",sm:"jvws989",md:"jvws98a",lg:"jvws98b",xl:"jvws98c"},full:{true:"jvws98d"}},defaultVariants:{variant:"primary",size:"md"},compoundVariants:[]});var u="et8m6e0";var c=({icon:e,size:o,className:n,iconProps:r,...s})=>{let a=e;if(!a)return null;let d={...r??{}},t=[u,n].filter(Boolean).join(" "),l=o!=null?{width:o,height:o}:void 0;return jsx(a,{"data-slot":"icon","aria-hidden":true,className:t,style:l,...d,...s})};c.displayName="Button.Icon";var y=createRuntimeFn({defaultClassName:"apymnw1",variantClassNames:{},defaultVariants:{},compoundVariants:[]});var i=({className:e,...o})=>{let n=[y(),e].filter(Boolean).join(" ");return jsx(LoaderCircle,{"data-slot":"spinner",className:n,"aria-hidden":true,...o})};i.displayName="Button.Spinner";var f=({children:e,...o})=>jsx("span",{"data-slot":"value",...o,children:e});f.displayName="Button.Value";var b=({className:e,type:o="button",children:n,isLoading:r=false,isFull:s=false,size:a="md",variant:d="primary",...t})=>{let l=[p({full:s?true:void 0,size:a,variant:d}),e].filter(Boolean).join(" "),w=!!t.disabled||r,h=(Array.isArray(n)?n:[n]).some(v=>isValidElement(v)&&v.type===i),j=r?h?n:jsx(g.Spinner,{}):n;return jsx("button",{...t,className:l,type:o,disabled:w,"aria-busy":r||void 0,children:j})};b.displayName="Button.Root";var g={Root:b,Icon:c,Value:f,Spinner:i};export{g as Button};//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/button.css.ts","../src/components/Icon/Button.Icon.css.ts","../src/components/Icon/Button.Icon.tsx","../src/components/spinner/Button.Spinner.css.ts","../src/components/spinner/Button.Spinner.tsx","../src/components/Value/Button.Value.tsx","../src/Button.tsx"],"names":["button","_7a468","icon","ButtonIcon","size","className","iconProps","restProps","IconComp","mergedIconProps","mergedClassName","styleOverride","jsx","spinner","ButtonSpinner","props","LoaderCircle","ButtonValue","children","ButtonBase","type","isLoading","isFull","variant","isDisabled","isRenderProp","childList","hasCustomSpinner","c","isValidElement","content","Button"],"mappings":"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","file":"index.js","sourcesContent":["import 'src/button.reset.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51Uy44bIRC871dw8yWsHCUnVvmSaLVqoGemZUyPoPEr2n+PYD3xeGcsJTl2Ff0qCp7fvl+w679t1a8npSyfdKYLxd4oy8lj0pZPL42pkVGRI95incBTyUZtK8ZFAkWcHQK36xOX6Ncw7ThwMkoSxDxCwigv0wwDeD7ekmAcERJENyuuj2h3JHqV2/Nlleg4ilEUB0wkE6A72FM4L/FMF1yiR6R+uK9S19bDEr9uOEMET6I9Ok4gxPE2WSOaFB2n/SccAvXRKIdRMFX0gEnIQZgYCxnrEK1pSbl2HZmm4yVj0hkDOlkKuE5WBR8w+QFxrScw6oH6IVQ5Hlzyn7Nc3KAdhMBlVspTHgO0G2nS2sBuV4kjeRmMgiJcw0nyKeYDpi5U5xwokw0fCtbWNFf7/el5sr3p2JXczL+078KJ88ShNvufRHBCB/zbzOv8c1PMi3nKYAP6j3IjOJKzUV/nPvDYQQlyn2faBbflNcV43WR65e05j+B9+wm2d6k/5Tzij40tIhw3r1/UZyYXuydZYxJmlM1ra/VvT/r9N1bx6MKoBAAA';\nimport 'src/button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VY226jMBB9z1fwslIj7VS9JWnpl+zjgA1Ma2xkm1y66r+vMJACLQlQss1DlMBczsw5Hlu+ftnuzNPjrfd34XmB0oxr0MgoN763RX0FwEjy6OAeEoh4+ewM92DojWTs106B2hdvGJlM4MH3SAqSHCLB3XMUFEsgy1PjeyGXluvi8UtuLEUHCJW0XNrmqxizDgSTYUgyBpM6EJGSFnac4sR2DO0hU7HGLDlAwwhSzihv+EaYkjic8S2NgApYztWVlZxJ2zACW3w71zDXRmnfyxTVVVqN0pAlJX0vwPA11iqXDEIllG5HT1VhBSzX6H5EaOzySxOOxrXJomSo2fK3t/CaH8degkztLpVB5dZ14KJlXLhHTtUXzeG4j5RO50rwvHhfXFcL2mdkMBCcuZVdK08qCyiE2nFWqE8VK8p2l0D1FOoI7bgYWtpyF/VYgF/+FGj5n6vbbP8xJJzMirySN6LcleOmo/cODPfMQKBRsnL59BtJnluNAkKUWzRV+oLBz6n9RG25HgsAnNeyFajRiTGReJolaMi0g0UqzA1syVAgypjVIvK9u2zvGSWIDQv6sfxUFBnenVL1FN23ANyPKIOhjKthOAsl96MpKREAhsV20SpjPClVrK9YuZ/Oyueok2h5GFFIb8OHOJlcRxhyMHlgBW8674jZpOPcfAUJki7qajoZexDcL/vz3Oxah/qH0dR3ALeaNZ783vIbQSdroA5O8nUy/+0xPldRqzlkVZPZz+5qTnZXl2B39aPsrmZgd+gYtnxvIc1teztfX3q+DNq9P4z+x8xZTzwB1CpC0dpy1lPPAU0CBzayvZ9MOmmsv3vSqA9CkxS/nqL4k+3ffE/BI1R5ft5t5lXWZg5lTRLJ5kdFspldJI8uEED576aLgt64AQqVLIF4XoaMucuNPrTnLyaKoGeuFgqTTulPQ4FWqU4DNWkP0JSNB+oyHoHiUKBVqtNAU9YDtLpvGgU0be1wwVCgVarTQEXcA3QvxgN1GY9Aw8EaFUM0KnqA3k1B6nyOSMtlWe3Rtzc3v1oXf+WN3/s/JGFvqVkUAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var button = _7a468({defaultClassName:'jvws981 _4zefg30',variantClassNames:{variant:{primary:'jvws982',danger:'jvws983',secondary:'jvws984',secondaryGhost:'jvws985',tertiary:'jvws986',tertiaryGhost:'jvws987'},size:{xs:'jvws988',sm:'jvws989',md:'jvws98a',lg:'jvws98b',xl:'jvws98c'},full:{true:'jvws98d'}},defaultVariants:{variant:'primary',size:'md'},compoundVariants:[]});\nexport var iconSizeVar = 'var(--jvws980)';","import 'src/button.reset.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51Uy44bIRC871dw8yWsHCUnVvmSaLVqoGemZUyPoPEr2n+PYD3xeGcsJTl2Ff0qCp7fvl+w679t1a8npSyfdKYLxd4oy8lj0pZPL42pkVGRI95incBTyUZtK8ZFAkWcHQK36xOX6Ncw7ThwMkoSxDxCwigv0wwDeD7ekmAcERJENyuuj2h3JHqV2/Nlleg4ilEUB0wkE6A72FM4L/FMF1yiR6R+uK9S19bDEr9uOEMET6I9Ok4gxPE2WSOaFB2n/SccAvXRKIdRMFX0gEnIQZgYCxnrEK1pSbl2HZmm4yVj0hkDOlkKuE5WBR8w+QFxrScw6oH6IVQ5Hlzyn7Nc3KAdhMBlVspTHgO0G2nS2sBuV4kjeRmMgiJcw0nyKeYDpi5U5xwokw0fCtbWNFf7/el5sr3p2JXczL+078KJ88ShNvufRHBCB/zbzOv8c1PMi3nKYAP6j3IjOJKzUV/nPvDYQQlyn2faBbflNcV43WR65e05j+B9+wm2d6k/5Tzij40tIhw3r1/UZyYXuydZYxJmlM1ra/VvT/r9N1bx6MKoBAAA';\nimport 'src/button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VY226jMBB9z1fwslIj7VS9JWnpl+zjgA1Ma2xkm1y66r+vMJACLQlQss1DlMBczsw5Hlu+ftnuzNPjrfd34XmB0oxr0MgoN763RX0FwEjy6OAeEoh4+ewM92DojWTs106B2hdvGJlM4MH3SAqSHCLB3XMUFEsgy1PjeyGXluvi8UtuLEUHCJW0XNrmqxizDgSTYUgyBpM6EJGSFnac4sR2DO0hU7HGLDlAwwhSzihv+EaYkjic8S2NgApYztWVlZxJ2zACW3w71zDXRmnfyxTVVVqN0pAlJX0vwPA11iqXDEIllG5HT1VhBSzX6H5EaOzySxOOxrXJomSo2fK3t/CaH8degkztLpVB5dZ14KJlXLhHTtUXzeG4j5RO50rwvHhfXFcL2mdkMBCcuZVdK08qCyiE2nFWqE8VK8p2l0D1FOoI7bgYWtpyF/VYgF/+FGj5n6vbbP8xJJzMirySN6LcleOmo/cODPfMQKBRsnL59BtJnluNAkKUWzRV+oLBz6n9RG25HgsAnNeyFajRiTGReJolaMi0g0UqzA1syVAgypjVIvK9u2zvGSWIDQv6sfxUFBnenVL1FN23ANyPKIOhjKthOAsl96MpKREAhsV20SpjPClVrK9YuZ/Oyueok2h5GFFIb8OHOJlcRxhyMHlgBW8674jZpOPcfAUJki7qajoZexDcL/vz3Oxah/qH0dR3ALeaNZ783vIbQSdroA5O8nUy/+0xPldRqzlkVZPZz+5qTnZXl2B39aPsrmZgd+gYtnxvIc1teztfX3q+DNq9P4z+x8xZTzwB1CpC0dpy1lPPAU0CBzayvZ9MOmmsv3vSqA9CkxS/nqL4k+3ffE/BI1R5ft5t5lXWZg5lTRLJ5kdFspldJI8uEED576aLgt64AQqVLIF4XoaMucuNPrTnLyaKoGeuFgqTTulPQ4FWqU4DNWkP0JSNB+oyHoHiUKBVqtNAU9YDtLpvGgU0be1wwVCgVarTQEXcA3QvxgN1GY9Aw8EaFUM0KnqA3k1B6nyOSMtlWe3Rtzc3v1oXf+WN3/s/JGFvqVkUAAA=';\nimport 'src/components/Icon/Button.Icon.css.ts.vanilla.css?source=LmV0OG02ZTAgewogIHdpZHRoOiB2YXIoLS1qdndzOTgwKTsKICBoZWlnaHQ6IHZhcigtLWp2d3M5ODApOwp9';\nexport var icon = 'et8m6e0';","import type {\n\tComponentType,\n\tCSSProperties,\n\tElementType,\n\tForwardRefExoticComponent,\n\tSVGProps,\n} from \"react\";\nimport { icon as iconClass } from \"./Button.Icon.css.ts\";\n\nexport type IconComponent =\n\t| ElementType\n\t| ComponentType<SVGProps<SVGSVGElement>>\n\t| ForwardRefExoticComponent<SVGProps<SVGSVGElement>>;\n\nexport type ButtonIconProps = Record<string, unknown> & {\n\ticon:\n\t\t| ElementType\n\t\t| ComponentType<SVGProps<SVGSVGElement>>\n\t\t| ForwardRefExoticComponent<SVGProps<SVGSVGElement>>;\n\tsize?: number | string;\n\tclassName?: string;\n\ticonProps?: Record<string, unknown>;\n};\n\nexport const ButtonIcon = ({ icon, size, className, iconProps, ...restProps }: ButtonIconProps) => {\n\tconst IconComp = icon;\n\tif (!IconComp) return null;\n\n\tconst mergedIconProps = { ...(iconProps ?? {}) } as Record<string, unknown>;\n\tconst mergedClassName = [iconClass, className].filter(Boolean).join(\" \");\n\tconst styleOverride: CSSProperties | undefined =\n\t\tsize != null ? { width: size, height: size } : undefined;\n\n\treturn (\n\t\t<IconComp\n\t\t\tdata-slot=\"icon\"\n\t\t\taria-hidden\n\t\t\tclassName={mergedClassName}\n\t\t\tstyle={styleOverride}\n\t\t\t{...mergedIconProps}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n};\n\nButtonIcon.displayName = \"Button.Icon\";\n","import 'src/button.reset.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51Uy44bIRC871dw8yWsHCUnVvmSaLVqoGemZUyPoPEr2n+PYD3xeGcsJTl2Ff0qCp7fvl+w679t1a8npSyfdKYLxd4oy8lj0pZPL42pkVGRI95incBTyUZtK8ZFAkWcHQK36xOX6Ncw7ThwMkoSxDxCwigv0wwDeD7ekmAcERJENyuuj2h3JHqV2/Nlleg4ilEUB0wkE6A72FM4L/FMF1yiR6R+uK9S19bDEr9uOEMET6I9Ok4gxPE2WSOaFB2n/SccAvXRKIdRMFX0gEnIQZgYCxnrEK1pSbl2HZmm4yVj0hkDOlkKuE5WBR8w+QFxrScw6oH6IVQ5Hlzyn7Nc3KAdhMBlVspTHgO0G2nS2sBuV4kjeRmMgiJcw0nyKeYDpi5U5xwokw0fCtbWNFf7/el5sr3p2JXczL+078KJ88ShNvufRHBCB/zbzOv8c1PMi3nKYAP6j3IjOJKzUV/nPvDYQQlyn2faBbflNcV43WR65e05j+B9+wm2d6k/5Tzij40tIhw3r1/UZyYXuydZYxJmlM1ra/VvT/r9N1bx6MKoBAAA';\nimport 'src/button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VY226jMBB9z1fwslIj7VS9JWnpl+zjgA1Ma2xkm1y66r+vMJACLQlQss1DlMBczsw5Hlu+ftnuzNPjrfd34XmB0oxr0MgoN763RX0FwEjy6OAeEoh4+ewM92DojWTs106B2hdvGJlM4MH3SAqSHCLB3XMUFEsgy1PjeyGXluvi8UtuLEUHCJW0XNrmqxizDgSTYUgyBpM6EJGSFnac4sR2DO0hU7HGLDlAwwhSzihv+EaYkjic8S2NgApYztWVlZxJ2zACW3w71zDXRmnfyxTVVVqN0pAlJX0vwPA11iqXDEIllG5HT1VhBSzX6H5EaOzySxOOxrXJomSo2fK3t/CaH8degkztLpVB5dZ14KJlXLhHTtUXzeG4j5RO50rwvHhfXFcL2mdkMBCcuZVdK08qCyiE2nFWqE8VK8p2l0D1FOoI7bgYWtpyF/VYgF/+FGj5n6vbbP8xJJzMirySN6LcleOmo/cODPfMQKBRsnL59BtJnluNAkKUWzRV+oLBz6n9RG25HgsAnNeyFajRiTGReJolaMi0g0UqzA1syVAgypjVIvK9u2zvGSWIDQv6sfxUFBnenVL1FN23ANyPKIOhjKthOAsl96MpKREAhsV20SpjPClVrK9YuZ/Oyueok2h5GFFIb8OHOJlcRxhyMHlgBW8674jZpOPcfAUJki7qajoZexDcL/vz3Oxah/qH0dR3ALeaNZ783vIbQSdroA5O8nUy/+0xPldRqzlkVZPZz+5qTnZXl2B39aPsrmZgd+gYtnxvIc1teztfX3q+DNq9P4z+x8xZTzwB1CpC0dpy1lPPAU0CBzayvZ9MOmmsv3vSqA9CkxS/nqL4k+3ffE/BI1R5ft5t5lXWZg5lTRLJ5kdFspldJI8uEED576aLgt64AQqVLIF4XoaMucuNPrTnLyaKoGeuFgqTTulPQ4FWqU4DNWkP0JSNB+oyHoHiUKBVqtNAU9YDtLpvGgU0be1wwVCgVarTQEXcA3QvxgN1GY9Aw8EaFUM0KnqA3k1B6nyOSMtlWe3Rtzc3v1oXf+WN3/s/JGFvqVkUAAA=';\nimport 'src/components/spinner/Button.Spinner.css.ts.vanilla.css?source=QGtleWZyYW1lcyBhcHltbncwIHsKICBmcm9tIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogIH0KICB0byB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogIH0KfQouYXB5bW53MSB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGFuaW1hdGlvbjogYXB5bW53MCAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsKICB3aWR0aDogdmFyKC0tanZ3czk4MCk7CiAgaGVpZ2h0OiB2YXIoLS1qdndzOTgwKTsKfQ==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var spinner = _7a468({defaultClassName:'apymnw1',variantClassNames:{},defaultVariants:{},compoundVariants:[]});","import { LoaderCircle } from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\nimport { spinner } from \"./Button.Spinner.css.ts\";\n\nexport type ButtonSpinnerProps = ComponentProps<typeof LoaderCircle>;\n\nexport const ButtonSpinner = ({ className, ...props }: ButtonSpinnerProps) => {\n\tconst mergedClassName = [spinner(), className].filter(Boolean).join(\" \");\n\n\treturn <LoaderCircle data-slot=\"spinner\" className={mergedClassName} aria-hidden {...props} />;\n};\n\nButtonSpinner.displayName = \"Button.Spinner\";\n","import type { ButtonHTMLAttributes, ReactNode } from \"react\";\n\nexport type ButtonValueProps = ButtonHTMLAttributes<HTMLSpanElement> & {\n\tchildren?: ReactNode;\n};\n\nexport const ButtonValue = ({ children, ...props }: ButtonValueProps) => (\n\t<span data-slot=\"value\" {...props}>\n\t\t{children}\n\t</span>\n);\n\nButtonValue.displayName = \"Button.Value\";\n","import type { ButtonHTMLAttributes, ReactNode } from \"react\";\nimport { isValidElement } from \"react\";\nimport { button } from \"./button.css\";\nimport { ButtonIcon } from \"./components/Icon/Button.Icon\";\nimport { ButtonSpinner } from \"./components/spinner/Button.Spinner\";\nimport { ButtonValue } from \"./components/Value/Button.Value\";\n\nexport type ButtonSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport type ButtonVariant =\n\t| \"primary\"\n\t| \"secondary\"\n\t| \"tertiary\"\n\t| \"secondaryGhost\"\n\t| \"tertiaryGhost\"\n\t| \"danger\";\n\ntype ButtonRenderProps = {\n\tisLoading: boolean;\n};\n\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, \"children\"> {\n\tchildren?: ReactNode | ((props: ButtonRenderProps) => ReactNode);\n\tisLoading?: boolean;\n\tisFull?: boolean;\n\tsize?: ButtonSize;\n\tvariant?: ButtonVariant;\n}\n\nconst ButtonBase = ({\n\tclassName,\n\ttype = \"button\",\n\tchildren,\n\tisLoading = false,\n\tisFull = false,\n\tsize = \"md\",\n\tvariant = \"primary\",\n\t...props\n}: ButtonProps) => {\n\tconst mergedClassName = [button({ full: isFull ? true : undefined, size, variant }), className]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n\tconst isDisabled = Boolean(props.disabled) || isLoading;\n\n\tconst isRenderProp = typeof children === \"function\";\n\tconst childList = Array.isArray(children) ? children : [children];\n\tconst hasCustomSpinner =\n\t\t!isRenderProp && childList.some((c) => isValidElement(c) && c.type === ButtonSpinner);\n\n\tconst content: ReactNode = isRenderProp ? (\n\t\t(children as (p: ButtonRenderProps) => ReactNode)({ isLoading })\n\t) : isLoading ? (\n\t\thasCustomSpinner ? (\n\t\t\tchildren\n\t\t) : (\n\t\t\t<Button.Spinner />\n\t\t)\n\t) : (\n\t\tchildren\n\t);\n\n\treturn (\n\t\t<button\n\t\t\t{...props}\n\t\t\tclassName={mergedClassName}\n\t\t\ttype={type}\n\t\t\tdisabled={isDisabled}\n\t\t\taria-busy={isLoading || undefined}\n\t\t>\n\t\t\t{content}\n\t\t</button>\n\t);\n};\n\nButtonBase.displayName = \"Button\";\n\nexport const Button = {\n\tRoot: ButtonBase,\n\tIcon: ButtonIcon,\n\tValue: ButtonValue,\n\tSpinner: ButtonSpinner,\n} as const;\n"]}
1
+ {"version":3,"sources":["../src/button.css.ts","../src/components/Icon/Button.Icon.css.ts","../src/components/Icon/Button.Icon.tsx","../src/components/spinner/Button.Spinner.css.ts","../src/components/spinner/Button.Spinner.tsx","../src/components/Value/Button.Value.tsx","../src/Button.tsx"],"names":["button","_7a468","icon","ButtonIcon","size","className","iconProps","restProps","IconComp","mergedIconProps","mergedClassName","styleOverride","jsx","spinner","ButtonSpinner","props","LoaderCircle","ButtonValue","children","ButtonBase","type","isLoading","isFull","variant","isDisabled","hasCustomSpinner","c","isValidElement","content","Button"],"mappings":"0MAGO,IAAIA,CAAAA,CAASC,eAAAA,CAAO,CAAC,iBAAiB,kBAAA,CAAmB,iBAAA,CAAkB,CAAC,OAAA,CAAQ,CAAC,QAAQ,SAAA,CAAU,MAAA,CAAO,SAAA,CAAU,SAAA,CAAU,UAAU,cAAA,CAAe,SAAA,CAAU,SAAS,SAAA,CAAU,aAAA,CAAc,SAAS,CAAA,CAAE,IAAA,CAAK,CAAC,EAAA,CAAG,UAAU,EAAA,CAAG,SAAA,CAAU,GAAG,SAAA,CAAU,EAAA,CAAG,UAAU,EAAA,CAAG,SAAS,CAAA,CAAE,IAAA,CAAK,CAAC,IAAA,CAAK,SAAS,CAAC,CAAA,CAAE,eAAA,CAAgB,CAAC,OAAA,CAAQ,SAAA,CAAU,IAAA,CAAK,IAAI,EAAE,gBAAA,CAAiB,EAAE,CAAC,CAAA,CCAlX,IAAIC,CAAAA,CAAO,SAAA,CCqBX,IAAMC,CAAAA,CAAa,CAAC,CAAE,IAAA,CAAAD,EAAM,IAAA,CAAAE,CAAAA,CAAM,SAAA,CAAAC,CAAAA,CAAW,UAAAC,CAAAA,CAAW,GAAGC,CAAU,CAAA,GAAuB,CAClG,IAAMC,CAAAA,CAAWN,CAAAA,CACjB,GAAI,CAACM,EAAU,OAAO,IAAA,CAEtB,IAAMC,CAAAA,CAAkB,CAAE,GAAIH,CAAAA,EAAa,EAAI,CAAA,CACzCI,EAAkB,CAACR,CAAAA,CAAWG,CAAS,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,CACjEM,EACLP,CAAAA,EAAQ,IAAA,CAAO,CAAE,KAAA,CAAOA,CAAAA,CAAM,OAAQA,CAAK,CAAA,CAAI,MAAA,CAEhD,OACCQ,IAACJ,CAAAA,CAAA,CACA,YAAU,MAAA,CACV,aAAA,CAAW,KACX,SAAA,CAAWE,CAAAA,CACX,KAAA,CAAOC,CAAAA,CACN,GAAGF,CAAAA,CACH,GAAGF,EACL,CAEF,CAAA,CAEAJ,EAAW,WAAA,CAAc,aAAA,CCzClB,IAAIU,CAAAA,CAAUZ,eAAAA,CAAO,CAAC,gBAAA,CAAiB,UAAU,iBAAA,CAAkB,GAAG,eAAA,CAAgB,GAAG,gBAAA,CAAiB,EAAE,CAAC,CAAA,CCE7G,IAAMa,CAAAA,CAAgB,CAAC,CAAE,SAAA,CAAAT,CAAAA,CAAW,GAAGU,CAAM,IAA0B,CAC7E,IAAML,EAAkB,CAACG,CAAAA,GAAWR,CAAS,CAAA,CAAE,MAAA,CAAO,OAAO,EAAE,IAAA,CAAK,GAAG,EAEvE,OAAOO,GAAAA,CAACI,aAAA,CAAa,WAAA,CAAU,SAAA,CAAU,SAAA,CAAWN,EAAiB,aAAA,CAAW,IAAA,CAAE,GAAGK,CAAAA,CAAO,CAC7F,EAEAD,CAAAA,CAAc,WAAA,CAAc,gBAAA,CCNrB,IAAMG,EAAc,CAAC,CAAE,SAAAC,CAAAA,CAAU,GAAGH,CAAM,CAAA,GAChDH,IAAC,MAAA,CAAA,CAAK,WAAA,CAAU,QAAS,GAAGG,CAAAA,CAC1B,SAAAG,CAAAA,CACF,CAAA,CAGDD,CAAAA,CAAY,WAAA,CAAc,eCY1B,IAAME,CAAAA,CAAa,CAAC,CACnB,SAAA,CAAAd,CAAAA,CACA,IAAA,CAAAe,EAAO,QAAA,CACP,QAAA,CAAAF,EACA,SAAA,CAAAG,CAAAA,CAAY,MACZ,MAAA,CAAAC,CAAAA,CAAS,KAAA,CACT,IAAA,CAAAlB,EAAO,IAAA,CACP,OAAA,CAAAmB,EAAU,SAAA,CACV,GAAGR,CACJ,CAAA,GAAmB,CAClB,IAAML,CAAAA,CAAkB,CAACV,CAAAA,CAAO,CAAE,KAAMsB,CAAAA,CAAS,IAAA,CAAO,OAAW,IAAA,CAAAlB,CAAAA,CAAM,OAAA,CAAAmB,CAAQ,CAAC,CAAA,CAAGlB,CAAS,EAC5F,MAAA,CAAO,OAAO,EACd,IAAA,CAAK,GAAG,CAAA,CACJmB,CAAAA,CAAa,EAAQT,CAAAA,CAAM,QAAA,EAAaM,EAGxCI,CAAAA,CAAAA,CADY,KAAA,CAAM,QAAQP,CAAQ,CAAA,CAAIA,CAAAA,CAAW,CAACA,CAAQ,CAAA,EAC7B,IAAA,CAAMQ,GAAMC,cAAAA,CAAeD,CAAC,GAAKA,CAAAA,CAAE,IAAA,GAASZ,CAAa,CAAA,CAEtFc,EAAqBP,CAAAA,CAC1BI,CAAAA,CACCP,EAEAN,GAAAA,CAACiB,CAAAA,CAAO,QAAP,EAAe,CAAA,CAGjBX,CAAAA,CAGD,OACCN,IAAC,QAAA,CAAA,CACC,GAAGG,EACJ,SAAA,CAAWL,CAAAA,CACX,KAAMU,CAAAA,CACN,QAAA,CAAUI,CAAAA,CACV,WAAA,CAAWH,GAAa,MAAA,CAEvB,QAAA,CAAAO,EACF,CAEF,CAAA,CAEAT,EAAW,WAAA,CAAc,aAAA,KAEZU,CAAAA,CAAS,CACrB,KAAMV,CAAAA,CACN,IAAA,CAAMhB,EACN,KAAA,CAAOc,CAAAA,CACP,QAASH,CACV","file":"index.js","sourcesContent":["import 'src/button.reset.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51Uy44bIRC871dw8yWsHCUnVvmSaLVqoGemZUyPoPEr2n+PYD3xeGcsJTl2Ff0qCp7fvl+w679t1a8npSyfdKYLxd4oy8lj0pZPL42pkVGRI95incBTyUZtK8ZFAkWcHQK36xOX6Ncw7ThwMkoSxDxCwigv0wwDeD7ekmAcERJENyuuj2h3JHqV2/Nlleg4ilEUB0wkE6A72FM4L/FMF1yiR6R+uK9S19bDEr9uOEMET6I9Ok4gxPE2WSOaFB2n/SccAvXRKIdRMFX0gEnIQZgYCxnrEK1pSbl2HZmm4yVj0hkDOlkKuE5WBR8w+QFxrScw6oH6IVQ5Hlzyn7Nc3KAdhMBlVspTHgO0G2nS2sBuV4kjeRmMgiJcw0nyKeYDpi5U5xwokw0fCtbWNFf7/el5sr3p2JXczL+078KJ88ShNvufRHBCB/zbzOv8c1PMi3nKYAP6j3IjOJKzUV/nPvDYQQlyn2faBbflNcV43WR65e05j+B9+wm2d6k/5Tzij40tIhw3r1/UZyYXuydZYxJmlM1ra/VvT/r9N1bx6MKoBAAA';\nimport 'src/button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VY226jMBB9z1fwslIj7VS9JWnpl+zjgA1Ma2xkm1y66r+vMJACLQlQss1DlMBczsw5Hlu+ftnuzNPjrfd34XmB0oxr0MgoN763RX0FwEjy6OAeEoh4+ewM92DojWTs106B2hdvGJlM4MH3SAqSHCLB3XMUFEsgy1PjeyGXluvi8UtuLEUHCJW0XNrmqxizDgSTYUgyBpM6EJGSFnac4sR2DO0hU7HGLDlAwwhSzihv+EaYkjic8S2NgApYztWVlZxJ2zACW3w71zDXRmnfyxTVVVqN0pAlJX0vwPA11iqXDEIllG5HT1VhBSzX6H5EaOzySxOOxrXJomSo2fK3t/CaH8degkztLpVB5dZ14KJlXLhHTtUXzeG4j5RO50rwvHhfXFcL2mdkMBCcuZVdK08qCyiE2nFWqE8VK8p2l0D1FOoI7bgYWtpyF/VYgF/+FGj5n6vbbP8xJJzMirySN6LcleOmo/cODPfMQKBRsnL59BtJnluNAkKUWzRV+oLBz6n9RG25HgsAnNeyFajRiTGReJolaMi0g0UqzA1syVAgypjVIvK9u2zvGSWIDQv6sfxUFBnenVL1FN23ANyPKIOhjKthOAsl96MpKREAhsV20SpjPClVrK9YuZ/Oyueok2h5GFFIb8OHOJlcRxhyMHlgBW8674jZpOPcfAUJki7qajoZexDcL/vz3Oxah/qH0dR3ALeaNZ783vIbQSdroA5O8nUy/+0xPldRqzlkVZPZz+5qTnZXl2B39aPsrmZgd+gYtnxvIc1teztfX3q+DNq9P4z+x8xZTzwB1CpC0dpy1lPPAU0CBzayvZ9MOmmsv3vSqA9CkxS/nqL4k+3ffE/BI1R5ft5t5lXWZg5lTRLJ5kdFspldJI8uEED576aLgt64AQqVLIF4XoaMucuNPrTnLyaKoGeuFgqTTulPQ4FWqU4DNWkP0JSNB+oyHoHiUKBVqtNAU9YDtLpvGgU0be1wwVCgVarTQEXcA3QvxgN1GY9Aw8EaFUM0KnqA3k1B6nyOSMtlWe3Rtzc3v1oXf+WN3/s/JGFvqVkUAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var button = _7a468({defaultClassName:'jvws981 _4zefg30',variantClassNames:{variant:{primary:'jvws982',danger:'jvws983',secondary:'jvws984',secondaryGhost:'jvws985',tertiary:'jvws986',tertiaryGhost:'jvws987'},size:{xs:'jvws988',sm:'jvws989',md:'jvws98a',lg:'jvws98b',xl:'jvws98c'},full:{true:'jvws98d'}},defaultVariants:{variant:'primary',size:'md'},compoundVariants:[]});\nexport var iconSizeVar = 'var(--jvws980)';","import 'src/button.reset.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51Uy44bIRC871dw8yWsHCUnVvmSaLVqoGemZUyPoPEr2n+PYD3xeGcsJTl2Ff0qCp7fvl+w679t1a8npSyfdKYLxd4oy8lj0pZPL42pkVGRI95incBTyUZtK8ZFAkWcHQK36xOX6Ncw7ThwMkoSxDxCwigv0wwDeD7ekmAcERJENyuuj2h3JHqV2/Nlleg4ilEUB0wkE6A72FM4L/FMF1yiR6R+uK9S19bDEr9uOEMET6I9Ok4gxPE2WSOaFB2n/SccAvXRKIdRMFX0gEnIQZgYCxnrEK1pSbl2HZmm4yVj0hkDOlkKuE5WBR8w+QFxrScw6oH6IVQ5Hlzyn7Nc3KAdhMBlVspTHgO0G2nS2sBuV4kjeRmMgiJcw0nyKeYDpi5U5xwokw0fCtbWNFf7/el5sr3p2JXczL+078KJ88ShNvufRHBCB/zbzOv8c1PMi3nKYAP6j3IjOJKzUV/nPvDYQQlyn2faBbflNcV43WR65e05j+B9+wm2d6k/5Tzij40tIhw3r1/UZyYXuydZYxJmlM1ra/VvT/r9N1bx6MKoBAAA';\nimport 'src/button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VY226jMBB9z1fwslIj7VS9JWnpl+zjgA1Ma2xkm1y66r+vMJACLQlQss1DlMBczsw5Hlu+ftnuzNPjrfd34XmB0oxr0MgoN763RX0FwEjy6OAeEoh4+ewM92DojWTs106B2hdvGJlM4MH3SAqSHCLB3XMUFEsgy1PjeyGXluvi8UtuLEUHCJW0XNrmqxizDgSTYUgyBpM6EJGSFnac4sR2DO0hU7HGLDlAwwhSzihv+EaYkjic8S2NgApYztWVlZxJ2zACW3w71zDXRmnfyxTVVVqN0pAlJX0vwPA11iqXDEIllG5HT1VhBSzX6H5EaOzySxOOxrXJomSo2fK3t/CaH8degkztLpVB5dZ14KJlXLhHTtUXzeG4j5RO50rwvHhfXFcL2mdkMBCcuZVdK08qCyiE2nFWqE8VK8p2l0D1FOoI7bgYWtpyF/VYgF/+FGj5n6vbbP8xJJzMirySN6LcleOmo/cODPfMQKBRsnL59BtJnluNAkKUWzRV+oLBz6n9RG25HgsAnNeyFajRiTGReJolaMi0g0UqzA1syVAgypjVIvK9u2zvGSWIDQv6sfxUFBnenVL1FN23ANyPKIOhjKthOAsl96MpKREAhsV20SpjPClVrK9YuZ/Oyueok2h5GFFIb8OHOJlcRxhyMHlgBW8674jZpOPcfAUJki7qajoZexDcL/vz3Oxah/qH0dR3ALeaNZ783vIbQSdroA5O8nUy/+0xPldRqzlkVZPZz+5qTnZXl2B39aPsrmZgd+gYtnxvIc1teztfX3q+DNq9P4z+x8xZTzwB1CpC0dpy1lPPAU0CBzayvZ9MOmmsv3vSqA9CkxS/nqL4k+3ffE/BI1R5ft5t5lXWZg5lTRLJ5kdFspldJI8uEED576aLgt64AQqVLIF4XoaMucuNPrTnLyaKoGeuFgqTTulPQ4FWqU4DNWkP0JSNB+oyHoHiUKBVqtNAU9YDtLpvGgU0be1wwVCgVarTQEXcA3QvxgN1GY9Aw8EaFUM0KnqA3k1B6nyOSMtlWe3Rtzc3v1oXf+WN3/s/JGFvqVkUAAA=';\nimport 'src/components/Icon/Button.Icon.css.ts.vanilla.css?source=LmV0OG02ZTAgewogIHdpZHRoOiB2YXIoLS1qdndzOTgwKTsKICBoZWlnaHQ6IHZhcigtLWp2d3M5ODApOwp9';\nexport var icon = 'et8m6e0';","import type {\n\tComponentType,\n\tCSSProperties,\n\tElementType,\n\tForwardRefExoticComponent,\n\tSVGProps,\n} from \"react\";\nimport { icon as iconClass } from \"./Button.Icon.css.ts\";\n\nexport type IconComponent =\n\t| ElementType\n\t| ComponentType<SVGProps<SVGSVGElement>>\n\t| ForwardRefExoticComponent<SVGProps<SVGSVGElement>>;\n\nexport type ButtonIconProps = Record<string, unknown> & {\n\ticon:\n\t\t| ElementType\n\t\t| ComponentType<SVGProps<SVGSVGElement>>\n\t\t| ForwardRefExoticComponent<SVGProps<SVGSVGElement>>;\n\tsize?: number | string;\n\tclassName?: string;\n\ticonProps?: Record<string, unknown>;\n};\n\nexport const ButtonIcon = ({ icon, size, className, iconProps, ...restProps }: ButtonIconProps) => {\n\tconst IconComp = icon;\n\tif (!IconComp) return null;\n\n\tconst mergedIconProps = { ...(iconProps ?? {}) } as Record<string, unknown>;\n\tconst mergedClassName = [iconClass, className].filter(Boolean).join(\" \");\n\tconst styleOverride: CSSProperties | undefined =\n\t\tsize != null ? { width: size, height: size } : undefined;\n\n\treturn (\n\t\t<IconComp\n\t\t\tdata-slot=\"icon\"\n\t\t\taria-hidden\n\t\t\tclassName={mergedClassName}\n\t\t\tstyle={styleOverride}\n\t\t\t{...mergedIconProps}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n};\n\nButtonIcon.displayName = \"Button.Icon\";\n","import 'src/button.reset.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51Uy44bIRC871dw8yWsHCUnVvmSaLVqoGemZUyPoPEr2n+PYD3xeGcsJTl2Ff0qCp7fvl+w679t1a8npSyfdKYLxd4oy8lj0pZPL42pkVGRI95incBTyUZtK8ZFAkWcHQK36xOX6Ncw7ThwMkoSxDxCwigv0wwDeD7ekmAcERJENyuuj2h3JHqV2/Nlleg4ilEUB0wkE6A72FM4L/FMF1yiR6R+uK9S19bDEr9uOEMET6I9Ok4gxPE2WSOaFB2n/SccAvXRKIdRMFX0gEnIQZgYCxnrEK1pSbl2HZmm4yVj0hkDOlkKuE5WBR8w+QFxrScw6oH6IVQ5Hlzyn7Nc3KAdhMBlVspTHgO0G2nS2sBuV4kjeRmMgiJcw0nyKeYDpi5U5xwokw0fCtbWNFf7/el5sr3p2JXczL+078KJ88ShNvufRHBCB/zbzOv8c1PMi3nKYAP6j3IjOJKzUV/nPvDYQQlyn2faBbflNcV43WR65e05j+B9+wm2d6k/5Tzij40tIhw3r1/UZyYXuydZYxJmlM1ra/VvT/r9N1bx6MKoBAAA';\nimport 'src/button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VY226jMBB9z1fwslIj7VS9JWnpl+zjgA1Ma2xkm1y66r+vMJACLQlQss1DlMBczsw5Hlu+ftnuzNPjrfd34XmB0oxr0MgoN763RX0FwEjy6OAeEoh4+ewM92DojWTs106B2hdvGJlM4MH3SAqSHCLB3XMUFEsgy1PjeyGXluvi8UtuLEUHCJW0XNrmqxizDgSTYUgyBpM6EJGSFnac4sR2DO0hU7HGLDlAwwhSzihv+EaYkjic8S2NgApYztWVlZxJ2zACW3w71zDXRmnfyxTVVVqN0pAlJX0vwPA11iqXDEIllG5HT1VhBSzX6H5EaOzySxOOxrXJomSo2fK3t/CaH8degkztLpVB5dZ14KJlXLhHTtUXzeG4j5RO50rwvHhfXFcL2mdkMBCcuZVdK08qCyiE2nFWqE8VK8p2l0D1FOoI7bgYWtpyF/VYgF/+FGj5n6vbbP8xJJzMirySN6LcleOmo/cODPfMQKBRsnL59BtJnluNAkKUWzRV+oLBz6n9RG25HgsAnNeyFajRiTGReJolaMi0g0UqzA1syVAgypjVIvK9u2zvGSWIDQv6sfxUFBnenVL1FN23ANyPKIOhjKthOAsl96MpKREAhsV20SpjPClVrK9YuZ/Oyueok2h5GFFIb8OHOJlcRxhyMHlgBW8674jZpOPcfAUJki7qajoZexDcL/vz3Oxah/qH0dR3ALeaNZ783vIbQSdroA5O8nUy/+0xPldRqzlkVZPZz+5qTnZXl2B39aPsrmZgd+gYtnxvIc1teztfX3q+DNq9P4z+x8xZTzwB1CpC0dpy1lPPAU0CBzayvZ9MOmmsv3vSqA9CkxS/nqL4k+3ffE/BI1R5ft5t5lXWZg5lTRLJ5kdFspldJI8uEED576aLgt64AQqVLIF4XoaMucuNPrTnLyaKoGeuFgqTTulPQ4FWqU4DNWkP0JSNB+oyHoHiUKBVqtNAU9YDtLpvGgU0be1wwVCgVarTQEXcA3QvxgN1GY9Aw8EaFUM0KnqA3k1B6nyOSMtlWe3Rtzc3v1oXf+WN3/s/JGFvqVkUAAA=';\nimport 'src/components/spinner/Button.Spinner.css.ts.vanilla.css?source=QGtleWZyYW1lcyBhcHltbncwIHsKICBmcm9tIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwogIH0KICB0byB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogIH0KfQouYXB5bW53MSB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGFuaW1hdGlvbjogYXB5bW53MCAwLjhzIGxpbmVhciBpbmZpbml0ZTsKICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOwogIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsKICB3aWR0aDogdmFyKC0tanZ3czk4MCk7CiAgaGVpZ2h0OiB2YXIoLS1qdndzOTgwKTsKfQ==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var spinner = _7a468({defaultClassName:'apymnw1',variantClassNames:{},defaultVariants:{},compoundVariants:[]});","import { LoaderCircle } from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\nimport { spinner } from \"./Button.Spinner.css.ts\";\n\nexport type ButtonSpinnerProps = ComponentProps<typeof LoaderCircle>;\n\nexport const ButtonSpinner = ({ className, ...props }: ButtonSpinnerProps) => {\n\tconst mergedClassName = [spinner(), className].filter(Boolean).join(\" \");\n\n\treturn <LoaderCircle data-slot=\"spinner\" className={mergedClassName} aria-hidden {...props} />;\n};\n\nButtonSpinner.displayName = \"Button.Spinner\";\n","import type { ButtonHTMLAttributes, ReactNode } from \"react\";\n\nexport type ButtonValueProps = ButtonHTMLAttributes<HTMLSpanElement> & {\n\tchildren?: ReactNode;\n};\n\nexport const ButtonValue = ({ children, ...props }: ButtonValueProps) => (\n\t<span data-slot=\"value\" {...props}>\n\t\t{children}\n\t</span>\n);\n\nButtonValue.displayName = \"Button.Value\";\n","import type { ButtonHTMLAttributes, ReactNode } from \"react\";\nimport { isValidElement } from \"react\";\nimport { button } from \"./button.css\";\nimport { ButtonIcon } from \"./components/Icon/Button.Icon\";\nimport { ButtonSpinner } from \"./components/spinner/Button.Spinner\";\nimport { ButtonValue } from \"./components/Value/Button.Value\";\n\nexport type ButtonSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport type ButtonVariant =\n\t| \"primary\"\n\t| \"secondary\"\n\t| \"tertiary\"\n\t| \"secondaryGhost\"\n\t| \"tertiaryGhost\"\n\t| \"danger\";\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n\tisLoading?: boolean;\n\tisFull?: boolean;\n\tsize?: ButtonSize;\n\tvariant?: ButtonVariant;\n}\n\nconst ButtonBase = ({\n\tclassName,\n\ttype = \"button\",\n\tchildren,\n\tisLoading = false,\n\tisFull = false,\n\tsize = \"md\",\n\tvariant = \"primary\",\n\t...props\n}: ButtonProps) => {\n\tconst mergedClassName = [button({ full: isFull ? true : undefined, size, variant }), className]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n\tconst isDisabled = Boolean(props.disabled) || isLoading;\n\n\tconst childList = Array.isArray(children) ? children : [children];\n\tconst hasCustomSpinner = childList.some((c) => isValidElement(c) && c.type === ButtonSpinner);\n\n\tconst content: ReactNode = isLoading ? (\n\t\thasCustomSpinner ? (\n\t\t\tchildren\n\t\t) : (\n\t\t\t<Button.Spinner />\n\t\t)\n\t) : (\n\t\tchildren\n\t);\n\n\treturn (\n\t\t<button\n\t\t\t{...props}\n\t\t\tclassName={mergedClassName}\n\t\t\ttype={type}\n\t\t\tdisabled={isDisabled}\n\t\t\taria-busy={isLoading || undefined}\n\t\t>\n\t\t\t{content}\n\t\t</button>\n\t);\n};\n\nButtonBase.displayName = \"Button.Root\";\n\nexport const Button = {\n\tRoot: ButtonBase,\n\tIcon: ButtonIcon,\n\tValue: ButtonValue,\n\tSpinner: ButtonSpinner,\n} as const;\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "@dinefy/react-button",
4
- "version": "2.0.6",
4
+ "version": "2.0.9",
5
5
  "description": "Dinefy React Web UI - Button component",
6
6
  "type": "module",
7
7
  "private": false,