@shapesos/clay 0.6.0 → 0.7.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.
@@ -0,0 +1,53 @@
1
+ import * as react from 'react';
2
+ import { ComponentType, SVGProps } from 'react';
3
+
4
+ /** Available visual style variants for the Button component. */
5
+ declare const BUTTON_VARIANT: {
6
+ readonly SOLID: "solid";
7
+ readonly OUTLINE: "outline";
8
+ readonly GHOST: "ghost";
9
+ };
10
+ /** Available size presets for the Button component. */
11
+ declare const BUTTON_SIZE: {
12
+ readonly XS: "xs";
13
+ readonly S: "s";
14
+ readonly M: "m";
15
+ };
16
+ /** Available icon positions relative to the label text. */
17
+ declare const ICON_POSITION: {
18
+ readonly LEADING: "leading";
19
+ readonly TRAILING: "trailing";
20
+ };
21
+
22
+ /** Visual style of the button. */
23
+ type ButtonVariant = (typeof BUTTON_VARIANT)[keyof typeof BUTTON_VARIANT];
24
+ /** Size preset for the button. */
25
+ type ButtonSize = (typeof BUTTON_SIZE)[keyof typeof BUTTON_SIZE];
26
+ /** Position of the optional icon relative to the label text. */
27
+ type IconPosition = (typeof ICON_POSITION)[keyof typeof ICON_POSITION];
28
+ /** Props for the Button component. */
29
+ interface ButtonProps {
30
+ /** The text label displayed inside the button. */
31
+ children: React.ReactNode;
32
+ /** Visual style variant. @default "solid" */
33
+ variant?: ButtonVariant;
34
+ /** Size preset controlling padding, border radius, and icon gap. @default "m" */
35
+ size?: ButtonSize;
36
+ /** Optional icon component (Tabler icon or any SVG component). Rendered at 16px. */
37
+ icon?: ComponentType<SVGProps<SVGSVGElement>>;
38
+ /** Position of the icon relative to the label. @default "leading" */
39
+ iconPosition?: IconPosition;
40
+ /** Whether the button is disabled. @default false */
41
+ disabled?: boolean;
42
+ /** Click handler. */
43
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
44
+ /** Additional CSS class names. */
45
+ className?: string;
46
+ /** Accessible label override (uses children text by default). */
47
+ "aria-label"?: string;
48
+ }
49
+
50
+ /** A versatile button component with multiple variants and sizes. */
51
+ declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
52
+
53
+ export { BUTTON_SIZE, BUTTON_VARIANT, Button, type ButtonProps, type ButtonSize, type ButtonVariant, ICON_POSITION, type IconPosition };
@@ -0,0 +1,53 @@
1
+ import * as react from 'react';
2
+ import { ComponentType, SVGProps } from 'react';
3
+
4
+ /** Available visual style variants for the Button component. */
5
+ declare const BUTTON_VARIANT: {
6
+ readonly SOLID: "solid";
7
+ readonly OUTLINE: "outline";
8
+ readonly GHOST: "ghost";
9
+ };
10
+ /** Available size presets for the Button component. */
11
+ declare const BUTTON_SIZE: {
12
+ readonly XS: "xs";
13
+ readonly S: "s";
14
+ readonly M: "m";
15
+ };
16
+ /** Available icon positions relative to the label text. */
17
+ declare const ICON_POSITION: {
18
+ readonly LEADING: "leading";
19
+ readonly TRAILING: "trailing";
20
+ };
21
+
22
+ /** Visual style of the button. */
23
+ type ButtonVariant = (typeof BUTTON_VARIANT)[keyof typeof BUTTON_VARIANT];
24
+ /** Size preset for the button. */
25
+ type ButtonSize = (typeof BUTTON_SIZE)[keyof typeof BUTTON_SIZE];
26
+ /** Position of the optional icon relative to the label text. */
27
+ type IconPosition = (typeof ICON_POSITION)[keyof typeof ICON_POSITION];
28
+ /** Props for the Button component. */
29
+ interface ButtonProps {
30
+ /** The text label displayed inside the button. */
31
+ children: React.ReactNode;
32
+ /** Visual style variant. @default "solid" */
33
+ variant?: ButtonVariant;
34
+ /** Size preset controlling padding, border radius, and icon gap. @default "m" */
35
+ size?: ButtonSize;
36
+ /** Optional icon component (Tabler icon or any SVG component). Rendered at 16px. */
37
+ icon?: ComponentType<SVGProps<SVGSVGElement>>;
38
+ /** Position of the icon relative to the label. @default "leading" */
39
+ iconPosition?: IconPosition;
40
+ /** Whether the button is disabled. @default false */
41
+ disabled?: boolean;
42
+ /** Click handler. */
43
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
44
+ /** Additional CSS class names. */
45
+ className?: string;
46
+ /** Accessible label override (uses children text by default). */
47
+ "aria-label"?: string;
48
+ }
49
+
50
+ /** A versatile button component with multiple variants and sizes. */
51
+ declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
52
+
53
+ export { BUTTON_SIZE, BUTTON_VARIANT, Button, type ButtonProps, type ButtonSize, type ButtonVariant, ICON_POSITION, type IconPosition };
package/dist/button.js ADDED
@@ -0,0 +1,17 @@
1
+ import {
2
+ BUTTON_SIZE,
3
+ BUTTON_VARIANT,
4
+ Button,
5
+ ICON_POSITION
6
+ } from "./chunk-FFABDVB3.js";
7
+ import "./chunk-SV24ONND.js";
8
+ import "./chunk-OLJIJYB5.js";
9
+ import "./chunk-JF3P66JF.js";
10
+ import "./chunk-5WRI5ZAA.js";
11
+ export {
12
+ BUTTON_SIZE,
13
+ BUTTON_VARIANT,
14
+ Button,
15
+ ICON_POSITION
16
+ };
17
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,149 @@
1
+ import {
2
+ typographyMixin,
3
+ typographyTypes
4
+ } from "./chunk-SV24ONND.js";
5
+ import {
6
+ Icon
7
+ } from "./chunk-OLJIJYB5.js";
8
+ import {
9
+ colors
10
+ } from "./chunk-JF3P66JF.js";
11
+
12
+ // src/components/button/button.tsx
13
+ import { forwardRef } from "react";
14
+
15
+ // src/components/button/button-styles.ts
16
+ import styled, { css } from "styled-components";
17
+ var sizeStyles = {
18
+ xs: css`
19
+ padding: 6px 10px;
20
+ border-radius: 8px;
21
+ gap: 4px;
22
+ `,
23
+ s: css`
24
+ padding: 8px 12px;
25
+ border-radius: 10px;
26
+ gap: 6px;
27
+ `,
28
+ m: css`
29
+ padding: 10px 14px;
30
+ border-radius: 10px;
31
+ gap: 6px;
32
+ `
33
+ };
34
+ var variantStyles = {
35
+ solid: css`
36
+ background: ${colors["brown-100"]};
37
+ color: ${colors.white};
38
+ border: none;
39
+
40
+ &:hover:not(:disabled) {
41
+ background: ${colors["brown-90"]};
42
+ }
43
+
44
+ &:disabled {
45
+ background: ${colors["brown-20"]};
46
+ color: ${colors["brown-50"]};
47
+ }
48
+ `,
49
+ outline: css`
50
+ background: ${colors.white};
51
+ color: ${colors["brown-100"]};
52
+ border: 1px solid ${colors["brown-40"]};
53
+
54
+ &:hover:not(:disabled) {
55
+ background: ${colors["brown-20"]};
56
+ }
57
+
58
+ &:disabled {
59
+ border-color: ${colors["brown-20"]};
60
+ color: ${colors["brown-50"]};
61
+ }
62
+ `,
63
+ ghost: css`
64
+ background: transparent;
65
+ color: ${colors["brown-100"]};
66
+ border: none;
67
+
68
+ &:hover:not(:disabled) {
69
+ background: ${colors["brown-20"]};
70
+ }
71
+
72
+ &:disabled {
73
+ color: ${colors["brown-50"]};
74
+ }
75
+ `
76
+ };
77
+ var StyledButton = styled.button`
78
+ display: inline-flex;
79
+ align-items: center;
80
+ justify-content: center;
81
+ cursor: pointer;
82
+ ${typographyMixin(typographyTypes.GEIST_BODY_XS_MEDIUM)};
83
+ transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
84
+
85
+ &:disabled {
86
+ cursor: not-allowed;
87
+ }
88
+
89
+ ${({ $size }) => sizeStyles[$size]}
90
+ ${({ $variant }) => variantStyles[$variant]}
91
+ `;
92
+
93
+ // src/components/button/constants.ts
94
+ var BUTTON_VARIANT = {
95
+ SOLID: "solid",
96
+ OUTLINE: "outline",
97
+ GHOST: "ghost"
98
+ };
99
+ var BUTTON_SIZE = {
100
+ XS: "xs",
101
+ S: "s",
102
+ M: "m"
103
+ };
104
+ var ICON_POSITION = {
105
+ LEADING: "leading",
106
+ TRAILING: "trailing"
107
+ };
108
+
109
+ // src/components/button/button.tsx
110
+ import { jsx, jsxs } from "react/jsx-runtime";
111
+ var Button = forwardRef(function Button2({
112
+ children,
113
+ variant = BUTTON_VARIANT.SOLID,
114
+ size = BUTTON_SIZE.M,
115
+ icon,
116
+ iconPosition = ICON_POSITION.LEADING,
117
+ disabled = false,
118
+ onClick,
119
+ className,
120
+ "aria-label": ariaLabel
121
+ }, ref) {
122
+ const iconElement = icon ? /* @__PURE__ */ jsx(Icon, { icon, size: 16 }) : null;
123
+ return /* @__PURE__ */ jsxs(
124
+ StyledButton,
125
+ {
126
+ ref,
127
+ type: "button",
128
+ $variant: variant,
129
+ $size: size,
130
+ disabled,
131
+ onClick: disabled ? void 0 : onClick,
132
+ className,
133
+ "aria-label": ariaLabel,
134
+ children: [
135
+ iconPosition === ICON_POSITION.LEADING && iconElement,
136
+ /* @__PURE__ */ jsx("span", { children }),
137
+ iconPosition === ICON_POSITION.TRAILING && iconElement
138
+ ]
139
+ }
140
+ );
141
+ });
142
+
143
+ export {
144
+ BUTTON_VARIANT,
145
+ BUTTON_SIZE,
146
+ ICON_POSITION,
147
+ Button
148
+ };
149
+ //# sourceMappingURL=chunk-FFABDVB3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/button/button.tsx","../src/components/button/button-styles.ts","../src/components/button/constants.ts"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { Icon } from \"../icon/icon\";\nimport { StyledButton } from \"./button-styles\";\nimport { BUTTON_SIZE, BUTTON_VARIANT, ICON_POSITION } from \"./constants\";\nimport type { ButtonProps } from \"./types\";\n\n/** A versatile button component with multiple variants and sizes. */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n children,\n variant = BUTTON_VARIANT.SOLID,\n size = BUTTON_SIZE.M,\n icon,\n iconPosition = ICON_POSITION.LEADING,\n disabled = false,\n onClick,\n className,\n \"aria-label\": ariaLabel,\n },\n ref\n) {\n const iconElement = icon ? <Icon icon={icon} size={16} /> : null;\n\n return (\n <StyledButton\n ref={ref}\n type=\"button\"\n $variant={variant}\n $size={size}\n disabled={disabled}\n onClick={disabled ? undefined : onClick}\n className={className}\n aria-label={ariaLabel}\n >\n {iconPosition === ICON_POSITION.LEADING && iconElement}\n <span>{children}</span>\n {iconPosition === ICON_POSITION.TRAILING && iconElement}\n </StyledButton>\n );\n});\n","import styled, { css } from \"styled-components\";\nimport { colors } from \"../../tokens/colors\";\nimport { typographyMixin, typographyTypes } from \"../../tokens/typography\";\nimport type { ButtonSize, ButtonVariant } from \"./types\";\n\nconst sizeStyles: Record<ButtonSize, ReturnType<typeof css>> = {\n xs: css`\n padding: 6px 10px;\n border-radius: 8px;\n gap: 4px;\n `,\n s: css`\n padding: 8px 12px;\n border-radius: 10px;\n gap: 6px;\n `,\n m: css`\n padding: 10px 14px;\n border-radius: 10px;\n gap: 6px;\n `,\n};\n\nconst variantStyles: Record<ButtonVariant, ReturnType<typeof css>> = {\n solid: css`\n background: ${colors[\"brown-100\"]};\n color: ${colors.white};\n border: none;\n\n &:hover:not(:disabled) {\n background: ${colors[\"brown-90\"]};\n }\n\n &:disabled {\n background: ${colors[\"brown-20\"]};\n color: ${colors[\"brown-50\"]};\n }\n `,\n outline: css`\n background: ${colors.white};\n color: ${colors[\"brown-100\"]};\n border: 1px solid ${colors[\"brown-40\"]};\n\n &:hover:not(:disabled) {\n background: ${colors[\"brown-20\"]};\n }\n\n &:disabled {\n border-color: ${colors[\"brown-20\"]};\n color: ${colors[\"brown-50\"]};\n }\n `,\n ghost: css`\n background: transparent;\n color: ${colors[\"brown-100\"]};\n border: none;\n\n &:hover:not(:disabled) {\n background: ${colors[\"brown-20\"]};\n }\n\n &:disabled {\n color: ${colors[\"brown-50\"]};\n }\n `,\n};\n\n/** Styled button element with variant and size transient props. */\nexport const StyledButton = styled.button<{ $variant: ButtonVariant; $size: ButtonSize }>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n ${typographyMixin(typographyTypes.GEIST_BODY_XS_MEDIUM)};\n transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;\n\n &:disabled {\n cursor: not-allowed;\n }\n\n ${({ $size }) => sizeStyles[$size]}\n ${({ $variant }) => variantStyles[$variant]}\n`;\n","/** Available visual style variants for the Button component. */\nexport const BUTTON_VARIANT = {\n SOLID: \"solid\",\n OUTLINE: \"outline\",\n GHOST: \"ghost\",\n} as const;\n\n/** Available size presets for the Button component. */\nexport const BUTTON_SIZE = {\n XS: \"xs\",\n S: \"s\",\n M: \"m\",\n} as const;\n\n/** Available icon positions relative to the label text. */\nexport const ICON_POSITION = {\n LEADING: \"leading\",\n TRAILING: \"trailing\",\n} as const;\n"],"mappings":";;;;;;;;;;;;AAAA,SAAS,kBAAkB;;;ACA3B,OAAO,UAAU,WAAW;AAK5B,IAAM,aAAyD;AAAA,EAC7D,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,EAKJ,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAKH,GAAG;AAAA;AAAA;AAAA;AAAA;AAKL;AAEA,IAAM,gBAA+D;AAAA,EACnE,OAAO;AAAA,kBACS,OAAO,WAAW,CAAC;AAAA,aACxB,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA,oBAIL,OAAO,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,oBAIlB,OAAO,UAAU,CAAC;AAAA,eACvB,OAAO,UAAU,CAAC;AAAA;AAAA;AAAA,EAG/B,SAAS;AAAA,kBACO,OAAO,KAAK;AAAA,aACjB,OAAO,WAAW,CAAC;AAAA,wBACR,OAAO,UAAU,CAAC;AAAA;AAAA;AAAA,oBAGtB,OAAO,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,sBAIhB,OAAO,UAAU,CAAC;AAAA,eACzB,OAAO,UAAU,CAAC;AAAA;AAAA;AAAA,EAG/B,OAAO;AAAA;AAAA,aAEI,OAAO,WAAW,CAAC;AAAA;AAAA;AAAA;AAAA,oBAIZ,OAAO,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA,eAIvB,OAAO,UAAU,CAAC;AAAA;AAAA;AAGjC;AAGO,IAAM,eAAe,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAK/B,gBAAgB,gBAAgB,oBAAoB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOrD,CAAC,EAAE,MAAM,MAAM,WAAW,KAAK,CAAC;AAAA,IAChC,CAAC,EAAE,SAAS,MAAM,cAAc,QAAQ,CAAC;AAAA;;;AChFtC,IAAM,iBAAiB;AAAA,EAC5B,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AACT;AAGO,IAAM,cAAc;AAAA,EACzB,IAAI;AAAA,EACJ,GAAG;AAAA,EACH,GAAG;AACL;AAGO,IAAM,gBAAgB;AAAA,EAC3B,SAAS;AAAA,EACT,UAAU;AACZ;;;AFG6B,cAGzB,YAHyB;AAdtB,IAAM,SAAS,WAA2C,SAASA,QACxE;AAAA,EACE;AAAA,EACA,UAAU,eAAe;AAAA,EACzB,OAAO,YAAY;AAAA,EACnB;AAAA,EACA,eAAe,cAAc;AAAA,EAC7B,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,cAAc;AAChB,GACA,KACA;AACA,QAAM,cAAc,OAAO,oBAAC,QAAK,MAAY,MAAM,IAAI,IAAK;AAE5D,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,MAAK;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,MACP;AAAA,MACA,SAAS,WAAW,SAAY;AAAA,MAChC;AAAA,MACA,cAAY;AAAA,MAEX;AAAA,yBAAiB,cAAc,WAAW;AAAA,QAC3C,oBAAC,UAAM,UAAS;AAAA,QACf,iBAAiB,cAAc,YAAY;AAAA;AAAA;AAAA,EAC9C;AAEJ,CAAC;","names":["Button"]}
package/dist/index.cjs CHANGED
@@ -16342,8 +16342,12 @@ var require_lottie = __commonJS({
16342
16342
  // src/index.ts
16343
16343
  var src_exports = {};
16344
16344
  __export(src_exports, {
16345
+ BUTTON_SIZE: () => BUTTON_SIZE,
16346
+ BUTTON_VARIANT: () => BUTTON_VARIANT,
16347
+ Button: () => Button2,
16345
16348
  ChatContext: () => ChatContext,
16346
16349
  ChatMessage: () => ChatMessage,
16350
+ ICON_POSITION: () => ICON_POSITION,
16347
16351
  Icon: () => Icon,
16348
16352
  IconButton: () => IconButton,
16349
16353
  IconCtrl: () => IconCtrl,
@@ -17581,10 +17585,145 @@ var TextArea = (0, import_react8.forwardRef)(function TextArea2({ value: value2,
17581
17585
  }
17582
17586
  );
17583
17587
  });
17588
+
17589
+ // src/components/button/button.tsx
17590
+ var import_react9 = require("react");
17591
+
17592
+ // src/components/button/button-styles.ts
17593
+ var import_styled_components9 = __toESM(require("styled-components"), 1);
17594
+ var sizeStyles = {
17595
+ xs: import_styled_components9.css`
17596
+ padding: 6px 10px;
17597
+ border-radius: 8px;
17598
+ gap: 4px;
17599
+ `,
17600
+ s: import_styled_components9.css`
17601
+ padding: 8px 12px;
17602
+ border-radius: 10px;
17603
+ gap: 6px;
17604
+ `,
17605
+ m: import_styled_components9.css`
17606
+ padding: 10px 14px;
17607
+ border-radius: 10px;
17608
+ gap: 6px;
17609
+ `
17610
+ };
17611
+ var variantStyles2 = {
17612
+ solid: import_styled_components9.css`
17613
+ background: ${colors["brown-100"]};
17614
+ color: ${colors.white};
17615
+ border: none;
17616
+
17617
+ &:hover:not(:disabled) {
17618
+ background: ${colors["brown-90"]};
17619
+ }
17620
+
17621
+ &:disabled {
17622
+ background: ${colors["brown-20"]};
17623
+ color: ${colors["brown-50"]};
17624
+ }
17625
+ `,
17626
+ outline: import_styled_components9.css`
17627
+ background: ${colors.white};
17628
+ color: ${colors["brown-100"]};
17629
+ border: 1px solid ${colors["brown-40"]};
17630
+
17631
+ &:hover:not(:disabled) {
17632
+ background: ${colors["brown-20"]};
17633
+ }
17634
+
17635
+ &:disabled {
17636
+ border-color: ${colors["brown-20"]};
17637
+ color: ${colors["brown-50"]};
17638
+ }
17639
+ `,
17640
+ ghost: import_styled_components9.css`
17641
+ background: transparent;
17642
+ color: ${colors["brown-100"]};
17643
+ border: none;
17644
+
17645
+ &:hover:not(:disabled) {
17646
+ background: ${colors["brown-20"]};
17647
+ }
17648
+
17649
+ &:disabled {
17650
+ color: ${colors["brown-50"]};
17651
+ }
17652
+ `
17653
+ };
17654
+ var StyledButton = import_styled_components9.default.button`
17655
+ display: inline-flex;
17656
+ align-items: center;
17657
+ justify-content: center;
17658
+ cursor: pointer;
17659
+ ${typographyMixin(typographyTypes.GEIST_BODY_XS_MEDIUM)};
17660
+ transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
17661
+
17662
+ &:disabled {
17663
+ cursor: not-allowed;
17664
+ }
17665
+
17666
+ ${({ $size }) => sizeStyles[$size]}
17667
+ ${({ $variant }) => variantStyles2[$variant]}
17668
+ `;
17669
+
17670
+ // src/components/button/constants.ts
17671
+ var BUTTON_VARIANT = {
17672
+ SOLID: "solid",
17673
+ OUTLINE: "outline",
17674
+ GHOST: "ghost"
17675
+ };
17676
+ var BUTTON_SIZE = {
17677
+ XS: "xs",
17678
+ S: "s",
17679
+ M: "m"
17680
+ };
17681
+ var ICON_POSITION = {
17682
+ LEADING: "leading",
17683
+ TRAILING: "trailing"
17684
+ };
17685
+
17686
+ // src/components/button/button.tsx
17687
+ var import_jsx_runtime10 = require("react/jsx-runtime");
17688
+ var Button2 = (0, import_react9.forwardRef)(function Button3({
17689
+ children,
17690
+ variant = BUTTON_VARIANT.SOLID,
17691
+ size = BUTTON_SIZE.M,
17692
+ icon,
17693
+ iconPosition = ICON_POSITION.LEADING,
17694
+ disabled = false,
17695
+ onClick,
17696
+ className,
17697
+ "aria-label": ariaLabel
17698
+ }, ref) {
17699
+ const iconElement = icon ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Icon, { icon, size: 16 }) : null;
17700
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
17701
+ StyledButton,
17702
+ {
17703
+ ref,
17704
+ type: "button",
17705
+ $variant: variant,
17706
+ $size: size,
17707
+ disabled,
17708
+ onClick: disabled ? void 0 : onClick,
17709
+ className,
17710
+ "aria-label": ariaLabel,
17711
+ children: [
17712
+ iconPosition === ICON_POSITION.LEADING && iconElement,
17713
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { children }),
17714
+ iconPosition === ICON_POSITION.TRAILING && iconElement
17715
+ ]
17716
+ }
17717
+ );
17718
+ });
17584
17719
  // Annotate the CommonJS export names for ESM import in node:
17585
17720
  0 && (module.exports = {
17721
+ BUTTON_SIZE,
17722
+ BUTTON_VARIANT,
17723
+ Button,
17586
17724
  ChatContext,
17587
17725
  ChatMessage,
17726
+ ICON_POSITION,
17588
17727
  Icon,
17589
17728
  IconButton,
17590
17729
  IconCtrl,