[READ-ONLY] Mirror of https://github.com/lukebennett88/luke-ui. luke-ui.netlify.app/
0

Configure Feed

Select the types of activity you want to include in your feed.

Use size?: ComboboxSize directly in five combobox primitives (#64)

* Replace per-file size prop types with canonical ComboboxSize inline

Five combobox primitives each declared ComboboxVariantProps and
ComboboxStyleProps types to thread the size prop. This deletes the
local types and imports size?: ComboboxSize from root.js directly.

item.tsx had inlined size?: 'small' | 'medium', which had already drifted
from the canonical type. That is fixed.

* Fix formatting in combobox primitives

authored by

Luke Bennett and committed by
GitHub
(Jul 5, 2026, 4:53 PM +1000) e04da0db 26d75728

+29 -43
+6 -8
packages/@luke-ui/react/src/combobox-field/primitive/clear-button.tsx
··· 8 8 import { COMBOBOX_ICON_SIZE } from '../../sizing/combobox-sizing.js'; 9 9 import type { DistributiveOmit } from '../../types/distributive-omit.js'; 10 10 import { cx } from '../../utils/index.js'; 11 + import type { ComboboxSize } from './root.js'; 11 12 import { useComboboxSize } from './size-context.js'; 12 - 13 - interface ComboboxVariantProps extends NonNullable<styles.ComboboxVariants> {} 14 - 15 - interface ComboboxStyleProps { 16 - size?: ComboboxVariantProps['size']; 17 - } 18 13 19 14 /** 20 15 * Props for the combobox clear button. 21 16 * 22 17 * @tier primitive 23 18 */ 24 - export interface ComboboxClearButtonProps 25 - extends DistributiveOmit<RacButtonProps, 'className' | 'slot'>, ComboboxStyleProps { 19 + export interface ComboboxClearButtonProps extends DistributiveOmit< 20 + RacButtonProps, 21 + 'className' | 'slot' 22 + > { 26 23 className?: RacButtonProps['className']; 24 + size?: ComboboxSize; 27 25 } 28 26 29 27 /** Clears the combobox selection. Renders nothing while no option is selected. */
+3 -9
packages/@luke-ui/react/src/combobox-field/primitive/control.tsx
··· 5 5 import * as styles from '../../recipes/combobox.css.js'; 6 6 import type { DistributiveOmit } from '../../types/distributive-omit.js'; 7 7 import { cx } from '../../utils/index.js'; 8 + import type { ComboboxSize } from './root.js'; 8 9 import { useComboboxSize } from './size-context.js'; 9 - 10 - interface ComboboxVariantProps extends NonNullable<styles.ComboboxVariants> {} 11 - 12 - interface ComboboxStyleProps { 13 - /** Control size. */ 14 - size?: ComboboxVariantProps['size']; 15 - } 16 10 17 11 /** 18 12 * Props for the styled combobox control group. 19 13 * 20 14 * @tier primitive 21 15 */ 22 - export interface ComboboxControlProps 23 - extends DistributiveOmit<RacGroupProps, 'className'>, ComboboxStyleProps { 16 + export interface ComboboxControlProps extends DistributiveOmit<RacGroupProps, 'className'> { 24 17 className?: RacGroupProps['className']; 18 + size?: ComboboxSize; 25 19 } 26 20 27 21 /** Control wrapper for combobox text input + trigger content. */
+6 -10
packages/@luke-ui/react/src/combobox-field/primitive/input.tsx
··· 6 6 import * as styles from '../../recipes/combobox.css.js'; 7 7 import type { DistributiveOmit } from '../../types/distributive-omit.js'; 8 8 import { cx } from '../../utils/index.js'; 9 + import type { ComboboxSize } from './root.js'; 9 10 import { useComboboxSize } from './size-context.js'; 10 - 11 - interface ComboboxVariantProps extends NonNullable<styles.ComboboxVariants> {} 12 - 13 - interface ComboboxStyleProps { 14 - size?: ComboboxVariantProps['size']; 15 - } 16 11 17 12 /** 18 13 * Props for the styled combobox text input. 19 14 * 20 15 * @tier primitive 21 16 */ 22 - export interface ComboboxTextInputProps 23 - extends 24 - DistributiveOmit<RacInputProps, 'className' | keyof ComboboxStyleProps>, 25 - ComboboxStyleProps { 17 + export interface ComboboxTextInputProps extends DistributiveOmit< 18 + RacInputProps, 19 + 'className' | 'size' 20 + > { 26 21 className?: RacInputProps['className']; 22 + size?: ComboboxSize; 27 23 } 28 24 29 25 /** Text input used within `ComboboxControl` for combobox behavior. */
+11 -8
packages/@luke-ui/react/src/combobox-field/primitive/item.tsx
··· 14 14 import { COMBOBOX_ICON_SIZE } from '../../sizing/combobox-sizing.js'; 15 15 import type { DistributiveOmit } from '../../types/distributive-omit.js'; 16 16 import { cx } from '../../utils/index.js'; 17 + import type { ComboboxSize } from './root.js'; 17 18 import { useComboboxSize } from './size-context.js'; 18 - 19 - interface ComboboxStyleProps { 20 - size?: 'small' | 'medium'; 21 - } 22 19 23 20 /** 24 21 * Props for a combobox list item. 25 22 * 26 23 * @tier primitive 27 24 */ 28 - export interface ComboboxItemProps<T extends object> 29 - extends DistributiveOmit<RacListBoxItemProps<T>, 'className'>, ComboboxStyleProps { 25 + export interface ComboboxItemProps<T extends object> extends DistributiveOmit< 26 + RacListBoxItemProps<T>, 27 + 'className' 28 + > { 30 29 className?: RacListBoxItemProps<T>['className']; 30 + size?: ComboboxSize; 31 31 } 32 32 33 33 export function ComboboxItem<T extends object>(props: ComboboxItemProps<T>): JSX.Element { ··· 65 65 * 66 66 * @tier primitive 67 67 */ 68 - export interface ComboboxLoadMoreItemProps 69 - extends DistributiveOmit<RacListBoxLoadMoreItemProps, 'className'>, ComboboxStyleProps { 68 + export interface ComboboxLoadMoreItemProps extends DistributiveOmit< 69 + RacListBoxLoadMoreItemProps, 70 + 'className' 71 + > { 70 72 className?: RacListBoxLoadMoreItemProps['className']; 73 + size?: ComboboxSize; 71 74 } 72 75 73 76 export function ComboboxLoadMoreItem(props: ComboboxLoadMoreItemProps): JSX.Element {
+3 -8
packages/@luke-ui/react/src/combobox-field/primitive/trigger.tsx
··· 7 7 import { COMBOBOX_ICON_SIZE } from '../../sizing/combobox-sizing.js'; 8 8 import type { DistributiveOmit } from '../../types/distributive-omit.js'; 9 9 import { cx } from '../../utils/index.js'; 10 + import type { ComboboxSize } from './root.js'; 10 11 import { useComboboxSize } from './size-context.js'; 11 - 12 - interface ComboboxVariantProps extends NonNullable<styles.ComboboxVariants> {} 13 - 14 - interface ComboboxStyleProps { 15 - size?: ComboboxVariantProps['size']; 16 - } 17 12 18 13 /** 19 14 * Props for the combobox trigger button. 20 15 * 21 16 * @tier primitive 22 17 */ 23 - export interface ComboboxTriggerProps 24 - extends DistributiveOmit<RacButtonProps, 'className'>, ComboboxStyleProps { 18 + export interface ComboboxTriggerProps extends DistributiveOmit<RacButtonProps, 'className'> { 25 19 className?: RacButtonProps['className']; 20 + size?: ComboboxSize; 26 21 } 27 22 28 23 /** Trigger button used by combobox pattern. */