Skip to content

Commit 48ffbba

Browse files
anuj-kumaryclaude
andauthored
feat(ui): add font-size support to SelectItem via SelectContext (#27379)
* feat(ui): add font-size support to SelectItem via SelectContext Extends SelectContext to include fontSize so SelectItem inherits the font size configured on the parent Select, enabling consistent text sizing across both the trigger and dropdown items. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * nit --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent dcbf049 commit 48ffbba

2 files changed

Lines changed: 16 additions & 9 deletions

File tree

openmetadata-ui-core-components/src/main/resources/ui/src/components/base/select/select-item.tsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
import { isValidElement, useContext } from 'react';
1+
import { Avatar } from '@/components/base/avatar/avatar';
2+
import { cx } from '@/utils/cx';
3+
import { isReactComponent } from '@/utils/is-react-component';
4+
import { fontSizeClass } from '@/utils/tailwindClasses';
25
import { Check } from '@untitledui/icons';
6+
import { isValidElement, useContext } from 'react';
37
import type { ListBoxItemProps as AriaListBoxItemProps } from 'react-aria-components';
48
import {
59
ListBoxItem as AriaListBoxItem,
610
Text as AriaText,
711
} from 'react-aria-components';
8-
import { Avatar } from '@/components/base/avatar/avatar';
9-
import { cx } from '@/utils/cx';
10-
import { isReactComponent } from '@/utils/is-react-component';
1112
import type { SelectItemType } from './select';
1213
import { SelectContext } from './select';
1314

@@ -32,7 +33,7 @@ export const SelectItem = ({
3233
children,
3334
...props
3435
}: SelectItemProps) => {
35-
const { size } = useContext(SelectContext);
36+
const { fontSize, size } = useContext(SelectContext);
3637

3738
const labelOrChildren =
3839
label || (typeof children === 'string' ? children : '');
@@ -89,7 +90,8 @@ export const SelectItem = ({
8990
<div className="tw:flex tw:w-full tw:min-w-0 tw:flex-1 tw:flex-wrap tw:gap-x-2">
9091
<AriaText
9192
className={cx(
92-
'tw:truncate tw:text-md tw:font-medium tw:whitespace-nowrap tw:text-primary',
93+
'tw:truncate tw:font-medium tw:whitespace-nowrap tw:text-primary',
94+
fontSizeClass[fontSize],
9395
state.isDisabled && 'tw:text-disabled'
9496
)}
9597
slot="label">
@@ -100,7 +102,8 @@ export const SelectItem = ({
100102
{supportingText && (
101103
<AriaText
102104
className={cx(
103-
'tw:text-md tw:whitespace-nowrap tw:text-tertiary',
105+
'tw:whitespace-nowrap tw:text-tertiary',
106+
fontSizeClass[fontSize],
104107
state.isDisabled && 'tw:text-disabled'
105108
)}
106109
slot="description">

openmetadata-ui-core-components/src/main/resources/ui/src/components/base/select/select.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,11 @@ const SelectValue = ({
152152
);
153153
};
154154

155-
export const SelectContext = createContext<{ size: 'sm' | 'md' }>({
155+
export const SelectContext = createContext<{
156+
size: 'sm' | 'md';
157+
fontSize: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
158+
}>({
159+
fontSize: 'md',
156160
size: 'sm',
157161
});
158162

@@ -170,7 +174,7 @@ const Select = ({
170174
...rest
171175
}: SelectProps) => {
172176
return (
173-
<SelectContext.Provider value={{ size }}>
177+
<SelectContext.Provider value={{ fontSize, size }}>
174178
<AriaSelect
175179
{...rest}
176180
className={(state) =>

0 commit comments

Comments
 (0)