diff --git a/packages/canon/src/components/Button/types.ts b/packages/canon/src/components/Button/types.ts
index 4ab62d5683..15feca581c 100644
--- a/packages/canon/src/components/Button/types.ts
+++ b/packages/canon/src/components/Button/types.ts
@@ -15,7 +15,6 @@
*/
import type { ButtonOwnProps } from './Button.props';
-import { ReactElement } from 'react';
/**
* Properties for {@link Button}
@@ -44,10 +43,10 @@ export interface ButtonProps
/**
* Optional icon to display at the start of the button
*/
- iconStart?: ReactElement;
+ iconStart?: React.ReactNode;
/**
* Optional icon to display at the end of the button
*/
- iconEnd?: ReactElement;
+ iconEnd?: React.ReactNode;
}
diff --git a/packages/canon/src/components/TextField/TextField.stories.tsx b/packages/canon/src/components/TextField/TextField.stories.tsx
index 0615a157a1..86f9034e5c 100644
--- a/packages/canon/src/components/TextField/TextField.stories.tsx
+++ b/packages/canon/src/components/TextField/TextField.stories.tsx
@@ -17,6 +17,7 @@
import type { Meta, StoryObj } from '@storybook/react';
import { TextField } from './TextField';
import { Flex } from '../Flex';
+import { Icon } from '../Icon';
const meta = {
title: 'Components/TextField',
@@ -79,8 +80,8 @@ export const Sizes: Story = {
},
render: args => (
-
-
+ } />
+ } />
),
};
@@ -114,7 +115,7 @@ export const WithIcon: Story = {
args: {
...WithLabel.args,
placeholder: 'Search...',
- icon: 'search',
+ icon: ,
},
};
diff --git a/packages/canon/src/components/TextField/TextField.styles.css b/packages/canon/src/components/TextField/TextField.styles.css
index ad3ccc931b..be7ec3379c 100644
--- a/packages/canon/src/components/TextField/TextField.styles.css
+++ b/packages/canon/src/components/TextField/TextField.styles.css
@@ -59,15 +59,24 @@
background-color: var(--canon-bg-surface-1);
}
-.canon-TextFieldInputIcon {
- display: block;
- padding-right: var(--canon-space-1);
- width: 1.5rem;
- height: 1.5rem;
+.canon-TextFieldIcon {
+ margin-right: var(--canon-space-1);
color: var(--canon-fg-primary);
flex-shrink: 0;
}
+.canon-TextFieldIcon[data-size='small'],
+.canon-TextFieldIcon[data-size='small'] svg {
+ width: 1rem;
+ height: 1rem;
+}
+
+.canon-TextFieldIcon[data-size='medium'],
+.canon-TextFieldIcon[data-size='medium'] svg {
+ width: 1.25rem;
+ height: 1.25rem;
+}
+
.canon-TextFieldInput {
border: none;
background: none;
diff --git a/packages/canon/src/components/TextField/TextField.tsx b/packages/canon/src/components/TextField/TextField.tsx
index bb32033da4..e4cf43a711 100644
--- a/packages/canon/src/components/TextField/TextField.tsx
+++ b/packages/canon/src/components/TextField/TextField.tsx
@@ -27,7 +27,7 @@ export const TextField = forwardRef(
(props: TextFieldProps, ref) => {
const {
className,
- size = 'medium',
+ size = 'small',
label,
description,
error,
@@ -61,7 +61,15 @@ export const TextField = forwardRef(
)}
- {icon &&
}
+ {icon && (
+
+ {icon}
+
+ )}