@lumx/react 4.9.0-next.7 → 4.9.0-next.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/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { Kind as Kind$1, HorizontalAlignment as HorizontalAlignment$1, Theme as Theme$1, Size as Size$1, Orientation as Orientation$1, Alignment as Alignment$1, AspectRatio as AspectRatio$1, Emphasis as Emphasis$1 } from '@lumx/core/js/constants';
2
2
  export * from '@lumx/core/js/constants';
3
3
  import * as _lumx_core_js_types from '@lumx/core/js/types';
4
- import { GenericProps as GenericProps$1, HasTheme as HasTheme$1, ValueOf as ValueOf$1, PropsToOverride, HasCloseMode as HasCloseMode$1, HasClassName as HasClassName$1, JSXElement as JSXElement$1, CommonRef as CommonRef$1, Falsy, HeadingElement as HeadingElement$1, HasAriaDisabled as HasAriaDisabled$1, HasRequiredLinkHref as HasRequiredLinkHref$1, HasAriaLabelOrLabelledBy as HasAriaLabelOrLabelledBy$1 } from '@lumx/core/js/types';
4
+ import { GenericProps as GenericProps$1, HasTheme as HasTheme$1, ValueOf as ValueOf$1, PropsToOverride, HasAriaDisabled as HasAriaDisabled$1, HasRequiredLinkHref as HasRequiredLinkHref$1, HasClassName as HasClassName$1, HasCloseMode as HasCloseMode$1, JSXElement as JSXElement$1, CommonRef as CommonRef$1, Falsy, HeadingElement as HeadingElement$1, HasAriaLabelOrLabelledBy as HasAriaLabelOrLabelledBy$1 } from '@lumx/core/js/types';
5
5
  export * from '@lumx/core/js/types';
6
6
  import * as React$1 from 'react';
7
- import React__default, { Ref, ReactElement, ReactNode, SyntheticEvent, MouseEventHandler, KeyboardEventHandler, RefObject, CSSProperties, ImgHTMLAttributes, AriaAttributes as AriaAttributes$1, SetStateAction, Key, ElementType as ElementType$1, HTMLInputTypeAttribute, ComponentProps } from 'react';
7
+ import React__default, { Ref, ReactElement, ReactNode, SyntheticEvent, MouseEventHandler, KeyboardEventHandler, RefObject, SetStateAction, Key, CSSProperties, ElementType as ElementType$1, HTMLInputTypeAttribute, ComponentProps, ImgHTMLAttributes, AriaAttributes as AriaAttributes$1 } from 'react';
8
8
  import * as react_jsx_runtime from 'react/jsx-runtime';
9
9
 
10
10
  /** LumX Component Type. */
@@ -32,6 +32,13 @@ type ComponentRef<C> = C extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElem
32
32
  ref?: infer R;
33
33
  }> ? R : never;
34
34
 
35
+ type HasPolymorphicAs$1<E extends React.ElementType> = React.ComponentPropsWithoutRef<E> & {
36
+ /**
37
+ * Customize the rendered component.
38
+ */
39
+ as?: E;
40
+ };
41
+
35
42
  interface AlertDialogProps extends Omit<DialogProps, 'header' | 'footer'> {
36
43
  /** Message variant. */
37
44
  kind?: Kind$1;
@@ -1067,248 +1074,349 @@ interface SelectionChipGroupProps<O> extends GenericProps$1 {
1067
1074
  */
1068
1075
  declare const SelectionChipGroup: <O>({ onChange, value, getOptionId, getOptionName, inputRef, inputLabel, renderChip, theme, isDisabled, chipTooltipLabel, label, ...forwardedProps }: SelectionChipGroupProps<O>) => react_jsx_runtime.JSX.Element;
1069
1076
 
1077
+ type Listener = (evt: KeyboardEvent) => void;
1078
+ interface UseKeyboardListNavigationType {
1079
+ /** the current active index */
1080
+ activeItemIndex: number;
1081
+ /** callback to be used when a key is pressed. usually used with the native prop `onKeyDown` */
1082
+ onKeyboardNavigation: Listener;
1083
+ /** Resets the active index to the initial state */
1084
+ resetActiveIndex(): void;
1085
+ /** Sets the active index to a given value */
1086
+ setActiveItemIndex(value: SetStateAction<number>): void;
1087
+ }
1088
+ type useKeyboardListNavigationType = <I>(items: I[], ref: RefObject<HTMLElement>, onListItemSelected: (itemSelected: I) => void, onListItemNavigated?: (itemSelected: I) => void, onEnterPressed?: (itemSelected: string) => void, onBackspacePressed?: Listener, keepFocusAfterSelection?: boolean, initialIndex?: number, preventTabOnEnteredValue?: boolean) => UseKeyboardListNavigationType;
1089
+
1090
+ /** List item padding size. */
1091
+ type ListItemPadding = Extract<Size, 'big' | 'huge'>;
1070
1092
  /**
1071
- * Comment block variants.
1093
+ * Defines the props of the component.
1072
1094
  */
1073
- declare const CommentBlockVariant: {
1074
- readonly indented: "indented";
1075
- readonly linear: "linear";
1076
- };
1077
- type CommentBlockVariant = ValueOf$1<typeof CommentBlockVariant>;
1095
+ interface ListProps$1 extends HasClassName {
1096
+ /** List content (should be ListItem, ListDivider, etc.). */
1097
+ children?: JSXElement;
1098
+ /** Item padding size. */
1099
+ itemPadding?: ListItemPadding;
1100
+ /** ref to the root element */
1101
+ ref?: CommonRef;
1102
+ }
1103
+
1078
1104
  /**
1079
1105
  * Defines the props of the component.
1080
1106
  */
1081
- interface CommentBlockProps extends GenericProps$1, HasTheme$1 {
1082
- /** Action toolbar content. */
1083
- actions?: ReactNode;
1084
- /** Props to pass to the avatar. */
1085
- avatarProps: AvatarProps;
1086
- /** Comment block replies. */
1087
- children?: ReactNode;
1088
- /** Comment date with the minimal timestamp information (xx minutes, x hours, yesterday, 6 days, Month Day, Month Day Year)*/
1089
- date?: string;
1090
- /** Comment date with the full timestamp information (day, month, year, time) */
1091
- fullDate?: string;
1092
- /** Whether the component has actions to display or not. */
1093
- hasActions?: boolean;
1094
- /** Action toolbar header content. */
1095
- headerActions?: ReactNode;
1096
- /** Whether the component is open or not. */
1097
- isOpen?: boolean;
1098
- /** Whether the comment is relevant or not. */
1099
- isRelevant?: boolean;
1100
- /** Comment author name. */
1101
- name?: React.ReactNode;
1102
- /**
1103
- * On click callback.
1104
- * @deprecated Use avatarProps instead and/or inject a clickable component in `name`
1105
- */
1106
- onClick?(): void;
1107
- /**
1108
- * On mouse enter callback.
1109
- * @deprecated Use avatarProps instead and/or inject a clickable component in `name`
1110
- */
1111
- onMouseEnter?(): void;
1107
+ interface ListProps extends GenericProps$1, ReactToJSX<ListProps$1> {
1112
1108
  /**
1113
- * On mouse leave callback.
1114
- * @deprecated Use avatarProps instead and/or inject a clickable component in `name`
1109
+ * Whether the list items are clickable.
1110
+ * @deprecated not needed anymore.
1115
1111
  */
1116
- onMouseLeave?(): void;
1117
- /** Comment content. */
1118
- text: ReactNode | string;
1119
- /** Comment variant. */
1120
- variant?: CommentBlockVariant;
1112
+ isClickable?: boolean;
1113
+ /** Tab index of the list. */
1114
+ tabIndex?: number;
1115
+ /** @deprecated not supported since v4.0.0 */
1116
+ onListItemSelected?(key: Key, index: number, evt: SyntheticEvent): void;
1121
1117
  }
1118
+ declare const List: Comp<ListProps, HTMLUListElement> & {
1119
+ useKeyboardListNavigation: useKeyboardListNavigationType;
1120
+ };
1121
+
1122
1122
  /**
1123
- * CommentBlock component.
1124
- *
1125
- * @param props Component props.
1126
- * @param ref Component ref.
1127
- * @return React element.
1123
+ * ListItemAction props.
1128
1124
  */
1129
- declare const CommentBlock: Comp<CommentBlockProps, HTMLDivElement>;
1125
+ type ListItemActionProps<E extends ClickableElement = 'button'> = RawClickableProps<E> & HasClassName;
1130
1126
 
1127
+ /** ListItem size variants. */
1128
+ type ListItemSize = Extract<Size, 'tiny' | 'regular' | 'big' | 'huge'>;
1131
1129
  /**
1132
1130
  * Defines the props of the component.
1133
1131
  */
1134
- interface DatePickerProps extends GenericProps$1 {
1135
- /** Default month. */
1136
- defaultMonth?: Date;
1137
- /** Locale (language or region) to use. */
1138
- locale?: string;
1139
- /** Date after which dates can't be selected. */
1140
- maxDate?: Date;
1141
- /** Date before which dates can't be selected. */
1142
- minDate?: Date;
1143
- /** Props to pass to the next month button (minus those already set by the DatePickerControlled props). */
1144
- nextButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;
1145
- /** Props to pass to the previous month button (minus those already set by the DatePickerControlled props). */
1146
- previousButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;
1147
- /** Reference to the <button> element corresponding to the current date or the selected date. */
1148
- todayOrSelectedDateRef?: Ref<HTMLButtonElement>;
1149
- /** Currently selected date. */
1150
- value: Date | undefined;
1151
- /** On change callback. */
1152
- onChange(value: Date | undefined): void;
1132
+ interface ListItemProps$1 extends HasClassName, HasAriaDisabled {
1133
+ /** A component to be rendered after the content. */
1134
+ after?: JSXElement;
1135
+ /** A component to be rendered before the content. */
1136
+ before?: JSXElement;
1137
+ /** Content. */
1138
+ children?: JSXElement;
1139
+ /** Whether the list item should be highlighted or not. */
1140
+ isHighlighted?: boolean;
1141
+ /** Whether the component is selected or not. */
1142
+ isSelected?: boolean;
1143
+ /** Whether link/button is disabled or not. */
1144
+ isDisabled?: boolean;
1145
+ /** Custom component for the link (can be used to inject router Link). */
1146
+ linkAs?: 'a' | any;
1147
+ /** Props that will be passed on to the Link. */
1148
+ linkProps?: GenericProps;
1149
+ /** Reference to the link element. */
1150
+ linkRef?: CommonRef;
1151
+ /** Size variant. */
1152
+ size?: ListItemSize;
1153
+ /** ref to the root <li> element */
1154
+ ref?: CommonRef;
1155
+ /** On click callback. */
1156
+ handleClick?: (event: any) => void;
1153
1157
  }
1154
-
1155
- /**
1156
- * DatePicker component.
1157
- *
1158
- * @param props Component props.
1159
- * @param ref Component ref.
1160
- * @return React element.
1161
- */
1162
- declare const DatePicker: Comp<DatePickerProps, HTMLDivElement>;
1158
+ type ListItemPropsToOverride = 'after' | 'before' | 'children' | 'handleClick';
1163
1159
 
1164
1160
  /**
1165
1161
  * Defines the props of the component.
1166
1162
  */
1167
- interface DatePickerControlledProps extends DatePickerProps {
1168
- /** Selected month to display. */
1169
- selectedMonth: Date;
1170
- /** On previous month change callback. */
1171
- onPrevMonthChange(): void;
1172
- /** On next month change callback. */
1173
- onNextMonthChange(): void;
1174
- /** On month/year change callback. */
1175
- onMonthChange?: (newMonth: Date) => void;
1163
+ interface ListItemProps extends GenericProps$1, HasAriaDisabled$1, ReactToJSX<ListItemProps$1, ListItemPropsToOverride> {
1164
+ /** A component to be rendered after the content. */
1165
+ after?: ReactNode;
1166
+ /** A component to be rendered before the content. */
1167
+ before?: ReactNode;
1168
+ /** Content. */
1169
+ children: string | ReactNode;
1170
+ /** Reference to the <li> element. */
1171
+ listItemRef?: Ref<HTMLLIElement>;
1172
+ /** Reference to the link element. */
1173
+ linkRef?: Ref<HTMLAnchorElement>;
1174
+ /** On click callback. */
1175
+ onClick?(event: SyntheticEvent): void;
1176
+ /** @alias onClick */
1177
+ onItemSelected?(evt: SyntheticEvent): void;
1176
1178
  }
1177
1179
  /**
1178
- * DatePickerControlled component.
1179
- *
1180
- * @param props Component props.
1181
- * @param ref Component ref.
1182
- * @return React element.
1180
+ * ListItem component with Action sub-component.
1183
1181
  */
1184
- declare const DatePickerControlled: Comp<DatePickerControlledProps, HTMLDivElement>;
1182
+ declare const ListItem: Comp<ListItemProps, HTMLLIElement> & {
1183
+ /** Sub-component that renders the default action (button or link) for the action area pattern. */
1184
+ Action: (<E extends React$1.ElementType = "button">(props: React$1.PropsWithoutRef<React$1.ComponentProps<E>> & {
1185
+ as?: E | undefined;
1186
+ } & GenericProps$1 & ReactToJSX<ListItemActionProps, "children"> & _lumx_core_js_types.HasRequiredLinkHref<E> & {
1187
+ children: ReactNode;
1188
+ onClick?(evt: SyntheticEvent): void;
1189
+ } & React$1.ComponentProps<E> & {
1190
+ ref?: ComponentRef<E> | undefined;
1191
+ }) => React.JSX.Element) & {
1192
+ displayName: string;
1193
+ className: string;
1194
+ defaultProps: Partial<ListItemActionProps<"button">>;
1195
+ };
1196
+ };
1185
1197
 
1186
1198
  /**
1187
1199
  * Defines the props of the component.
1188
1200
  */
1189
- interface DatePickerFieldProps extends Omit<TextFieldProps, 'value' | 'onChange'>, GenericProps$1 {
1190
- /** Default month. */
1191
- defaultMonth?: Date;
1192
- /** Locale (language or region) to use. */
1193
- locale?: string;
1194
- /** Date after which dates can't be selected. */
1195
- maxDate?: Date;
1196
- /** Date before which dates can't be selected. */
1197
- minDate?: Date;
1198
- /** Props to pass to the next month button (minus those already set by the DatePickerControlled props). */
1199
- nextButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;
1200
- /** Props to pass to the previous month button (minus those already set by the DatePickerControlled props). */
1201
- previousButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;
1202
- /** Currently selected date. */
1203
- value: Date | undefined;
1204
- /** On change callback. */
1205
- onChange(value: Date | undefined, name?: string, event?: SyntheticEvent): void;
1201
+ interface ListDividerProps$1 extends HasClassName {
1202
+ /** ref to the root element */
1203
+ ref?: CommonRef;
1206
1204
  }
1205
+
1207
1206
  /**
1208
- * DatePickerField component.
1207
+ * Defines the props of the component.
1208
+ */
1209
+ type ListDividerProps = GenericProps$1 & ReactToJSX<ListDividerProps$1>;
1210
+ /**
1211
+ * ListDivider component.
1212
+ * Purely decorative, consider a `ListSection` with label for a better list structure.
1209
1213
  *
1210
1214
  * @param props Component props.
1211
1215
  * @param ref Component ref.
1212
1216
  * @return React element.
1213
1217
  */
1214
- declare const DatePickerField: Comp<DatePickerFieldProps, HTMLDivElement>;
1218
+ declare const ListDivider: Comp<ListDividerProps, HTMLLIElement>;
1215
1219
 
1216
1220
  /**
1217
1221
  * Defines the props of the component.
1218
1222
  */
1219
- interface DialogProps extends GenericProps$1, HasCloseMode$1 {
1220
- /** Footer content. */
1221
- footer?: ReactNode;
1222
- /** Whether the divider between the dialog content and the footer is always displayed (instead of showing it on scroll). */
1223
- forceFooterDivider?: boolean;
1224
- /** Header content. */
1225
- header?: ReactNode;
1226
- /** Whether the divider between the dialog content and the footer is always displayed (instead of showing it on scroll). */
1227
- forceHeaderDivider?: boolean;
1228
- /** Whether the indefinite progress indicator over the dialog content is displayed or not. */
1229
- isLoading?: boolean;
1230
- /** Whether the component is open or not. */
1231
- isOpen?: boolean;
1232
- /** Reference to the parent element that triggered modal opening (will get back focus on close). */
1233
- parentElement?: RefObject<HTMLElement>;
1234
- /** Reference to the dialog content element. */
1235
- contentRef?: Ref<HTMLDivElement>;
1236
- /** Reference to the of the element that should get the focus when the dialogs opens. By default, the first child will take focus. */
1237
- focusElement?: RefObject<HTMLElement>;
1238
- /** Whether to keep the dialog open on clickaway or escape press. */
1239
- preventAutoClose?: boolean;
1240
- /** Whether to keep the dialog open on escape press. */
1241
- preventCloseOnEscape?: boolean;
1242
- /** Whether to keep the dialog open on clickaway. */
1243
- preventCloseOnClick?: boolean;
1244
- /** Size variant. */
1245
- size?: DialogSizes;
1246
- /** Z-axis position. */
1247
- zIndex?: number;
1248
- /** Z-axis position. */
1249
- dialogProps?: GenericProps$1;
1250
- /** On close callback. */
1251
- onClose?(): void;
1252
- /** Callback called when the open animation starts and the close animation finishes. */
1253
- onVisibilityChange?(isVisible: boolean): void;
1254
- /** whether to disable the scroll on the body or not */
1255
- disableBodyScroll?: boolean;
1256
- /** Children */
1257
- children?: React__default.ReactNode;
1223
+ interface TextProps$1 extends HasClassName {
1224
+ /**
1225
+ * Color variant.
1226
+ */
1227
+ color?: ColorWithVariants;
1228
+ /**
1229
+ * Lightened or darkened variant of the selected color.
1230
+ */
1231
+ colorVariant?: ColorVariant;
1232
+ /**
1233
+ * Typography variant.
1234
+ */
1235
+ typography?: Typography;
1236
+ /**
1237
+ * Custom component to render the text.
1238
+ */
1239
+ as: TextElement;
1240
+ /**
1241
+ * Control whether the text should truncate or not.
1242
+ * Setting as `true` will make the text truncate on a single line.
1243
+ * Setting as `{ lines: number }` will make the text truncate on a multiple lines.
1244
+ */
1245
+ truncate?: boolean | {
1246
+ lines: number;
1247
+ };
1248
+ /**
1249
+ * Prevents text to wrap on multiple lines
1250
+ * (automatically activated when single line text truncate is activated).
1251
+ */
1252
+ noWrap?: boolean;
1253
+ /**
1254
+ * WhiteSpace variant
1255
+ * Ignored when `noWrap` is set to true
1256
+ * Ignored when `truncate` is set to true or lines: 1
1257
+ * */
1258
+ whiteSpace?: WhiteSpace;
1259
+ /**
1260
+ * Children
1261
+ */
1262
+ children?: JSXElement;
1263
+ /** list of styles to apply */
1264
+ style?: CSSProperties;
1258
1265
  }
1259
- type DialogSizes = Extract<Size$1, 'tiny' | 'regular' | 'big' | 'huge'>;
1260
- /**
1261
- * Dialog component.
1262
- *
1263
- * @param props Component props.
1264
- * @param ref Component ref.
1265
- * @return React element.
1266
- */
1267
- declare const Dialog: Comp<DialogProps, HTMLDivElement>;
1268
1266
 
1269
1267
  /**
1270
1268
  * Defines the props of the component.
1271
1269
  */
1272
- interface DividerProps$1 extends HasTheme, HasClassName {
1273
- /** reference to the root element */
1270
+ interface ListSectionProps$1 extends HasClassName {
1271
+ /** Section label displayed as the group title. Accepts a plain string or custom JSX content. */
1272
+ label?: string | JSXElement;
1273
+ /** Section icon */
1274
+ icon?: string;
1275
+ /** List items (should be ListItem, ListDivider, etc.). */
1276
+ children: JSXElement;
1277
+ /** Items wrapper forwarded props */
1278
+ itemsWrapperProps?: Record<string, any>;
1279
+ /** ID for the label element (used for aria-labelledby). */
1280
+ id: string;
1281
+ /** ref to the root element */
1274
1282
  ref?: CommonRef;
1283
+ /** Text component to use for rendering the label */
1284
+ Text: (props: TextProps$1 & Record<string, any>) => any;
1275
1285
  }
1276
1286
 
1277
1287
  /**
1278
1288
  * Defines the props of the component.
1279
1289
  */
1280
- interface DividerProps extends GenericProps$1, ReactToJSX<DividerProps$1> {
1290
+ interface ListSectionProps extends GenericProps$1, ReactToJSX<ListSectionProps$1, 'children' | 'id' | 'Text'> {
1291
+ /** Section content */
1292
+ children: ReactNode;
1281
1293
  }
1282
1294
  /**
1283
- * Divider component.
1295
+ * ListSection component.
1284
1296
  *
1285
1297
  * @param props Component props.
1286
1298
  * @param ref Component ref.
1287
1299
  * @return React element.
1288
1300
  */
1289
- declare const Divider: Comp<DividerProps, HTMLHRElement>;
1290
-
1291
- /**
1292
- * Defines the props of the component.
1293
- */
1294
- interface DragHandleProps$1 extends HasTheme, HasClassName {
1295
- /** Reference to the root element */
1296
- ref?: CommonRef;
1297
- }
1301
+ declare const ListSection: Comp<ListSectionProps, HTMLLIElement>;
1298
1302
 
1299
1303
  /**
1300
1304
  * Defines the props of the component.
1301
1305
  */
1302
- interface DragHandleProps extends GenericProps$1, ReactToJSX<DragHandleProps$1> {
1306
+ interface ListSubheaderProps extends GenericProps$1 {
1307
+ /** Content. */
1308
+ children: string | ReactNode;
1303
1309
  }
1304
1310
  /**
1305
- * DragHandle component.
1311
+ * ListSubheader component.
1312
+ * @deprecated ListSubheader produces improper list structure. use ListSection instead.
1306
1313
  *
1307
1314
  * @param props Component props.
1308
1315
  * @param ref Component ref.
1309
1316
  * @return React element.
1310
1317
  */
1311
- declare const DragHandle: Comp<DragHandleProps, HTMLDivElement>;
1318
+ declare const ListSubheader: Comp<ListSubheaderProps, HTMLLIElement>;
1319
+
1320
+ /**
1321
+ * Defines the props for the core ComboboxState template.
1322
+ */
1323
+ interface ComboboxStateProps$1 {
1324
+ /**
1325
+ * Message to display when the list has no visible options.
1326
+ * Can be a plain string or a function receiving the current input value (for dynamic messages).
1327
+ * When omitted, the empty state is not shown.
1328
+ */
1329
+ emptyMessage?: string | ((inputValue: string) => string);
1330
+ /**
1331
+ * Error state title message.
1332
+ * When provided, the error state is active (takes priority over the empty state).
1333
+ * When omitted, the error state is not shown.
1334
+ */
1335
+ errorMessage?: string;
1336
+ /**
1337
+ * Secondary error message (e.g. "Please try again").
1338
+ * Only rendered when `errorMessage` is provided.
1339
+ */
1340
+ errorTryReloadMessage?: string;
1341
+ /**
1342
+ * Message to announce when loading persists (after a 500ms debounce).
1343
+ * When omitted, no loading announcement is made.
1344
+ */
1345
+ loadingMessage?: string;
1346
+ /**
1347
+ * List state
1348
+ */
1349
+ state?: {
1350
+ /**
1351
+ * Whether the list currently has no visible options.
1352
+ * Driven by the framework wrapper via the combobox handle's `emptyChange` event.
1353
+ */
1354
+ isEmpty?: boolean;
1355
+ /**
1356
+ * The current value of the combobox input.
1357
+ * Passed to `emptyMessage` when it is a function.
1358
+ */
1359
+ inputValue?: string;
1360
+ /**
1361
+ * Whether loading is active (immediate, from `loadingChange` event).
1362
+ * Used to suppress false "empty" state while data is loading.
1363
+ */
1364
+ isLoading?: boolean;
1365
+ /**
1366
+ * Whether the combobox popover is open.
1367
+ * Used to gate live region content so screen readers announce messages
1368
+ * when the popover opens (content insertion triggers `aria-live` announcement).
1369
+ */
1370
+ isOpen?: boolean;
1371
+ };
1372
+ }
1373
+
1374
+ /**
1375
+ * Props for Combobox.State component.
1376
+ */
1377
+ interface ComboboxStateProps extends ReactToJSX<ComboboxStateProps$1, 'state'> {
1378
+ /** Additional content rendered after the state message. */
1379
+ children?: ReactNode;
1380
+ }
1381
+
1382
+ /**
1383
+ * Defines the props for the core ComboboxSection template.
1384
+ */
1385
+ interface ComboboxSectionProps$1 extends HasClassName {
1386
+ /** Section label displayed as the group title. Accepts a plain string or custom JSX content. */
1387
+ label?: string | JSXElement;
1388
+ /** Section icon */
1389
+ icon?: string;
1390
+ /** Section content (should be ComboboxOption elements). */
1391
+ children: JSXElement;
1392
+ /** ref to the root element. */
1393
+ ref?: CommonRef;
1394
+ /**
1395
+ * When true, the section renders as a bare `<li hidden>` wrapper, keeping children
1396
+ * mounted (so option registrations stay alive) but invisible to the user and screen readers.
1397
+ * Set automatically by the React/Vue wrapper when all child options are filtered out.
1398
+ */
1399
+ hidden?: boolean;
1400
+ /**
1401
+ * When true, the section is visually rendered (label + content) but hidden from assistive
1402
+ * technology. Used for skeleton-only sections: the visual skeleton provides feedback to
1403
+ * sighted users, while the live region (`ComboboxState`) handles the loading announcement.
1404
+ */
1405
+ 'aria-hidden'?: boolean;
1406
+ }
1407
+ /**
1408
+ * Props that React/Vue wrappers need to re-declare with framework-specific types.
1409
+ * Used by `ReactToJSX<ComboboxSectionProps, ComboboxSectionPropsToOverride>`.
1410
+ */
1411
+ type ComboboxSectionPropsToOverride = 'children';
1412
+
1413
+ /**
1414
+ * Props for Combobox.Section component.
1415
+ */
1416
+ interface ComboboxSectionProps extends GenericProps$1, ReactToJSX<ComboboxSectionProps$1, ComboboxSectionPropsToOverride> {
1417
+ /** Section content (should be Combobox.Option elements). */
1418
+ children: ReactNode;
1419
+ }
1312
1420
 
1313
1421
  /**
1314
1422
  * Different possible placements for the popover.
@@ -1445,164 +1553,939 @@ interface PopoverProps extends GenericProps$1, ReactToJSX<PopoverProps$1, 'ancho
1445
1553
  declare const Popover: Comp<PopoverProps, HTMLDivElement>;
1446
1554
 
1447
1555
  /**
1448
- * Defines the props of the component.
1556
+ * Props for Popover that can be passed to Combobox.Popover.
1557
+ * Excludes isOpen, anchorRef, children, and onClose which are managed internally.
1449
1558
  */
1450
- interface DropdownProps extends GenericProps$1 {
1451
- /**
1452
- * Reference to the element around which the dropdown is placed.
1453
- * @see {@link PopoverProps#anchorRef}
1454
- */
1455
- anchorRef: PopoverProps['anchorRef'];
1456
- /** Dropdown content. */
1457
- children: React.ReactNode;
1458
- /**
1459
- * Whether a click anywhere out of the Dropdown would close it or not.
1460
- * @see {@link PopoverProps#closeOnClickAway}
1461
- */
1462
- closeOnClickAway?: boolean;
1463
- /**
1464
- * Whether to close the Dropdown when clicking in it or not.
1465
- */
1466
- closeOnClick?: boolean;
1467
- /**
1468
- * Whether an escape key press would close the Dropdown or not.
1469
- * @see {@link PopoverProps#closeOnEscape}
1470
- */
1471
- closeOnEscape?: boolean;
1472
- /**
1473
- * Manage dropdown width:
1474
- * - `maxWidth`: dropdown not bigger than anchor
1475
- * - `minWidth` or `true`: dropdown not smaller than anchor
1476
- * - `width`: dropdown equal to the anchor.
1477
- * @see {@link PopoverProps#fitToAnchorWidth}
1478
- */
1479
- fitToAnchorWidth?: PopoverProps['fitToAnchorWidth'];
1480
- /**
1481
- * Whether the dropdown should shrink to fit within the viewport height or not.
1482
- * @see {@link PopoverProps#fitWithinViewportHeight}
1483
- */
1484
- fitWithinViewportHeight?: boolean;
1485
- /**
1486
- * Whether the dropdown should be displayed or not. Useful to control the Dropdown from outside the component.
1487
- * @see {@link PopoverProps#isOpen}
1488
- */
1489
- isOpen: boolean;
1490
- /**
1491
- * Offset applied to the Dropdown position.
1492
- * @see {@link PopoverProps#offset}
1493
- */
1494
- offset?: Offset;
1495
- /**
1496
- * Preferred Dropdown placement against the anchor element.
1497
- * @see {@link PopoverProps#placement}
1498
- */
1499
- placement?: Placement;
1500
- /** Whether the focus should be set on the list when the dropdown is open or not. */
1501
- shouldFocusOnOpen?: boolean;
1502
- /** Whether the dropdown should be rendered into a DOM node that exists outside the DOM hierarchy of the parent component. */
1503
- usePortal?: boolean;
1504
- /** Whether the focus should go back on the anchor when dropdown closes and focus is within. */
1505
- focusAnchorOnClose?: boolean;
1506
- /**
1507
- * Z-axis position.
1508
- * @see {@link PopoverProps#zIndex}
1509
- */
1510
- zIndex?: number;
1511
- /**
1512
- * On close callback.
1513
- * @see {@link PopoverProps#onClose}
1514
- */
1515
- onClose?(): void;
1516
- /** On scroll end callback. */
1517
- onInfiniteScroll?(): void;
1518
- }
1559
+ type ComboboxPopoverProps = Partial<Omit<PopoverProps, 'isOpen' | 'anchorRef' | 'children' | 'onClose'>>;
1519
1560
  /**
1520
- * Dropdown component.
1521
- *
1522
- * @param props Component props.
1523
- * @param ref Component ref.
1524
- * @return React element.
1561
+ * Props for the Combobox.Popover component.
1525
1562
  */
1526
- declare const Dropdown: Comp<DropdownProps, HTMLDivElement>;
1563
+ interface ComboboxPopoverComponentProps extends ComboboxPopoverProps {
1564
+ /** Content (should contain a Combobox.List). */
1565
+ children: ReactNode;
1566
+ }
1527
1567
 
1528
1568
  /**
1529
- * Defines the props of the component.
1569
+ * Defines the props for the core ComboboxOptionSkeleton template.
1530
1570
  */
1531
- interface ExpansionPanelProps extends GenericProps$1, HasCloseMode$1, HasTheme$1 {
1532
- /** Whether the expansion panel has a background. */
1533
- hasBackground?: boolean;
1534
- /** Whether the header has a divider. */
1535
- hasHeaderDivider?: boolean;
1536
- /** Whether the component is open or not. */
1537
- isOpen?: boolean;
1538
- /** Label text (overwritten if a `<header>` is provided in the children). */
1539
- label?: string;
1540
- /** On open callback. */
1541
- onOpen?: (event: React__default.MouseEvent) => void;
1542
- /** On close callback. */
1543
- onClose?: (event: React__default.MouseEvent) => void;
1544
- /** Props to pass to the toggle button (minus those already set by the ExpansionPanel props). */
1545
- toggleButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color'>;
1546
- /** On toggle open or close callback. */
1547
- onToggleOpen?(shouldOpen: boolean, event: React__default.MouseEvent): void;
1548
- /** Children */
1549
- children?: React__default.ReactNode;
1571
+ interface ComboboxOptionSkeletonProps$1 extends HasClassName {
1572
+ /** Content rendered before the skeleton text (e.g. SkeletonCircle for avatar placeholders). */
1573
+ before?: JSXElement;
1574
+ /** Content rendered after the skeleton text. */
1575
+ after?: JSXElement;
1576
+ /** Show a secondary skeleton line (mirrors ComboboxOption's `description` prop). */
1577
+ hasDescription?: boolean;
1578
+ /** Override the default SkeletonTypography content entirely. */
1579
+ children?: JSXElement;
1580
+ /** ref to the root <li> element. */
1581
+ ref?: CommonRef;
1550
1582
  }
1551
1583
  /**
1552
- * ExpansionPanel component.
1553
- *
1554
- * @param props Component props.
1555
- * @param ref Component ref.
1556
- * @return React element.
1584
+ * Props that React/Vue wrappers need to re-declare with framework-specific types.
1585
+ * Used by `ReactToJSX<ComboboxOptionSkeletonProps, ComboboxOptionSkeletonPropsToOverride>`.
1557
1586
  */
1558
- declare const ExpansionPanel: Comp<ExpansionPanelProps, HTMLDivElement>;
1587
+ type ComboboxOptionSkeletonPropsToOverride = 'before' | 'after' | 'children';
1559
1588
 
1560
1589
  /**
1561
- * Defines the props of the component.
1590
+ * Props for Combobox.OptionSkeleton component.
1562
1591
  */
1563
- interface TextProps$1 extends HasClassName {
1592
+ interface ComboboxOptionSkeletonProps extends GenericProps$1, ReactToJSX<ComboboxOptionSkeletonProps$1, ComboboxOptionSkeletonPropsToOverride> {
1593
+ /** Content rendered before the skeleton text (e.g. SkeletonCircle for avatar placeholders). */
1594
+ before?: ReactNode;
1595
+ /** Content rendered after the skeleton text. */
1596
+ after?: ReactNode;
1597
+ /** Override the default SkeletonTypography content entirely. */
1598
+ children?: ReactNode;
1564
1599
  /**
1565
- * Color variant.
1600
+ * Number of skeleton `<li>` elements to render.
1601
+ * Each is an independent element with `:nth-child` width cycling applied by SCSS.
1602
+ * @default 1
1566
1603
  */
1567
- color?: ColorWithVariants;
1568
- /**
1569
- * Lightened or darkened variant of the selected color.
1604
+ count?: number;
1605
+ }
1606
+
1607
+ /**
1608
+ * Defines the props for the core ComboboxOptionMoreInfo template.
1609
+ */
1610
+ interface ComboboxOptionMoreInfoProps$1 extends HasClassName {
1611
+ /** Popover content (additional details about the option). */
1612
+ children?: JSXElement;
1613
+ /** Whether the popover is open. */
1614
+ isOpen?: boolean;
1615
+ /** ID for the popover element (used for aria-describedby on the parent option). */
1616
+ popoverId: string;
1617
+ /** Ref for the anchor element (icon button). */
1618
+ ref?: CommonRef;
1619
+ /** Mouse enter callback. */
1620
+ onMouseEnter?(): void;
1621
+ /** Mouse leave callback. */
1622
+ onMouseLeave?(): void;
1623
+ /** Props forwarded to the IconButton. */
1624
+ buttonProps?: Record<string, any>;
1625
+ }
1626
+ /**
1627
+ * Props that React/Vue wrappers need to re-declare with framework-specific types.
1628
+ */
1629
+ type ComboboxOptionMoreInfoPropsToOverride = 'children' | 'popoverId' | 'isOpen';
1630
+
1631
+ /**
1632
+ * Props for Combobox.OptionMoreInfo component.
1633
+ */
1634
+ interface ComboboxOptionMoreInfoProps extends ReactToJSX<ComboboxOptionMoreInfoProps$1, ComboboxOptionMoreInfoPropsToOverride> {
1635
+ /** Content of the popover (additional details about the option). */
1636
+ children?: ReactNode;
1637
+ /** Callback when the popover opens or closes. */
1638
+ onToggle?(isOpen: boolean): void;
1639
+ /** Props forwarded to the IconButton. */
1640
+ buttonProps?: Partial<IconButtonProps>;
1641
+ }
1642
+
1643
+ /**
1644
+ * Defines the props for the core ComboboxOption template.
1645
+ */
1646
+ interface ComboboxOptionProps$1 extends HasClassName {
1647
+ /** A component to be rendered before the content (e.g. an icon or avatar). */
1648
+ before?: JSXElement;
1649
+ /** A component to be rendered after the content (e.g. ComboboxOptionAction elements). */
1650
+ after?: JSXElement;
1651
+ /** Content (option label). */
1652
+ children?: JSXElement;
1653
+ /** Props forwarded to a Tooltip wrapping the role="option" / role="gridcell" element. */
1654
+ tooltipProps?: Record<string, any>;
1655
+ /** Helper description. */
1656
+ description?: string;
1657
+ /** Unique ID for the option element. */
1658
+ id?: string;
1659
+ /** Unique ID for the description element (for aria-describedby). */
1660
+ descriptionId?: string;
1661
+ /** Whether the option is disabled. */
1662
+ isDisabled?: boolean;
1663
+ /** Whether the option is selected. */
1664
+ isSelected?: boolean;
1665
+ /** Whether the parent list is in grid mode. */
1666
+ isGrid?: boolean;
1667
+ /**
1668
+ * Whether the option is hidden (filtered out by auto-filter).
1669
+ * When true, renders a bare `<li hidden>` with only the children text — no ARIA roles,
1670
+ * no classes, no visual structure. This keeps the element in the DOM so its textContent
1671
+ * can be read for future filter evaluations, while naturally excluding it from
1672
+ * `[role="option"]` queries (focus navigation) and `.lumx-combobox-option` CSS rules
1673
+ * (section/popover auto-hide).
1674
+ */
1675
+ hidden?: boolean;
1676
+ /** On click callback. */
1677
+ handleClick?(): void;
1678
+ /** Extra props forwarded to the inner action element (e.g. link props when as="a"). */
1679
+ actionProps?: Record<string, any>;
1680
+ /** ref to the root <li> element. */
1681
+ ref?: CommonRef;
1682
+ /** The value for this option (used for selection). */
1683
+ value?: string;
1684
+ }
1685
+ /**
1686
+ * Props that React/Vue wrappers need to re-declare with framework-specific types.
1687
+ * Used by `ReactToJSX<ComboboxOptionProps, ComboboxOptionPropsToOverride>`.
1688
+ */
1689
+ type ComboboxOptionPropsToOverride = 'before' | 'after' | 'children' | 'tooltipProps' | 'actionProps';
1690
+
1691
+ declare const ARIA_LINK_MODES: readonly ["aria-describedby", "aria-labelledby"];
1692
+
1693
+ /** Position of the tooltip relative to the anchor element. */
1694
+ type TooltipPlacement = 'top' | 'right' | 'bottom' | 'left';
1695
+ /**
1696
+ * Framework-agnostic tooltip props (shared between React and Vue wrappers).
1697
+ */
1698
+ interface TooltipProps$1 extends HasCloseMode {
1699
+ /** Delay (in ms) before closing the tooltip. */
1700
+ delay?: number;
1701
+ /** Whether the tooltip is displayed even without the mouse hovering the anchor. */
1702
+ forceOpen?: boolean;
1703
+ /** Label text. */
1704
+ label?: string | null | false;
1705
+ /** Placement of the tooltip relative to the anchor. */
1706
+ placement?: TooltipPlacement;
1707
+ /** Choose how the tooltip text should link to the anchor */
1708
+ ariaLinkMode?: (typeof ARIA_LINK_MODES)[number];
1709
+ /** Z-index for the tooltip */
1710
+ zIndex?: number;
1711
+ }
1712
+
1713
+ /**
1714
+ * Defines the props of the component.
1715
+ */
1716
+ interface TooltipProps extends GenericProps$1, TooltipProps$1 {
1717
+ /** Anchor (element on which we activate the tooltip). */
1718
+ children: ReactNode;
1719
+ }
1720
+ /**
1721
+ * Tooltip component.
1722
+ *
1723
+ * @param props Component props.
1724
+ * @param ref Component ref.
1725
+ * @return React element.
1726
+ */
1727
+ declare const Tooltip: Comp<TooltipProps, HTMLDivElement>;
1728
+
1729
+ /**
1730
+ * Props forwarded to the inner action element (button or link).
1731
+ */
1732
+ type ComboboxOptionActionProps$1<E extends ElementType$1 = 'button'> = HasPolymorphicAs$1<E> & HasRequiredLinkHref$1<E>;
1733
+ /**
1734
+ * Props for Combobox.Option component.
1735
+ */
1736
+ interface ComboboxOptionProps extends GenericProps$1, ReactToJSX<ComboboxOptionProps$1, ComboboxOptionPropsToOverride> {
1737
+ /** Display label for the option. */
1738
+ children?: ReactNode;
1739
+ /** On option clicked (or activated with keyboard) */
1740
+ onClick?(): void;
1741
+ /** Content rendered before the option label (e.g. an icon or avatar). */
1742
+ before?: ReactNode;
1743
+ /**
1744
+ * Content rendered after the option label.
1745
+ * In grid mode (`type="grid"` on the parent Combobox.List), use `Combobox.OptionAction` elements here
1746
+ * to add secondary action buttons. Each action becomes an independent `role="gridcell"`.
1747
+ */
1748
+ after?: ReactNode;
1749
+ /** Props forwarded to a Tooltip wrapping the role="option" / role="gridcell" trigger element. */
1750
+ tooltipProps?: Partial<TooltipProps>;
1751
+ /** Props forwarded to the inner action element (e.g. `{ as: 'a', href: '/foo' }`). */
1752
+ actionProps?: ComboboxOptionActionProps$1<any>;
1753
+ }
1754
+
1755
+ /**
1756
+ * Popup type for the combobox listbox.
1757
+ * - `'listbox'`: Standard listbox with `role="listbox"` and `role="option"` items.
1758
+ * - `'grid'`: Grid mode with `role="grid"` and `role="gridcell"` items, enabling 2D keyboard navigation.
1759
+ */
1760
+ type ComboboxListType = 'listbox' | 'grid';
1761
+
1762
+ /**
1763
+ * Props for Combobox.List component.
1764
+ * Note: role, id are set internally and cannot be overridden.
1765
+ */
1766
+ interface ComboboxListProps extends ListProps {
1767
+ /** Accessible label for the listbox (required for accessibility). */
1768
+ 'aria-label': string;
1769
+ /**
1770
+ * The popup type. Set to "grid" when options have action buttons (Combobox.OptionAction).
1771
+ * Enables 2D keyboard navigation and switches ARIA roles from listbox/option to grid/gridcell.
1772
+ * @default 'listbox'
1773
+ */
1774
+ type?: ComboboxListType;
1775
+ }
1776
+
1777
+ interface InputLabelProps$1 extends HasClassName, HasTheme {
1778
+ /** Typography variant. */
1779
+ typography?: Typography;
1780
+ /** Label content. */
1781
+ children: JSXElement;
1782
+ /** Native htmlFor property. */
1783
+ htmlFor: string;
1784
+ /** Whether the component is required or not. */
1785
+ isRequired?: boolean;
1786
+ /** ref to the root element */
1787
+ ref?: CommonRef;
1788
+ }
1789
+
1790
+ /**
1791
+ * Defines the props of the component.
1792
+ */
1793
+ interface TextFieldProps$1 extends HasClassName, HasTheme, HasAriaDisabled, HasDisabled {
1794
+ /** Chip Group to be rendered before the main text input. */
1795
+ chips?: JSXElement;
1796
+ /** Props to pass to the clear button (minus those already set by the TextField props). If not specified, the button won't be displayed. */
1797
+ clearButtonProps?: GenericProps;
1798
+ /** Error message. */
1799
+ error?: string | JSXElement;
1800
+ /** Whether we force the focus style or not. */
1801
+ forceFocusStyle?: boolean;
1802
+ /** Whether the text field is displayed with error style or not. */
1803
+ hasError?: boolean;
1804
+ /** Additional element to put at the end of the text field. */
1805
+ afterElement?: JSXElement;
1806
+ /** Helper text. */
1807
+ helper?: string | JSXElement;
1808
+ /** Icon (SVG path). */
1809
+ icon?: string;
1810
+ /** Native input id property (generated if not provided to link the label element). */
1811
+ id?: string;
1812
+ /** Generated helper id for accessibility attributes. */
1813
+ helperId?: string;
1814
+ /** Generated error id for accessibility attributes. */
1815
+ errorId?: string;
1816
+ /** Whether the component is required or not. */
1817
+ isRequired?: boolean;
1818
+ /** Whether the text field is displayed with valid style or not. */
1819
+ isValid?: boolean;
1820
+ /** Label text. */
1821
+ label?: string;
1822
+ /** Additional label props. */
1823
+ labelProps?: InputLabelProps$1;
1824
+ /** Max string length the input accepts (constrains the input and displays a character counter). */
1825
+ maxLength?: number;
1826
+ /** Whether the text field is a textarea or an input. */
1827
+ multiline?: boolean;
1828
+ /** Placeholder text. */
1829
+ placeholder?: string;
1830
+ /** Reference to the wrapper. */
1831
+ textFieldRef?: CommonRef;
1832
+ /** Value. */
1833
+ value?: string;
1834
+ /** Whether any part is disabled. */
1835
+ isAnyDisabled?: boolean;
1836
+ /** The input element (input or textarea). */
1837
+ input: JSXElement;
1838
+ /** Whether the input is focused. */
1839
+ isFocus?: boolean;
1840
+ /** IconButton component. */
1841
+ IconButton: (props: Record<string, any>) => any;
1842
+ /** Ref to the component root. */
1843
+ ref?: CommonRef;
1844
+ }
1845
+ type TextFieldPropsToOverride = 'input' | 'IconButton' | 'labelProps' | 'textFieldRef' | 'clearButtonProps' | 'helperId' | 'errorId' | 'isAnyDisabled' | 'isFocus';
1846
+
1847
+ /**
1848
+ * Defines the props of the component.
1849
+ */
1850
+ interface TextFieldProps extends GenericProps$1, ReactToJSX<TextFieldProps$1, TextFieldPropsToOverride> {
1851
+ /** Props to pass to the clear button (minus those already set by the TextField props). If not specified, the button won't be displayed. */
1852
+ clearButtonProps?: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;
1853
+ /** Reference to the <input> or <textarea> element. */
1854
+ inputRef?: Ref<HTMLInputElement | HTMLTextAreaElement>;
1855
+ /** Additional label props. */
1856
+ labelProps?: InputLabelProps;
1857
+ /** Minimum number of rows displayed in multiline mode (requires `multiline` to be enabled). */
1858
+ minimumRows?: number;
1859
+ /** Native input name property. */
1860
+ name?: string;
1861
+ /** Reference to the wrapper. */
1862
+ textFieldRef?: Ref<HTMLDivElement>;
1863
+ /** Native input type (only when `multiline` is disabled). */
1864
+ type?: React.ComponentProps<'input'>['type'];
1865
+ /** On blur callback. */
1866
+ onBlur?(event: React.FocusEvent): void;
1867
+ /** On change callback. */
1868
+ onChange(value: string, name?: string, event?: SyntheticEvent): void;
1869
+ /** On clear callback. */
1870
+ onClear?(event?: SyntheticEvent): void;
1871
+ /** On focus callback. */
1872
+ onFocus?(event: React.FocusEvent): void;
1873
+ }
1874
+ /**
1875
+ * TextField component.
1876
+ *
1877
+ * @param props Component props.
1878
+ * @param ref Component ref.
1879
+ * @return React element.
1880
+ */
1881
+ declare const TextField: Comp<TextFieldProps, HTMLDivElement>;
1882
+
1883
+ /**
1884
+ * Defines the props of the component.
1885
+ */
1886
+ interface RawInputTextProps$1 extends HasTheme, HasClassName {
1887
+ value?: string;
1888
+ type?: HTMLInputTypeAttribute;
1889
+ name?: string | undefined;
1890
+ ref?: CommonRef;
1891
+ handleChange?: (value: string, name?: string, event?: any) => void;
1892
+ }
1893
+
1894
+ type NativeInputProps = Omit<ComponentProps<'input'>, 'value' | 'onChange'>;
1895
+ /**
1896
+ * Defines the props of the component.
1897
+ */
1898
+ interface RawInputTextProps extends NativeInputProps, ReactToJSX<RawInputTextProps$1> {
1899
+ onChange?: (value: string, name?: string, event?: SyntheticEvent) => void;
1900
+ }
1901
+
1902
+ /**
1903
+ * Raw input text component
1904
+ * (input element without any decoration)
1905
+ */
1906
+ declare const RawInputText: Comp<RawInputTextProps, HTMLInputElement>;
1907
+
1908
+ /**
1909
+ * Defines the props of the component.
1910
+ */
1911
+ interface RawInputTextareaProps$1 extends HasTheme, HasClassName {
1912
+ value?: string;
1913
+ rows?: number;
1914
+ name?: string | undefined;
1915
+ ref?: CommonRef;
1916
+ handleChange?: (value: string, name?: string, event?: any) => void;
1917
+ }
1918
+
1919
+ type NativeTextareaProps = Omit<ComponentProps<'textarea'>, 'value' | 'onChange'>;
1920
+ /**
1921
+ * Defines the props of the component.
1922
+ */
1923
+ interface RawInputTextareaProps extends NativeTextareaProps, ReactToJSX<RawInputTextareaProps$1, 'rows'> {
1924
+ minimumRows?: number;
1925
+ onChange?: (value: string, name?: string, event?: SyntheticEvent) => void;
1926
+ }
1927
+ /**
1928
+ * Raw input text area component
1929
+ * (textarea element without any decoration)
1930
+ */
1931
+ declare const RawInputTextarea: Comp<Omit<RawInputTextareaProps, "type">, HTMLTextAreaElement>;
1932
+
1933
+ /**
1934
+ * Props for Combobox.Input component.
1935
+ * Note: role, aria-autocomplete, aria-controls, aria-expanded are set internally and cannot be overridden.
1936
+ */
1937
+ interface ComboboxInputProps extends TextFieldProps {
1938
+ /** Reference to the input element. */
1939
+ inputRef?: Ref<HTMLInputElement>;
1940
+ /**
1941
+ * Props for the toggle button.
1942
+ * When provided, a chevron button will be rendered in the text field's afterElement
1943
+ * to toggle the listbox visibility.
1944
+ */
1945
+ toggleButtonProps?: Pick<IconButtonProps, 'label'> & Partial<Omit<IconButtonProps, 'label'>>;
1946
+ /** Called when an option is selected. */
1947
+ onSelect?: (option: {
1948
+ value: string;
1949
+ }) => void;
1950
+ /**
1951
+ * When true (default), the combobox automatically filters options as the user types.
1952
+ * Each `Combobox.Option` registers itself and hides when it doesn't match the input value.
1953
+ *
1954
+ * Set to false when you handle filtering yourself (e.g. async search, consumer-side
1955
+ * pre-filtering). Options will not be auto-filtered.
1956
+ */
1957
+ autoFilter?: boolean;
1958
+ }
1959
+
1960
+ /**
1961
+ * Label display mode for the ComboboxButton.
1962
+ * - `'show-selection'`: Show the selected value if available, otherwise the label.
1963
+ * - `'show-label'`: Always show the label.
1964
+ * - `'show-tooltip'`: Show nothing in the button; label appears only in tooltip.
1965
+ */
1966
+ type ComboboxButtonLabelDisplayMode = 'show-selection' | 'show-label' | 'show-tooltip';
1967
+ /**
1968
+ * Defines the props for the core ComboboxButton template.
1969
+ */
1970
+ interface ComboboxButtonProps$1 extends HasClassName {
1971
+ /** The label for the button (used for ARIA and tooltip). */
1972
+ label: string;
1973
+ /** The currently selected value to display. */
1974
+ value?: string;
1975
+ /** Controls how the label/value is displayed. */
1976
+ labelDisplayMode?: ComboboxButtonLabelDisplayMode;
1977
+ /** The ID of the listbox element (for aria-controls). */
1978
+ listboxId?: string;
1979
+ /** Whether the combobox is open. */
1980
+ isOpen?: boolean;
1981
+ /** ref to the root button element. */
1982
+ ref?: CommonRef;
1983
+ }
1984
+
1985
+ /**
1986
+ * Defines the props of the component.
1987
+ */
1988
+ interface ComboboxProviderProps {
1989
+ /** Combobox content. */
1990
+ children?: ReactNode;
1991
+ }
1992
+ /**
1993
+ * Combobox.Provider component.
1994
+ *
1995
+ * Provides shared context to sub-components. The vanilla JS combobox handle is
1996
+ * created by the trigger sub-component (Combobox.Input or Combobox.Button) on mount.
1997
+ *
1998
+ * @param props Component props.
1999
+ * @return React element.
2000
+ */
2001
+ declare function ComboboxProvider(props: ComboboxProviderProps): react_jsx_runtime.JSX.Element;
2002
+ declare namespace ComboboxProvider {
2003
+ var displayName: string;
2004
+ }
2005
+
2006
+ /** Map of combobox event names to their payload types. */
2007
+ interface ComboboxEventMap {
2008
+ /** Fired when the combobox open state changes. Payload: whether the combobox is open. */
2009
+ open: boolean;
2010
+ /** Fired when the active descendant changes (visual focus). Payload: the option id or null. */
2011
+ activeDescendantChange: string | null;
2012
+ /**
2013
+ * Fired when the visible option count transitions between empty and non-empty.
2014
+ * Payload: whether the list is empty plus the current input value.
2015
+ */
2016
+ emptyChange: {
2017
+ isEmpty?: boolean;
2018
+ inputValue?: string;
2019
+ } | undefined;
2020
+ /**
2021
+ * Fired immediately when the aggregate loading state changes (skeleton count transitions
2022
+ * between 0 and >0). Used for empty suppression in ComboboxState and for aria-busy on the listbox.
2023
+ */
2024
+ loadingChange: boolean;
2025
+ /**
2026
+ * Fired after a 500ms debounce when loading persists, or immediately when loading ends.
2027
+ * Used to control the loading message text in the live region (ComboboxState).
2028
+ */
2029
+ loadingAnnouncement: boolean;
2030
+ }
2031
+
2032
+ /**
2033
+ * Hook to subscribe to a combobox event via the handle's subscriber system.
2034
+ * Re-subscribes when the handle changes (e.g. trigger mount/unmount).
2035
+ */
2036
+ declare function useComboboxEvent<K extends keyof ComboboxEventMap>(event: K, initialValue: ComboboxEventMap[K]): ComboboxEventMap[K];
2037
+
2038
+ /**
2039
+ * Props for Combobox.Button component.
2040
+ *
2041
+ * Polymorphic component — use `as` to render the trigger as a different element or component
2042
+ * (e.g., `as="a"`, `as={RouterLink}`). Defaults to the LumX `Button` component.
2043
+ */
2044
+ type ComboboxButtonProps<E extends ElementType$1 = typeof Button> = Omit<HasPolymorphicAs$1<E>, 'children' | 'role' | 'aria-controls' | 'aria-haspopup' | 'aria-expanded' | 'aria-activedescendant'> & HasRequiredLinkHref$1<E> & ReactToJSX<ComboboxButtonProps$1> & {
2045
+ /** Called when an option is selected. */
2046
+ onSelect?: (option: {
2047
+ value: string;
2048
+ }) => void;
2049
+ };
2050
+
2051
+ /**
2052
+ * Combobox.OptionAction props.
2053
+ *
2054
+ * Polymorphic component — use `as` to render as a different element or component
2055
+ * (e.g., `as={IconButton}`, `as={Button}`). Defaults to `'button'`.
2056
+ */
2057
+ type ComboboxOptionActionProps<E extends ElementType$1 = 'button'> = HasPolymorphicAs$1<E> & HasClassName$1 & HasRequiredLinkHref$1<E> & {
2058
+ /** Content of the action (icon, label, etc.). Optional when using a polymorphic `as` that provides its own content (e.g., IconButton). */
2059
+ children?: ReactNode;
2060
+ /** Whether the action is disabled. */
2061
+ isDisabled?: boolean;
2062
+ /** On click callback. */
2063
+ onClick?(evt: SyntheticEvent): void;
2064
+ };
2065
+
2066
+ /**
2067
+ * Combobox compound component namespace.
2068
+ */
2069
+ declare const Combobox: {
2070
+ /** Provides shared combobox context (handle, listbox ID, anchor ref) to all sub-components. */
2071
+ Provider: typeof ComboboxProvider;
2072
+ /** Button trigger for select-only combobox mode with keyboard navigation and typeahead. */
2073
+ Button: (<E extends React$1.ElementType = Comp<ButtonProps, HTMLButtonElement | HTMLAnchorElement>>(props: Omit<HasPolymorphicAs$1<E>, "children" | "aria-expanded" | "aria-haspopup" | "role" | "aria-controls" | "aria-activedescendant"> & _lumx_core_js_types.HasRequiredLinkHref<E> & ReactToJSX<ComboboxButtonProps$1> & {
2074
+ onSelect?: (option: {
2075
+ value: string;
2076
+ }) => void;
2077
+ } & React$1.ComponentProps<E> & {
2078
+ ref?: ComponentRef<E> | undefined;
2079
+ }) => React.JSX.Element) & {
2080
+ displayName: string;
2081
+ className: "lumx-combobox-button";
2082
+ };
2083
+ /** Text input trigger for autocomplete combobox mode with optional toggle button and filtering. */
2084
+ Input: Comp<ComboboxInputProps, HTMLDivElement>;
2085
+ /** Listbox container that registers with the combobox handle and tracks loading state. */
2086
+ List: Comp<ComboboxListProps, HTMLUListElement>;
2087
+ /** Selectable option item with filtering and keyboard navigation support. */
2088
+ Option: Comp<ComboboxOptionProps, HTMLLIElement>;
2089
+ /** Secondary action button within a grid-mode option row, rendered as an independent gridcell. */
2090
+ OptionAction: (<E extends React$1.ElementType = "button">(props: React$1.PropsWithoutRef<React$1.ComponentProps<E>> & {
2091
+ as?: E | undefined;
2092
+ } & _lumx_core_js_types.HasClassName & _lumx_core_js_types.HasRequiredLinkHref<E> & {
2093
+ children?: React$1.ReactNode;
2094
+ isDisabled?: boolean;
2095
+ onClick?(evt: React$1.SyntheticEvent): void;
2096
+ } & React$1.ComponentProps<E> & {
2097
+ ref?: ComponentRef<E> | undefined;
2098
+ }) => React.JSX.Element) & {
2099
+ displayName: string;
2100
+ className: "lumx-combobox-option-action";
2101
+ };
2102
+ /** Info button on an option that shows a popover on hover or keyboard highlight. */
2103
+ OptionMoreInfo: {
2104
+ (props: ComboboxOptionMoreInfoProps): react_jsx_runtime.JSX.Element;
2105
+ displayName: string;
2106
+ className: "lumx-combobox-option-more-info";
2107
+ };
2108
+ /** Loading placeholder skeleton(s) that auto-register loading state with the combobox handle. */
2109
+ OptionSkeleton: {
2110
+ (props: ComboboxOptionSkeletonProps): react_jsx_runtime.JSX.Element[];
2111
+ displayName: string;
2112
+ className: "lumx-combobox-option-skeleton";
2113
+ };
2114
+ /** Floating popover container that auto-binds to the combobox anchor and open/close state. */
2115
+ Popover: {
2116
+ (props: ComboboxPopoverComponentProps): react_jsx_runtime.JSX.Element;
2117
+ displayName: string;
2118
+ className: "lumx-combobox-popover";
2119
+ };
2120
+ /** Labelled group of options that auto-hides when all its child options are filtered out. */
2121
+ Section: Comp<ComboboxSectionProps, HTMLLIElement>;
2122
+ /** Displays empty, error, and loading state messages for the combobox list. */
2123
+ State: {
2124
+ (props: ComboboxStateProps): react_jsx_runtime.JSX.Element;
2125
+ displayName: string;
2126
+ className: "lumx-combobox-state";
2127
+ };
2128
+ /** Visual separator between option groups (alias for ListDivider). Purely decorative — invisible to screen readers. */
2129
+ Divider: Comp<ListDividerProps, HTMLLIElement>;
2130
+ /** Hook to subscribe to combobox events. Must be used within a Combobox.Provider. */
2131
+ useComboboxEvent: typeof useComboboxEvent;
2132
+ };
2133
+
2134
+ /**
2135
+ * Comment block variants.
2136
+ */
2137
+ declare const CommentBlockVariant: {
2138
+ readonly indented: "indented";
2139
+ readonly linear: "linear";
2140
+ };
2141
+ type CommentBlockVariant = ValueOf$1<typeof CommentBlockVariant>;
2142
+ /**
2143
+ * Defines the props of the component.
2144
+ */
2145
+ interface CommentBlockProps extends GenericProps$1, HasTheme$1 {
2146
+ /** Action toolbar content. */
2147
+ actions?: ReactNode;
2148
+ /** Props to pass to the avatar. */
2149
+ avatarProps: AvatarProps;
2150
+ /** Comment block replies. */
2151
+ children?: ReactNode;
2152
+ /** Comment date with the minimal timestamp information (xx minutes, x hours, yesterday, 6 days, Month Day, Month Day Year)*/
2153
+ date?: string;
2154
+ /** Comment date with the full timestamp information (day, month, year, time) */
2155
+ fullDate?: string;
2156
+ /** Whether the component has actions to display or not. */
2157
+ hasActions?: boolean;
2158
+ /** Action toolbar header content. */
2159
+ headerActions?: ReactNode;
2160
+ /** Whether the component is open or not. */
2161
+ isOpen?: boolean;
2162
+ /** Whether the comment is relevant or not. */
2163
+ isRelevant?: boolean;
2164
+ /** Comment author name. */
2165
+ name?: React.ReactNode;
2166
+ /**
2167
+ * On click callback.
2168
+ * @deprecated Use avatarProps instead and/or inject a clickable component in `name`
2169
+ */
2170
+ onClick?(): void;
2171
+ /**
2172
+ * On mouse enter callback.
2173
+ * @deprecated Use avatarProps instead and/or inject a clickable component in `name`
2174
+ */
2175
+ onMouseEnter?(): void;
2176
+ /**
2177
+ * On mouse leave callback.
2178
+ * @deprecated Use avatarProps instead and/or inject a clickable component in `name`
2179
+ */
2180
+ onMouseLeave?(): void;
2181
+ /** Comment content. */
2182
+ text: ReactNode | string;
2183
+ /** Comment variant. */
2184
+ variant?: CommentBlockVariant;
2185
+ }
2186
+ /**
2187
+ * CommentBlock component.
2188
+ *
2189
+ * @param props Component props.
2190
+ * @param ref Component ref.
2191
+ * @return React element.
2192
+ */
2193
+ declare const CommentBlock: Comp<CommentBlockProps, HTMLDivElement>;
2194
+
2195
+ /**
2196
+ * Defines the props of the component.
2197
+ */
2198
+ interface DatePickerProps extends GenericProps$1 {
2199
+ /** Default month. */
2200
+ defaultMonth?: Date;
2201
+ /** Locale (language or region) to use. */
2202
+ locale?: string;
2203
+ /** Date after which dates can't be selected. */
2204
+ maxDate?: Date;
2205
+ /** Date before which dates can't be selected. */
2206
+ minDate?: Date;
2207
+ /** Props to pass to the next month button (minus those already set by the DatePickerControlled props). */
2208
+ nextButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;
2209
+ /** Props to pass to the previous month button (minus those already set by the DatePickerControlled props). */
2210
+ previousButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;
2211
+ /** Reference to the <button> element corresponding to the current date or the selected date. */
2212
+ todayOrSelectedDateRef?: Ref<HTMLButtonElement>;
2213
+ /** Currently selected date. */
2214
+ value: Date | undefined;
2215
+ /** On change callback. */
2216
+ onChange(value: Date | undefined): void;
2217
+ }
2218
+
2219
+ /**
2220
+ * DatePicker component.
2221
+ *
2222
+ * @param props Component props.
2223
+ * @param ref Component ref.
2224
+ * @return React element.
2225
+ */
2226
+ declare const DatePicker: Comp<DatePickerProps, HTMLDivElement>;
2227
+
2228
+ /**
2229
+ * Defines the props of the component.
2230
+ */
2231
+ interface DatePickerControlledProps extends DatePickerProps {
2232
+ /** Selected month to display. */
2233
+ selectedMonth: Date;
2234
+ /** On previous month change callback. */
2235
+ onPrevMonthChange(): void;
2236
+ /** On next month change callback. */
2237
+ onNextMonthChange(): void;
2238
+ /** On month/year change callback. */
2239
+ onMonthChange?: (newMonth: Date) => void;
2240
+ }
2241
+ /**
2242
+ * DatePickerControlled component.
2243
+ *
2244
+ * @param props Component props.
2245
+ * @param ref Component ref.
2246
+ * @return React element.
2247
+ */
2248
+ declare const DatePickerControlled: Comp<DatePickerControlledProps, HTMLDivElement>;
2249
+
2250
+ /**
2251
+ * Defines the props of the component.
2252
+ */
2253
+ interface DatePickerFieldProps extends Omit<TextFieldProps, 'value' | 'onChange'>, GenericProps$1 {
2254
+ /** Default month. */
2255
+ defaultMonth?: Date;
2256
+ /** Locale (language or region) to use. */
2257
+ locale?: string;
2258
+ /** Date after which dates can't be selected. */
2259
+ maxDate?: Date;
2260
+ /** Date before which dates can't be selected. */
2261
+ minDate?: Date;
2262
+ /** Props to pass to the next month button (minus those already set by the DatePickerControlled props). */
2263
+ nextButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;
2264
+ /** Props to pass to the previous month button (minus those already set by the DatePickerControlled props). */
2265
+ previousButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;
2266
+ /** Currently selected date. */
2267
+ value: Date | undefined;
2268
+ /** On change callback. */
2269
+ onChange(value: Date | undefined, name?: string, event?: SyntheticEvent): void;
2270
+ }
2271
+ /**
2272
+ * DatePickerField component.
2273
+ *
2274
+ * @param props Component props.
2275
+ * @param ref Component ref.
2276
+ * @return React element.
2277
+ */
2278
+ declare const DatePickerField: Comp<DatePickerFieldProps, HTMLDivElement>;
2279
+
2280
+ /**
2281
+ * Defines the props of the component.
2282
+ */
2283
+ interface DialogProps extends GenericProps$1, HasCloseMode$1 {
2284
+ /** Footer content. */
2285
+ footer?: ReactNode;
2286
+ /** Whether the divider between the dialog content and the footer is always displayed (instead of showing it on scroll). */
2287
+ forceFooterDivider?: boolean;
2288
+ /** Header content. */
2289
+ header?: ReactNode;
2290
+ /** Whether the divider between the dialog content and the footer is always displayed (instead of showing it on scroll). */
2291
+ forceHeaderDivider?: boolean;
2292
+ /** Whether the indefinite progress indicator over the dialog content is displayed or not. */
2293
+ isLoading?: boolean;
2294
+ /** Whether the component is open or not. */
2295
+ isOpen?: boolean;
2296
+ /** Reference to the parent element that triggered modal opening (will get back focus on close). */
2297
+ parentElement?: RefObject<HTMLElement>;
2298
+ /** Reference to the dialog content element. */
2299
+ contentRef?: Ref<HTMLDivElement>;
2300
+ /** Reference to the of the element that should get the focus when the dialogs opens. By default, the first child will take focus. */
2301
+ focusElement?: RefObject<HTMLElement>;
2302
+ /** Whether to keep the dialog open on clickaway or escape press. */
2303
+ preventAutoClose?: boolean;
2304
+ /** Whether to keep the dialog open on escape press. */
2305
+ preventCloseOnEscape?: boolean;
2306
+ /** Whether to keep the dialog open on clickaway. */
2307
+ preventCloseOnClick?: boolean;
2308
+ /** Size variant. */
2309
+ size?: DialogSizes;
2310
+ /** Z-axis position. */
2311
+ zIndex?: number;
2312
+ /** Z-axis position. */
2313
+ dialogProps?: GenericProps$1;
2314
+ /** On close callback. */
2315
+ onClose?(): void;
2316
+ /** Callback called when the open animation starts and the close animation finishes. */
2317
+ onVisibilityChange?(isVisible: boolean): void;
2318
+ /** whether to disable the scroll on the body or not */
2319
+ disableBodyScroll?: boolean;
2320
+ /** Children */
2321
+ children?: React__default.ReactNode;
2322
+ }
2323
+ type DialogSizes = Extract<Size$1, 'tiny' | 'regular' | 'big' | 'huge'>;
2324
+ /**
2325
+ * Dialog component.
2326
+ *
2327
+ * @param props Component props.
2328
+ * @param ref Component ref.
2329
+ * @return React element.
2330
+ */
2331
+ declare const Dialog: Comp<DialogProps, HTMLDivElement>;
2332
+
2333
+ /**
2334
+ * Defines the props of the component.
2335
+ */
2336
+ interface DividerProps$1 extends HasTheme, HasClassName {
2337
+ /** reference to the root element */
2338
+ ref?: CommonRef;
2339
+ }
2340
+
2341
+ /**
2342
+ * Defines the props of the component.
2343
+ */
2344
+ interface DividerProps extends GenericProps$1, ReactToJSX<DividerProps$1> {
2345
+ }
2346
+ /**
2347
+ * Divider component.
2348
+ *
2349
+ * @param props Component props.
2350
+ * @param ref Component ref.
2351
+ * @return React element.
2352
+ */
2353
+ declare const Divider: Comp<DividerProps, HTMLHRElement>;
2354
+
2355
+ /**
2356
+ * Defines the props of the component.
2357
+ */
2358
+ interface DragHandleProps$1 extends HasTheme, HasClassName {
2359
+ /** Reference to the root element */
2360
+ ref?: CommonRef;
2361
+ }
2362
+
2363
+ /**
2364
+ * Defines the props of the component.
2365
+ */
2366
+ interface DragHandleProps extends GenericProps$1, ReactToJSX<DragHandleProps$1> {
2367
+ }
2368
+ /**
2369
+ * DragHandle component.
2370
+ *
2371
+ * @param props Component props.
2372
+ * @param ref Component ref.
2373
+ * @return React element.
2374
+ */
2375
+ declare const DragHandle: Comp<DragHandleProps, HTMLDivElement>;
2376
+
2377
+ /**
2378
+ * Defines the props of the component.
2379
+ */
2380
+ interface DropdownProps extends GenericProps$1 {
2381
+ /**
2382
+ * Reference to the element around which the dropdown is placed.
2383
+ * @see {@link PopoverProps#anchorRef}
1570
2384
  */
1571
- colorVariant?: ColorVariant;
2385
+ anchorRef: PopoverProps['anchorRef'];
2386
+ /** Dropdown content. */
2387
+ children: React.ReactNode;
1572
2388
  /**
1573
- * Typography variant.
2389
+ * Whether a click anywhere out of the Dropdown would close it or not.
2390
+ * @see {@link PopoverProps#closeOnClickAway}
1574
2391
  */
1575
- typography?: Typography;
2392
+ closeOnClickAway?: boolean;
1576
2393
  /**
1577
- * Custom component to render the text.
2394
+ * Whether to close the Dropdown when clicking in it or not.
1578
2395
  */
1579
- as: TextElement;
2396
+ closeOnClick?: boolean;
1580
2397
  /**
1581
- * Control whether the text should truncate or not.
1582
- * Setting as `true` will make the text truncate on a single line.
1583
- * Setting as `{ lines: number }` will make the text truncate on a multiple lines.
2398
+ * Whether an escape key press would close the Dropdown or not.
2399
+ * @see {@link PopoverProps#closeOnEscape}
1584
2400
  */
1585
- truncate?: boolean | {
1586
- lines: number;
1587
- };
2401
+ closeOnEscape?: boolean;
1588
2402
  /**
1589
- * Prevents text to wrap on multiple lines
1590
- * (automatically activated when single line text truncate is activated).
2403
+ * Manage dropdown width:
2404
+ * - `maxWidth`: dropdown not bigger than anchor
2405
+ * - `minWidth` or `true`: dropdown not smaller than anchor
2406
+ * - `width`: dropdown equal to the anchor.
2407
+ * @see {@link PopoverProps#fitToAnchorWidth}
1591
2408
  */
1592
- noWrap?: boolean;
2409
+ fitToAnchorWidth?: PopoverProps['fitToAnchorWidth'];
1593
2410
  /**
1594
- * WhiteSpace variant
1595
- * Ignored when `noWrap` is set to true
1596
- * Ignored when `truncate` is set to true or lines: 1
1597
- * */
1598
- whiteSpace?: WhiteSpace;
2411
+ * Whether the dropdown should shrink to fit within the viewport height or not.
2412
+ * @see {@link PopoverProps#fitWithinViewportHeight}
2413
+ */
2414
+ fitWithinViewportHeight?: boolean;
1599
2415
  /**
1600
- * Children
2416
+ * Whether the dropdown should be displayed or not. Useful to control the Dropdown from outside the component.
2417
+ * @see {@link PopoverProps#isOpen}
1601
2418
  */
1602
- children?: JSXElement;
1603
- /** list of styles to apply */
1604
- style?: CSSProperties;
2419
+ isOpen: boolean;
2420
+ /**
2421
+ * Offset applied to the Dropdown position.
2422
+ * @see {@link PopoverProps#offset}
2423
+ */
2424
+ offset?: Offset;
2425
+ /**
2426
+ * Preferred Dropdown placement against the anchor element.
2427
+ * @see {@link PopoverProps#placement}
2428
+ */
2429
+ placement?: Placement;
2430
+ /** Whether the focus should be set on the list when the dropdown is open or not. */
2431
+ shouldFocusOnOpen?: boolean;
2432
+ /** Whether the dropdown should be rendered into a DOM node that exists outside the DOM hierarchy of the parent component. */
2433
+ usePortal?: boolean;
2434
+ /** Whether the focus should go back on the anchor when dropdown closes and focus is within. */
2435
+ focusAnchorOnClose?: boolean;
2436
+ /**
2437
+ * Z-axis position.
2438
+ * @see {@link PopoverProps#zIndex}
2439
+ */
2440
+ zIndex?: number;
2441
+ /**
2442
+ * On close callback.
2443
+ * @see {@link PopoverProps#onClose}
2444
+ */
2445
+ onClose?(): void;
2446
+ /** On scroll end callback. */
2447
+ onInfiniteScroll?(): void;
2448
+ }
2449
+ /**
2450
+ * Dropdown component.
2451
+ *
2452
+ * @param props Component props.
2453
+ * @param ref Component ref.
2454
+ * @return React element.
2455
+ */
2456
+ declare const Dropdown: Comp<DropdownProps, HTMLDivElement>;
2457
+
2458
+ /**
2459
+ * Defines the props of the component.
2460
+ */
2461
+ interface ExpansionPanelProps extends GenericProps$1, HasCloseMode$1, HasTheme$1 {
2462
+ /** Whether the expansion panel has a background. */
2463
+ hasBackground?: boolean;
2464
+ /** Whether the header has a divider. */
2465
+ hasHeaderDivider?: boolean;
2466
+ /** Whether the component is open or not. */
2467
+ isOpen?: boolean;
2468
+ /** Label text (overwritten if a `<header>` is provided in the children). */
2469
+ label?: string;
2470
+ /** On open callback. */
2471
+ onOpen?: (event: React__default.MouseEvent) => void;
2472
+ /** On close callback. */
2473
+ onClose?: (event: React__default.MouseEvent) => void;
2474
+ /** Props to pass to the toggle button (minus those already set by the ExpansionPanel props). */
2475
+ toggleButtonProps: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color'>;
2476
+ /** On toggle open or close callback. */
2477
+ onToggleOpen?(shouldOpen: boolean, event: React__default.MouseEvent): void;
2478
+ /** Children */
2479
+ children?: React__default.ReactNode;
1605
2480
  }
2481
+ /**
2482
+ * ExpansionPanel component.
2483
+ *
2484
+ * @param props Component props.
2485
+ * @param ref Component ref.
2486
+ * @return React element.
2487
+ */
2488
+ declare const ExpansionPanel: Comp<ExpansionPanelProps, HTMLDivElement>;
1606
2489
 
1607
2490
  interface FlagProps$1 extends HasClassName, HasTheme {
1608
2491
  /** Color of the component. */
@@ -1696,7 +2579,7 @@ declare const GenericBlockGapSize: Pick<{
1696
2579
  readonly medium: "medium";
1697
2580
  readonly big: "big";
1698
2581
  readonly huge: "huge";
1699
- }, "tiny" | "regular" | "medium" | "big" | "huge">;
2582
+ }, "big" | "medium" | "tiny" | "regular" | "huge">;
1700
2583
  type GenericBlockGapSize = ValueOf<typeof GenericBlockGapSize>;
1701
2584
 
1702
2585
  interface GenericBlockProps$1 extends FlexBoxProps$1 {
@@ -1926,7 +2809,7 @@ interface GridColumnProps extends GenericProps$1, ReactToJSX<GridColumnProps$1>
1926
2809
  */
1927
2810
  declare const GridColumn: Comp<GridColumnProps, HTMLElement>;
1928
2811
 
1929
- declare const ICON_SIZES: ("xxs" | "xs" | "s" | "m" | "l" | "xl" | "xxl")[];
2812
+ declare const ICON_SIZES: ("m" | "s" | "xxs" | "xs" | "l" | "xl" | "xxl")[];
1930
2813
 
1931
2814
  type IconSizes = (typeof ICON_SIZES)[number];
1932
2815
  /**
@@ -2307,19 +3190,6 @@ interface InputHelperProps extends ReactToJSX<InputHelperProps$1>, GenericProps$
2307
3190
  */
2308
3191
  declare const InputHelper: Comp<InputHelperProps, HTMLParagraphElement>;
2309
3192
 
2310
- interface InputLabelProps$1 extends HasClassName, HasTheme {
2311
- /** Typography variant. */
2312
- typography?: Typography;
2313
- /** Label content. */
2314
- children: JSXElement;
2315
- /** Native htmlFor property. */
2316
- htmlFor: string;
2317
- /** Whether the component is required or not. */
2318
- isRequired?: boolean;
2319
- /** ref to the root element */
2320
- ref?: CommonRef;
2321
- }
2322
-
2323
3193
  interface InputLabelProps extends ReactToJSX<InputLabelProps$1>, GenericProps$1 {
2324
3194
  }
2325
3195
  /**
@@ -2360,286 +3230,90 @@ interface LightboxProps extends GenericProps$1, HasTheme$1, Pick<AriaAttributes$
2360
3230
  * @return React element.
2361
3231
  */
2362
3232
  declare const Lightbox: Comp<LightboxProps, HTMLDivElement>;
2363
-
2364
- /**
2365
- * Defines the props of the component.
2366
- */
2367
- interface LinkProps$1 extends HasClassName, HasAriaDisabled, HasDisabled {
2368
- /** Children content */
2369
- children?: JSXElement;
2370
- /** Color variant. */
2371
- color?: ColorWithVariants;
2372
- /** Lightened or darkened variant of the selected icon color. */
2373
- colorVariant?: ColorVariant;
2374
- /** Link href. */
2375
- href?: string;
2376
- /** Whether the component is disabled or not. */
2377
- isDisabled?: boolean;
2378
- /** Custom element/component for the link. */
2379
- linkAs?: string | any;
2380
- /** Click handler (framework wrappers convert onClick to handleClick). */
2381
- handleClick?: (event: any) => void;
2382
- /** Link target. */
2383
- target?: string;
2384
- /** Typography variant. */
2385
- typography?: Typography;
2386
- /** Element ref. */
2387
- ref?: CommonRef;
2388
- }
2389
-
2390
- /**
2391
- * Defines the props of the component.
2392
- */
2393
- interface LinkProps extends GenericProps$1, ReactToJSX<LinkProps$1> {
2394
- /**
2395
- * Left icon (SVG path).
2396
- * @deprecated Instead, simply nest `<Icon />` in the children
2397
- */
2398
- leftIcon?: string;
2399
- /** Click handler. */
2400
- onClick?: (event: React.MouseEvent) => void;
2401
- /**
2402
- * Right icon (SVG path).
2403
- * @deprecated Instead, simply nest `<Icon />` in the children
2404
- */
2405
- rightIcon?: string;
2406
- /** Children */
2407
- children?: React.ReactNode;
2408
- }
2409
- /**
2410
- * Link component.
2411
- *
2412
- * @param props Component props.
2413
- * @param ref Component ref.
2414
- * @return React element.
2415
- */
2416
- declare const Link: Comp<LinkProps, HTMLButtonElement | HTMLAnchorElement>;
2417
-
2418
- /**
2419
- * Defines the props of the component.
2420
- */
2421
- interface LinkPreviewProps extends GenericProps$1, HasTheme$1 {
2422
- /** Description. */
2423
- description?: string;
2424
- /** Link URL. */
2425
- link: string;
2426
- /** Custom react component for the link (can be used to inject react router Link). */
2427
- linkAs?: 'a' | any;
2428
- /** Props to pass to the link (minus those already set by the LinkPreview props). */
2429
- linkProps?: Omit<LinkProps, 'color' | 'colorVariant' | 'href' | 'target'>;
2430
- /** Size variant. */
2431
- size?: Extract<Size$1, 'regular' | 'big'>;
2432
- /** Thumbnail for the link preview. */
2433
- thumbnailProps?: ThumbnailProps;
2434
- /** Title. */
2435
- title?: string;
2436
- /** Customize the title heading tag. */
2437
- titleHeading?: HeadingElement$1;
2438
- }
2439
- /**
2440
- * LinkPreview component.
2441
- *
2442
- * @param props Component props.
2443
- * @param ref Component ref.
2444
- * @return React element.
2445
- */
2446
- declare const LinkPreview: Comp<LinkPreviewProps, HTMLDivElement>;
2447
-
2448
- type Listener = (evt: KeyboardEvent) => void;
2449
- interface UseKeyboardListNavigationType {
2450
- /** the current active index */
2451
- activeItemIndex: number;
2452
- /** callback to be used when a key is pressed. usually used with the native prop `onKeyDown` */
2453
- onKeyboardNavigation: Listener;
2454
- /** Resets the active index to the initial state */
2455
- resetActiveIndex(): void;
2456
- /** Sets the active index to a given value */
2457
- setActiveItemIndex(value: SetStateAction<number>): void;
2458
- }
2459
- type useKeyboardListNavigationType = <I>(items: I[], ref: RefObject<HTMLElement>, onListItemSelected: (itemSelected: I) => void, onListItemNavigated?: (itemSelected: I) => void, onEnterPressed?: (itemSelected: string) => void, onBackspacePressed?: Listener, keepFocusAfterSelection?: boolean, initialIndex?: number, preventTabOnEnteredValue?: boolean) => UseKeyboardListNavigationType;
2460
-
2461
- /** List item padding size. */
2462
- type ListItemPadding = Extract<Size, 'big' | 'huge'>;
2463
- /**
2464
- * Defines the props of the component.
2465
- */
2466
- interface ListProps$1 extends HasClassName {
2467
- /** List content (should be ListItem, ListDivider, etc.). */
2468
- children?: JSXElement;
2469
- /** Item padding size. */
2470
- itemPadding?: ListItemPadding;
2471
- /** ref to the root element */
2472
- ref?: CommonRef;
2473
- }
2474
-
2475
- /**
2476
- * Defines the props of the component.
2477
- */
2478
- interface ListProps extends GenericProps$1, ReactToJSX<ListProps$1> {
2479
- /**
2480
- * Whether the list items are clickable.
2481
- * @deprecated not needed anymore.
2482
- */
2483
- isClickable?: boolean;
2484
- /** Tab index of the list. */
2485
- tabIndex?: number;
2486
- /** @deprecated not supported since v4.0.0 */
2487
- onListItemSelected?(key: Key, index: number, evt: SyntheticEvent): void;
2488
- }
2489
- declare const List: Comp<ListProps, HTMLUListElement> & {
2490
- useKeyboardListNavigation: useKeyboardListNavigationType;
2491
- };
2492
-
2493
- /**
2494
- * ListItemAction props.
2495
- */
2496
- type ListItemActionProps<E extends ClickableElement = 'button'> = RawClickableProps<E> & HasClassName;
2497
-
2498
- /** ListItem size variants. */
2499
- type ListItemSize = Extract<Size, 'tiny' | 'regular' | 'big' | 'huge'>;
2500
- /**
2501
- * Defines the props of the component.
2502
- */
2503
- interface ListItemProps$1 extends HasClassName, HasAriaDisabled {
2504
- /** A component to be rendered after the content. */
2505
- after?: JSXElement;
2506
- /** A component to be rendered before the content. */
2507
- before?: JSXElement;
2508
- /** Content. */
2509
- children?: JSXElement;
2510
- /** Whether the list item should be highlighted or not. */
2511
- isHighlighted?: boolean;
2512
- /** Whether the component is selected or not. */
2513
- isSelected?: boolean;
2514
- /** Whether link/button is disabled or not. */
2515
- isDisabled?: boolean;
2516
- /** Custom component for the link (can be used to inject router Link). */
2517
- linkAs?: 'a' | any;
2518
- /** Props that will be passed on to the Link. */
2519
- linkProps?: GenericProps;
2520
- /** Reference to the link element. */
2521
- linkRef?: CommonRef;
2522
- /** Size variant. */
2523
- size?: ListItemSize;
2524
- /** ref to the root <li> element */
2525
- ref?: CommonRef;
2526
- /** On click callback. */
2527
- handleClick?: (event: any) => void;
2528
- }
2529
- type ListItemPropsToOverride = 'after' | 'before' | 'children' | 'handleClick';
2530
-
2531
- /**
2532
- * Defines the props of the component.
2533
- */
2534
- interface ListItemProps extends GenericProps$1, HasAriaDisabled$1, ReactToJSX<ListItemProps$1, ListItemPropsToOverride> {
2535
- /** A component to be rendered after the content. */
2536
- after?: ReactNode;
2537
- /** A component to be rendered before the content. */
2538
- before?: ReactNode;
2539
- /** Content. */
2540
- children: string | ReactNode;
2541
- /** Reference to the <li> element. */
2542
- listItemRef?: Ref<HTMLLIElement>;
2543
- /** Reference to the link element. */
2544
- linkRef?: Ref<HTMLAnchorElement>;
2545
- /** On click callback. */
2546
- onClick?(event: SyntheticEvent): void;
2547
- /** @alias onClick */
2548
- onItemSelected?(evt: SyntheticEvent): void;
2549
- }
2550
- /**
2551
- * ListItem component with Action sub-component.
2552
- */
2553
- declare const ListItem: Comp<ListItemProps, HTMLLIElement> & {
2554
- /** Sub-component that renders the default action (button or link) for the action area pattern. */
2555
- Action: (<E extends React$1.ElementType = "button">(props: React$1.PropsWithoutRef<React$1.ComponentProps<E>> & {
2556
- as?: E | undefined;
2557
- } & GenericProps$1 & ReactToJSX<ListItemActionProps, "children"> & _lumx_core_js_types.HasRequiredLinkHref<E> & {
2558
- children: ReactNode;
2559
- onClick?(evt: SyntheticEvent): void;
2560
- } & React$1.ComponentProps<E> & {
2561
- ref?: ComponentRef<E> | undefined;
2562
- }) => React.JSX.Element) & {
2563
- displayName: string;
2564
- className: string;
2565
- defaultProps: Partial<ListItemActionProps<"button">>;
2566
- };
2567
- };
2568
-
2569
- /**
2570
- * Defines the props of the component.
2571
- */
2572
- interface ListDividerProps$1 extends HasClassName {
2573
- /** ref to the root element */
2574
- ref?: CommonRef;
2575
- }
2576
-
2577
- /**
2578
- * Defines the props of the component.
2579
- */
2580
- type ListDividerProps = GenericProps$1 & ReactToJSX<ListDividerProps$1>;
2581
- /**
2582
- * ListDivider component.
2583
- * Purely decorative, consider a `ListSection` with label for a better list structure.
2584
- *
2585
- * @param props Component props.
2586
- * @param ref Component ref.
2587
- * @return React element.
2588
- */
2589
- declare const ListDivider: Comp<ListDividerProps, HTMLLIElement>;
2590
-
2591
- /**
2592
- * Defines the props of the component.
2593
- */
2594
- interface ListSectionProps$1 extends HasClassName {
2595
- /** Section label displayed as the group title. */
2596
- label?: string;
2597
- /** Section icon */
2598
- icon?: string;
2599
- /** List items (should be ListItem, ListDivider, etc.). */
2600
- children: JSXElement;
2601
- /** Items wrapper forwarded props */
2602
- itemsWrapperProps?: Record<string, any>;
2603
- /** ID for the label element (used for aria-labelledby). */
2604
- id: string;
2605
- /** ref to the root element */
3233
+
3234
+ /**
3235
+ * Defines the props of the component.
3236
+ */
3237
+ interface LinkProps$1 extends HasClassName, HasAriaDisabled, HasDisabled {
3238
+ /** Children content */
3239
+ children?: JSXElement;
3240
+ /** Color variant. */
3241
+ color?: ColorWithVariants;
3242
+ /** Lightened or darkened variant of the selected icon color. */
3243
+ colorVariant?: ColorVariant;
3244
+ /** Link href. */
3245
+ href?: string;
3246
+ /** Whether the component is disabled or not. */
3247
+ isDisabled?: boolean;
3248
+ /** Custom element/component for the link. */
3249
+ linkAs?: string | any;
3250
+ /** Click handler (framework wrappers convert onClick to handleClick). */
3251
+ handleClick?: (event: any) => void;
3252
+ /** Link target. */
3253
+ target?: string;
3254
+ /** Typography variant. */
3255
+ typography?: Typography;
3256
+ /** Element ref. */
2606
3257
  ref?: CommonRef;
2607
- /** Text component to use for rendering the label */
2608
- Text: (props: TextProps$1 & Record<string, any>) => any;
2609
3258
  }
2610
3259
 
2611
3260
  /**
2612
3261
  * Defines the props of the component.
2613
3262
  */
2614
- interface ListSectionProps extends GenericProps$1, ReactToJSX<ListSectionProps$1, 'children' | 'id' | 'Text'> {
2615
- /** Section content */
2616
- children: ReactNode;
3263
+ interface LinkProps extends GenericProps$1, ReactToJSX<LinkProps$1> {
3264
+ /**
3265
+ * Left icon (SVG path).
3266
+ * @deprecated Instead, simply nest `<Icon />` in the children
3267
+ */
3268
+ leftIcon?: string;
3269
+ /** Click handler. */
3270
+ onClick?: (event: React.MouseEvent) => void;
3271
+ /**
3272
+ * Right icon (SVG path).
3273
+ * @deprecated Instead, simply nest `<Icon />` in the children
3274
+ */
3275
+ rightIcon?: string;
3276
+ /** Children */
3277
+ children?: React.ReactNode;
2617
3278
  }
2618
3279
  /**
2619
- * ListSection component.
3280
+ * Link component.
2620
3281
  *
2621
3282
  * @param props Component props.
2622
3283
  * @param ref Component ref.
2623
3284
  * @return React element.
2624
3285
  */
2625
- declare const ListSection: Comp<ListSectionProps, HTMLLIElement>;
3286
+ declare const Link: Comp<LinkProps, HTMLButtonElement | HTMLAnchorElement>;
2626
3287
 
2627
3288
  /**
2628
3289
  * Defines the props of the component.
2629
3290
  */
2630
- interface ListSubheaderProps extends GenericProps$1 {
2631
- /** Content. */
2632
- children: string | ReactNode;
3291
+ interface LinkPreviewProps extends GenericProps$1, HasTheme$1 {
3292
+ /** Description. */
3293
+ description?: string;
3294
+ /** Link URL. */
3295
+ link: string;
3296
+ /** Custom react component for the link (can be used to inject react router Link). */
3297
+ linkAs?: 'a' | any;
3298
+ /** Props to pass to the link (minus those already set by the LinkPreview props). */
3299
+ linkProps?: Omit<LinkProps, 'color' | 'colorVariant' | 'href' | 'target'>;
3300
+ /** Size variant. */
3301
+ size?: Extract<Size$1, 'regular' | 'big'>;
3302
+ /** Thumbnail for the link preview. */
3303
+ thumbnailProps?: ThumbnailProps;
3304
+ /** Title. */
3305
+ title?: string;
3306
+ /** Customize the title heading tag. */
3307
+ titleHeading?: HeadingElement$1;
2633
3308
  }
2634
3309
  /**
2635
- * ListSubheader component.
2636
- * @deprecated ListSubheader produces improper list structure. use ListSection instead.
3310
+ * LinkPreview component.
2637
3311
  *
2638
3312
  * @param props Component props.
2639
3313
  * @param ref Component ref.
2640
3314
  * @return React element.
2641
3315
  */
2642
- declare const ListSubheader: Comp<ListSubheaderProps, HTMLLIElement>;
3316
+ declare const LinkPreview: Comp<LinkPreviewProps, HTMLDivElement>;
2643
3317
 
2644
3318
  /**
2645
3319
  * Defines the props of the component.
@@ -3858,6 +4532,10 @@ interface TabProps$1 extends HasClassName {
3858
4532
  changeToTab?: () => void;
3859
4533
  /** Tab index for roving tabindex management. */
3860
4534
  tabIndex?: number;
4535
+ /** Name of the prop used to set tab index (framework-dependent). */
4536
+ tabIndexProp?: string;
4537
+ /** Name of the prop used to attach the keypress event (framework-dependent). */
4538
+ keyPressProp?: string;
3861
4539
  /** ID applied to the tab button element (for aria-labelledby on the panel). */
3862
4540
  tabId?: string;
3863
4541
  /** ID of the associated tab panel (for aria-controls). */
@@ -3869,7 +4547,7 @@ interface TabProps$1 extends HasClassName {
3869
4547
  /** Forward ref to the underlying button element. */
3870
4548
  ref?: CommonRef;
3871
4549
  }
3872
- type TabPropsToOverride = 'isAnyDisabled' | 'shouldActivateOnFocus' | 'changeToTab' | 'tabIndex' | 'tabId' | 'tabPanelId' | 'Icon' | 'Text';
4550
+ type TabPropsToOverride = 'isAnyDisabled' | 'shouldActivateOnFocus' | 'changeToTab' | 'tabIndex' | 'tabIndexProp' | 'keyPressProp' | 'tabId' | 'tabPanelId' | 'Icon' | 'Text';
3873
4551
 
3874
4552
  /**
3875
4553
  * Defines the props of the component.
@@ -3915,10 +4593,12 @@ interface TabPanelProps$1 extends HasClassName {
3915
4593
  tabId?: string;
3916
4594
  /** ID of the associated tab panel (for aria-controls). */
3917
4595
  id?: string;
4596
+ /** Name of the prop used to set tab index (framework-dependent). */
4597
+ tabIndexProp?: string;
3918
4598
  /** Forward ref to the underlying button element. */
3919
4599
  ref?: CommonRef;
3920
4600
  }
3921
- type TabPanelPropsToOverride = 'tabId';
4601
+ type TabPanelPropsToOverride = 'tabId' | 'isLazy' | 'tabIndexProp';
3922
4602
 
3923
4603
  /**
3924
4604
  * Defines the props of the component.
@@ -3949,149 +4629,6 @@ interface TextProps extends ReactToJSX<TextProps$1>, GenericProps$1 {
3949
4629
  */
3950
4630
  declare const Text: Comp<TextProps, HTMLElement>;
3951
4631
 
3952
- /**
3953
- * Defines the props of the component.
3954
- */
3955
- interface TextFieldProps$1 extends HasClassName, HasTheme, HasAriaDisabled, HasDisabled {
3956
- /** Chip Group to be rendered before the main text input. */
3957
- chips?: JSXElement;
3958
- /** Props to pass to the clear button (minus those already set by the TextField props). If not specified, the button won't be displayed. */
3959
- clearButtonProps?: GenericProps;
3960
- /** Error message. */
3961
- error?: string | JSXElement;
3962
- /** Whether we force the focus style or not. */
3963
- forceFocusStyle?: boolean;
3964
- /** Whether the text field is displayed with error style or not. */
3965
- hasError?: boolean;
3966
- /** Additional element to put at the end of the text field. */
3967
- afterElement?: JSXElement;
3968
- /** Helper text. */
3969
- helper?: string | JSXElement;
3970
- /** Icon (SVG path). */
3971
- icon?: string;
3972
- /** Native input id property (generated if not provided to link the label element). */
3973
- id?: string;
3974
- /** Generated helper id for accessibility attributes. */
3975
- helperId?: string;
3976
- /** Generated error id for accessibility attributes. */
3977
- errorId?: string;
3978
- /** Whether the component is required or not. */
3979
- isRequired?: boolean;
3980
- /** Whether the text field is displayed with valid style or not. */
3981
- isValid?: boolean;
3982
- /** Label text. */
3983
- label?: string;
3984
- /** Additional label props. */
3985
- labelProps?: InputLabelProps$1;
3986
- /** Max string length the input accepts (constrains the input and displays a character counter). */
3987
- maxLength?: number;
3988
- /** Whether the text field is a textarea or an input. */
3989
- multiline?: boolean;
3990
- /** Placeholder text. */
3991
- placeholder?: string;
3992
- /** Reference to the wrapper. */
3993
- textFieldRef?: CommonRef;
3994
- /** Value. */
3995
- value?: string;
3996
- /** Whether any part is disabled. */
3997
- isAnyDisabled?: boolean;
3998
- /** The input element (input or textarea). */
3999
- input: JSXElement;
4000
- /** Whether the input is focused. */
4001
- isFocus?: boolean;
4002
- /** IconButton component. */
4003
- IconButton: (props: Record<string, any>) => any;
4004
- /** Ref to the component root. */
4005
- ref?: CommonRef;
4006
- }
4007
- type TextFieldPropsToOverride = 'input' | 'IconButton' | 'labelProps' | 'textFieldRef' | 'clearButtonProps' | 'helperId' | 'errorId' | 'isAnyDisabled' | 'isFocus';
4008
-
4009
- /**
4010
- * Defines the props of the component.
4011
- */
4012
- interface TextFieldProps extends GenericProps$1, ReactToJSX<TextFieldProps$1, TextFieldPropsToOverride> {
4013
- /** Props to pass to the clear button (minus those already set by the TextField props). If not specified, the button won't be displayed. */
4014
- clearButtonProps?: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;
4015
- /** Reference to the <input> or <textarea> element. */
4016
- inputRef?: Ref<HTMLInputElement | HTMLTextAreaElement>;
4017
- /** Additional label props. */
4018
- labelProps?: InputLabelProps;
4019
- /** Minimum number of rows displayed in multiline mode (requires `multiline` to be enabled). */
4020
- minimumRows?: number;
4021
- /** Native input name property. */
4022
- name?: string;
4023
- /** Reference to the wrapper. */
4024
- textFieldRef?: Ref<HTMLDivElement>;
4025
- /** Native input type (only when `multiline` is disabled). */
4026
- type?: React.ComponentProps<'input'>['type'];
4027
- /** On blur callback. */
4028
- onBlur?(event: React.FocusEvent): void;
4029
- /** On change callback. */
4030
- onChange(value: string, name?: string, event?: SyntheticEvent): void;
4031
- /** On clear callback. */
4032
- onClear?(event?: SyntheticEvent): void;
4033
- /** On focus callback. */
4034
- onFocus?(event: React.FocusEvent): void;
4035
- }
4036
- /**
4037
- * TextField component.
4038
- *
4039
- * @param props Component props.
4040
- * @param ref Component ref.
4041
- * @return React element.
4042
- */
4043
- declare const TextField: Comp<TextFieldProps, HTMLDivElement>;
4044
-
4045
- /**
4046
- * Defines the props of the component.
4047
- */
4048
- interface RawInputTextProps$1 extends HasTheme, HasClassName {
4049
- value?: string;
4050
- type?: HTMLInputTypeAttribute;
4051
- name?: string | undefined;
4052
- ref?: CommonRef;
4053
- handleChange?: (value: string, name?: string, event?: any) => void;
4054
- }
4055
-
4056
- type NativeInputProps = Omit<ComponentProps<'input'>, 'value' | 'onChange'>;
4057
- /**
4058
- * Defines the props of the component.
4059
- */
4060
- interface RawInputTextProps extends NativeInputProps, ReactToJSX<RawInputTextProps$1> {
4061
- onChange?: (value: string, name?: string, event?: SyntheticEvent) => void;
4062
- }
4063
-
4064
- /**
4065
- * Raw input text component
4066
- * (input element without any decoration)
4067
- */
4068
- declare const RawInputText: Comp<RawInputTextProps, HTMLInputElement>;
4069
-
4070
- /**
4071
- * Defines the props of the component.
4072
- */
4073
- interface RawInputTextareaProps$1 extends HasTheme, HasClassName {
4074
- value?: string;
4075
- rows?: number;
4076
- name?: string | undefined;
4077
- ref?: CommonRef;
4078
- handleChange?: (value: string, name?: string, event?: any) => void;
4079
- }
4080
-
4081
- type NativeTextareaProps = Omit<ComponentProps<'textarea'>, 'value' | 'onChange'>;
4082
- /**
4083
- * Defines the props of the component.
4084
- */
4085
- interface RawInputTextareaProps extends NativeTextareaProps, ReactToJSX<RawInputTextareaProps$1, 'rows'> {
4086
- minimumRows?: number;
4087
- onChange?: (value: string, name?: string, event?: SyntheticEvent) => void;
4088
- }
4089
- /**
4090
- * Raw input text area component
4091
- * (textarea element without any decoration)
4092
- */
4093
- declare const RawInputTextarea: Comp<Omit<RawInputTextareaProps, "type">, HTMLTextAreaElement>;
4094
-
4095
4632
  declare const useFocusPointStyle: ({ image, aspectRatio, focusPoint, imgProps: { width, height } }: ThumbnailProps, element: HTMLImageElement | undefined, isLoaded: boolean) => CSSProperties;
4096
4633
 
4097
4634
  /**
@@ -4128,44 +4665,6 @@ interface ToolbarProps extends GenericProps$1, ReactToJSX<ToolbarProps$1> {
4128
4665
  */
4129
4666
  declare const Toolbar: Comp<ToolbarProps, HTMLDivElement>;
4130
4667
 
4131
- declare const ARIA_LINK_MODES: readonly ["aria-describedby", "aria-labelledby"];
4132
-
4133
- /** Position of the tooltip relative to the anchor element. */
4134
- type TooltipPlacement = 'top' | 'right' | 'bottom' | 'left';
4135
- /**
4136
- * Framework-agnostic tooltip props (shared between React and Vue wrappers).
4137
- */
4138
- interface TooltipProps$1 extends HasCloseMode {
4139
- /** Delay (in ms) before closing the tooltip. */
4140
- delay?: number;
4141
- /** Whether the tooltip is displayed even without the mouse hovering the anchor. */
4142
- forceOpen?: boolean;
4143
- /** Label text. */
4144
- label?: string | null | false;
4145
- /** Placement of the tooltip relative to the anchor. */
4146
- placement?: TooltipPlacement;
4147
- /** Choose how the tooltip text should link to the anchor */
4148
- ariaLinkMode?: (typeof ARIA_LINK_MODES)[number];
4149
- /** Z-index for the tooltip */
4150
- zIndex?: number;
4151
- }
4152
-
4153
- /**
4154
- * Defines the props of the component.
4155
- */
4156
- interface TooltipProps extends GenericProps$1, TooltipProps$1 {
4157
- /** Anchor (element on which we activate the tooltip). */
4158
- children: ReactNode;
4159
- }
4160
- /**
4161
- * Tooltip component.
4162
- *
4163
- * @param props Component props.
4164
- * @param ref Component ref.
4165
- * @return React element.
4166
- */
4167
- declare const Tooltip: Comp<TooltipProps, HTMLDivElement>;
4168
-
4169
4668
  /**
4170
4669
  * Uploader variants.
4171
4670
  */
@@ -4386,5 +4885,5 @@ declare const ThemeProvider: React__default.FC<{
4386
4885
  /** Get the theme in the current context. */
4387
4886
  declare function useTheme(): ThemeContextValue;
4388
4887
 
4389
- export { AlertDialog, Autocomplete, AutocompleteMultiple, Avatar, Badge, BadgeWrapper, Button, ButtonEmphasis, ButtonGroup, CLASSNAME, COMPONENT_NAME, Checkbox, Chip, ChipGroup, CommentBlock, CommentBlockVariant, DEFAULT_PROPS, DatePicker, DatePickerControlled, DatePickerField, Dialog, Divider, DragHandle, Dropdown, ExpansionPanel, Flag, FlexBox, GenericBlock, GenericBlockGapSize, Grid, GridColumn, GridItem, Heading, HeadingLevelProvider, Icon, IconButton, ImageBlock, ImageBlockCaptionPosition, ImageLightbox, InlineList, InputHelper, InputLabel, Lightbox, Link, LinkPreview, List, ListDivider, ListItem, ListSection, ListSubheader, Message, Mosaic, Navigation, Notification, Placement, Popover, PopoverDialog, PostBlock, Progress, ProgressCircular, ProgressLinear, ProgressTracker, ProgressTrackerProvider, ProgressTrackerStep, ProgressTrackerStepPanel, ProgressVariant, RadioButton, RadioGroup, RawInputText, RawInputTextarea, Select, SelectMultiple, SelectMultipleField, SelectVariant, SelectionChipGroup, SideNavigation, SideNavigationItem, SkeletonCircle, SkeletonRectangle, SkeletonRectangleVariant, SkeletonTypography, Slider, Slides, Slideshow, SlideshowControls, SlideshowItem, Switch, Tab, TabList, TabListLayout, TabPanel, TabProvider, Table, TableBody, TableCell, TableCellVariant, TableCellVariant as TableCellVariantType, TableHeader, TableRow, Text, TextField, ThOrder, ThOrder as ThOrderType, ThemeProvider, Thumbnail, ThumbnailAspectRatio, ThumbnailObjectFit, ThumbnailVariant, Toolbar, Tooltip, Uploader, UploaderVariant, UserBlock, clamp, useFocusPointStyle, useHeadingLevel, useTheme };
4390
- export type { AlertDialogProps, AutocompleteMultipleProps, AutocompleteProps, AvatarProps, AvatarSize, BadgeProps, BadgeWrapperProps, BaseButtonProps, ButtonGroupProps, ButtonProps, ButtonSize, CheckboxProps, ChipGroupProps, ChipProps, CommentBlockProps, DatePickerControlledProps, DatePickerFieldProps, DatePickerProps, DialogProps, DialogSizes, DividerProps, DragHandleProps, DropdownProps, Elevation, ExpansionPanelProps, FlagProps, FlexBoxProps, FlexHorizontalAlignment, FlexVerticalAlignment, FocusPoint, GapSize, GenericBlockProps, GenericBlockSectionProps, GridColumnGapSize, GridColumnProps, GridItemProps, GridProps, HeadingLevelProviderProps, HeadingProps, IconButtonProps, IconProps, IconSizes, ImageBlockProps, ImageBlockSize, ImageLightboxProps, InlineListProps, InputHelperProps, InputLabelProps, LightboxProps, LinkPreviewProps, LinkProps, ListDividerProps, ListItemProps, ListItemSize, ListProps, ListSectionProps, ListSubheaderProps, MarginAutoAlignment, MessageProps, MosaicProps, NavigationProps, NotificationProps, Offset, PopoverDialogProps, PopoverProps, PostBlockProps, ProgressCircularProps, ProgressCircularSize, ProgressLinearProps, ProgressProps, ProgressTrackerProps, ProgressTrackerProviderProps, ProgressTrackerStepPanelProps, ProgressTrackerStepProps, RadioButtonProps, RadioGroupProps, RawInputTextProps, RawInputTextareaProps, SelectMultipleProps, SelectProps, SelectionChipGroupProps, SideNavigationItemProps, SideNavigationProps, SkeletonCircleProps, SkeletonRectangleProps, SkeletonTypographyProps, SliderProps, SlidesProps, SlideshowControlsProps, SlideshowItemProps, SlideshowProps, SwitchProps, TabListProps, TabPanelProps, TabProps, TabProviderProps, TableBodyProps, TableCellProps, TableHeaderProps, TableProps, TableRowProps, TextFieldProps, TextProps, ThumbnailProps, ThumbnailSize, ToolbarProps, TooltipPlacement, TooltipProps, UploaderProps, UploaderSize, UserBlockProps, UserBlockSize };
4888
+ export { AlertDialog, Autocomplete, AutocompleteMultiple, Avatar, Badge, BadgeWrapper, Button, ButtonEmphasis, ButtonGroup, CLASSNAME, COMPONENT_NAME, Checkbox, Chip, ChipGroup, Combobox, CommentBlock, CommentBlockVariant, DEFAULT_PROPS, DatePicker, DatePickerControlled, DatePickerField, Dialog, Divider, DragHandle, Dropdown, ExpansionPanel, Flag, FlexBox, GenericBlock, GenericBlockGapSize, Grid, GridColumn, GridItem, Heading, HeadingLevelProvider, Icon, IconButton, ImageBlock, ImageBlockCaptionPosition, ImageLightbox, InlineList, InputHelper, InputLabel, Lightbox, Link, LinkPreview, List, ListDivider, ListItem, ListSection, ListSubheader, Message, Mosaic, Navigation, Notification, Placement, Popover, PopoverDialog, PostBlock, Progress, ProgressCircular, ProgressLinear, ProgressTracker, ProgressTrackerProvider, ProgressTrackerStep, ProgressTrackerStepPanel, ProgressVariant, RadioButton, RadioGroup, RawInputText, RawInputTextarea, Select, SelectMultiple, SelectMultipleField, SelectVariant, SelectionChipGroup, SideNavigation, SideNavigationItem, SkeletonCircle, SkeletonRectangle, SkeletonRectangleVariant, SkeletonTypography, Slider, Slides, Slideshow, SlideshowControls, SlideshowItem, Switch, Tab, TabList, TabListLayout, TabPanel, TabProvider, Table, TableBody, TableCell, TableCellVariant, TableCellVariant as TableCellVariantType, TableHeader, TableRow, Text, TextField, ThOrder, ThOrder as ThOrderType, ThemeProvider, Thumbnail, ThumbnailAspectRatio, ThumbnailObjectFit, ThumbnailVariant, Toolbar, Tooltip, Uploader, UploaderVariant, UserBlock, clamp, useFocusPointStyle, useHeadingLevel, useTheme };
4889
+ export type { AlertDialogProps, AutocompleteMultipleProps, AutocompleteProps, AvatarProps, AvatarSize, BadgeProps, BadgeWrapperProps, BaseButtonProps, ButtonGroupProps, ButtonProps, ButtonSize, CheckboxProps, ChipGroupProps, ChipProps, ComboboxButtonProps, ComboboxInputProps, ComboboxListProps, ComboboxOptionActionProps, ComboboxOptionMoreInfoProps, ComboboxOptionProps, ComboboxOptionSkeletonProps, ComboboxPopoverComponentProps, ComboboxPopoverProps, ComboboxProviderProps, ComboboxSectionProps, ComboboxStateProps, CommentBlockProps, DatePickerControlledProps, DatePickerFieldProps, DatePickerProps, DialogProps, DialogSizes, DividerProps, DragHandleProps, DropdownProps, Elevation, ExpansionPanelProps, FlagProps, FlexBoxProps, FlexHorizontalAlignment, FlexVerticalAlignment, FocusPoint, GapSize, GenericBlockProps, GenericBlockSectionProps, GridColumnGapSize, GridColumnProps, GridItemProps, GridProps, HeadingLevelProviderProps, HeadingProps, IconButtonProps, IconProps, IconSizes, ImageBlockProps, ImageBlockSize, ImageLightboxProps, InlineListProps, InputHelperProps, InputLabelProps, LightboxProps, LinkPreviewProps, LinkProps, ListDividerProps, ListItemProps, ListItemSize, ListProps, ListSectionProps, ListSubheaderProps, MarginAutoAlignment, MessageProps, MosaicProps, NavigationProps, NotificationProps, Offset, PopoverDialogProps, PopoverProps, PostBlockProps, ProgressCircularProps, ProgressCircularSize, ProgressLinearProps, ProgressProps, ProgressTrackerProps, ProgressTrackerProviderProps, ProgressTrackerStepPanelProps, ProgressTrackerStepProps, RadioButtonProps, RadioGroupProps, RawInputTextProps, RawInputTextareaProps, SelectMultipleProps, SelectProps, SelectionChipGroupProps, SideNavigationItemProps, SideNavigationProps, SkeletonCircleProps, SkeletonRectangleProps, SkeletonTypographyProps, SliderProps, SlidesProps, SlideshowControlsProps, SlideshowItemProps, SlideshowProps, SwitchProps, TabListProps, TabPanelProps, TabProps, TabProviderProps, TableBodyProps, TableCellProps, TableHeaderProps, TableProps, TableRowProps, TextFieldProps, TextProps, ThumbnailProps, ThumbnailSize, ToolbarProps, TooltipPlacement, TooltipProps, UploaderProps, UploaderSize, UserBlockProps, UserBlockSize };