@homebound/beam 2.381.0 → 2.383.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -7252,735 +7252,759 @@ declare function HelperText(props: {
7252
7252
  contrast?: boolean;
7253
7253
  }): _emotion_react_jsx_runtime.JSX.Element;
7254
7254
 
7255
- /** Provides a way to extend the full width of the ScrollableParent */
7256
- declare function FullBleed({ children, omitPadding }: {
7257
- children: ReactElement;
7258
- omitPadding?: boolean;
7259
- }): ReactElement<any, string | React$1.JSXElementConstructor<any>>;
7255
+ type BoundCheckboxFieldProps = Omit<CheckboxProps, "selected" | "onChange" | "label"> & {
7256
+ field: FieldState<boolean | null | undefined>;
7257
+ /** Make optional so that callers can override if they want to. */
7258
+ onChange?: (values: boolean) => void;
7259
+ label?: string;
7260
+ };
7261
+ /** Wraps `Checkbox` and binds it to a form field. */
7262
+ declare function BoundCheckboxField(props: BoundCheckboxFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7260
7263
 
7261
- /** Intended to wrap the whole application to prevent the browser's native scrolling behavior while also taking the full height of the viewport */
7262
- declare function PreventBrowserScroll({ children }: ChildrenOnly): _emotion_react_jsx_runtime.JSX.Element;
7264
+ type BoundCheckboxGroupFieldProps = Omit<CheckboxGroupProps, "values" | "onChange" | "label"> & {
7265
+ field: FieldState<string[] | null | undefined>;
7266
+ /** Make optional so that callers can override if they want to. */
7267
+ onChange?: (values: string[]) => void;
7268
+ label?: string;
7269
+ };
7270
+ /** Wraps `CheckboxGroup` and binds it to a form field.
7271
+ * To make the field agnostic to the order of selected values, add `strictOrder: false` to the field's ObjectConfig */
7272
+ declare function BoundCheckboxGroupField(props: BoundCheckboxGroupFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7263
7273
 
7264
- interface OpenRightPaneOpts {
7265
- content: ReactNode;
7274
+ interface BoundChipSelectFieldProps<O, V extends Value> extends Omit<ChipSelectFieldProps<O, V>, "onSelect" | "label" | "value"> {
7275
+ onSelect?: (option: V | undefined) => void;
7276
+ field: FieldState<V | null | undefined>;
7277
+ label?: string;
7266
7278
  }
7267
- type RightPaneLayoutContextProps = {
7268
- openInPane: (opts: OpenRightPaneOpts) => void;
7269
- closePane: () => void;
7270
- clearPane: () => void;
7271
- isRightPaneOpen: boolean;
7272
- rightPaneContent: ReactNode;
7279
+ declare function BoundChipSelectField<O, V extends Value>(props: BoundChipSelectFieldProps<O, V>): JSX.Element;
7280
+ declare function BoundChipSelectField<O extends HasIdAndName<V>, V extends Value>(props: Optional<BoundChipSelectFieldProps<O, V>, "getOptionValue" | "getOptionLabel">): JSX.Element;
7281
+
7282
+ type BoundDateFieldProps = Omit<DateFieldProps, "label" | "value" | "onChange"> & {
7283
+ field: FieldState<Date | null | undefined>;
7284
+ label?: string;
7285
+ onChange?: (value: Date | undefined) => void;
7273
7286
  };
7274
- declare const RightPaneContext: React__default.Context<RightPaneLayoutContextProps>;
7275
- declare function RightPaneProvider({ children }: {
7276
- children: ReactNode;
7277
- }): _emotion_react_jsx_runtime.JSX.Element;
7278
- declare function useRightPaneContext(): RightPaneLayoutContextProps;
7287
+ /** Wraps `TextField` and binds it to a form field. */
7288
+ declare function BoundDateField(props: BoundDateFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7279
7289
 
7280
- declare function RightPaneLayout(props: {
7281
- children: ReactElement;
7282
- paneBgColor?: Palette;
7283
- paneWidth?: number;
7284
- defaultPaneContent?: ReactElement;
7285
- }): _emotion_react_jsx_runtime.JSX.Element;
7290
+ type BoundDateRangeFieldProps = Omit<DateRangeFieldProps, "label" | "value" | "onChange"> & {
7291
+ field: FieldState<DateRange | null | undefined>;
7292
+ label?: string;
7293
+ onChange?: (value: DateRange | undefined) => void;
7294
+ };
7295
+ /** Wraps `TextField` and binds it to a form field. */
7296
+ declare function BoundDateRangeField(props: BoundDateRangeFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7286
7297
 
7287
- interface UseRightPaneHook {
7288
- /** Opens a right pane */
7289
- openRightPane: (opts: OpenRightPaneOpts) => void;
7290
- /** Closes the right pane */
7291
- closeRightPane: () => void;
7292
- }
7293
- declare function useRightPane(): UseRightPaneHook;
7298
+ type BoundIconCardFieldProps = Omit<IconCardProps, "label" | "selected" | "onChange"> & {
7299
+ field: FieldState<boolean | null | undefined>;
7300
+ icon: IconProps["icon"];
7301
+ /** Make optional so that callers can override if they want to. */
7302
+ onChange?: (values: boolean) => void;
7303
+ label?: string;
7304
+ };
7305
+ /** Wraps `IconCard` and binds it to a form field. */
7306
+ declare function BoundIconCardField(props: BoundIconCardFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7294
7307
 
7295
- interface ScrollableContentProps {
7296
- children: ReactNode;
7297
- virtualized?: boolean;
7298
- omitBottomPadding?: true;
7299
- bgColor?: Palette;
7308
+ interface IconCardGroupItemOption<V extends Value> {
7309
+ icon: IconProps["icon"];
7310
+ label: string;
7311
+ disabled?: boolean;
7312
+ /** The value of the IconCardGroup item, stored in value array in state. */
7313
+ value: V;
7314
+ /** Exclusive: if true, this option will override all other options when selected. */
7315
+ exclusive?: boolean;
7316
+ }
7317
+ interface IconCardGroupProps<V extends Value> extends Pick<PresentationFieldProps, "labelStyle"> {
7318
+ label: string;
7319
+ /** Called when a card is selected */
7320
+ onChange: (values: V[]) => void;
7321
+ /** Options for the cards contained within the IconCardGroup. */
7322
+ options: IconCardGroupItemOption<V>[];
7323
+ /** The values currently selected. */
7324
+ values: V[];
7325
+ errorMsg?: string;
7326
+ helperText?: string | ReactNode;
7327
+ disabled?: boolean;
7300
7328
  }
7329
+
7330
+ type BoundIconCardGroupFieldProps<V extends Value> = Omit<IconCardGroupProps<V>, "label" | "values" | "onChange"> & {
7331
+ field: FieldState<V[] | null | undefined>;
7332
+ /** Make optional so that callers can override if they want to. */
7333
+ onChange?: (values: V[]) => void;
7334
+ label?: string;
7335
+ };
7336
+ /** Wraps `IconCardGroup` and binds it to a form field. */
7337
+ declare function BoundIconCardGroupField<V extends Value>(props: BoundIconCardGroupFieldProps<V>): _emotion_react_jsx_runtime.JSX.Element;
7338
+
7339
+ type BoundMultiLineSelectFieldProps<O, V extends Value> = Omit<MultiLineSelectFieldProps<O, V>, "values" | "onSelect" | "label"> & {
7340
+ onSelect?: (values: V[], opts: O[]) => void;
7341
+ field: FieldState<V[] | null | undefined>;
7342
+ label?: string;
7343
+ };
7301
7344
  /**
7302
- * Helper component for placing scrollable content within a `ScrollableParent`.
7303
- *
7304
- * See the docs on `ScrollableParent.
7305
- *
7306
- * Note that you should not use this "just to get a scrollbar", instead just use `Css.oa.$`
7307
- * or what not; this is only for implementing page-level patterns that need multiple stickied
7308
- * components (page header, tab bar, table filter & actions).
7345
+ * Wraps `MultiLineSelectField` and binds it to a form field.
7309
7346
  */
7310
- declare function ScrollableContent(props: ScrollableContentProps): ReactPortal | JSX.Element;
7347
+ declare function BoundMultiLineSelectField<O, V extends Value>(props: BoundMultiLineSelectFieldProps<O, V>): JSX.Element;
7348
+ declare function BoundMultiLineSelectField<O extends HasIdAndName<V>, V extends Value>(props: Optional<BoundMultiLineSelectFieldProps<O, V>, "getOptionLabel" | "getOptionValue">): JSX.Element;
7311
7349
 
7312
- interface ScrollableParentContextProps {
7313
- scrollableEl: HTMLElement | null;
7314
- pr: string | number;
7315
- pl: string | number;
7316
- setPortalTick: Dispatch<SetStateAction<number>>;
7317
- }
7318
- interface ScrollableParentContextProviderProps {
7319
- xss?: Properties;
7320
- tagName?: keyof JSX.IntrinsicElements;
7321
- }
7350
+ type BoundMultiSelectFieldProps<O, V extends Value> = Omit<MultiSelectFieldProps<O, V>, "values" | "onSelect" | "label"> & {
7351
+ onSelect?: (values: V[], opts: O[]) => void;
7352
+ field: FieldState<V[] | null | undefined>;
7353
+ label?: string;
7354
+ };
7322
7355
  /**
7323
- * Provides a pattern for implementing "multiple sticky" components.
7324
- *
7325
- * In css, `position: sticky` is great for pinning 1 element to the top of a container.
7326
- *
7327
- * However, in UX patterns, we're often asked to pin multiple DOM elements that are actually
7328
- * spread across multiple React components. For example:
7329
- *
7330
- * - Sticky a Header (in FooPage)
7331
- * - Sticky the table filter & actions (in FooTable)
7332
- * - Sticky the table header row(s) (in GridTable)
7333
- *
7334
- * Historically the way we did this was passing `stickyOffset`s around, where the header would be
7335
- * `top: 0px`, the filter & actions would be `top: ${headerPx}px`, and the table header rows would
7336
- * be `top: ${headerPx + filterActionsPx}px`.
7337
- *
7338
- * However, this is brittle as the `headerPx` / `filterActionsPx` are likely dynamic.
7356
+ * Wraps `MultiSelectField` and binds it to a form field.
7339
7357
  *
7340
- * `ScrollableParent` solves this by putting all the stickied content (except the table header rows)
7341
- * into a single div, and then having the page use `ScrollableContent` to mark what should actually
7342
- * scroll, which then we "pull up" to be a sibling div of "everything that was stickied".
7358
+ * To ease integration with "select this fooId" inputs, we can take a list
7359
+ * of objects, `T` (i.e. `TradePartner[]`), but accept a field of type `V`
7360
+ * (i.e. `string`).
7343
7361
  *
7344
- * See [this miro](https://miro.com/app/board/o9J_l-FQ-RU=/) and how we need to "cut the component in half".
7362
+ * The caller has to tell us how to turn `T` into `V`, which is usually a
7363
+ * lambda like `t => t.id`.
7345
7364
  */
7346
- declare function ScrollableParent(props: PropsWithChildren<ScrollableParentContextProviderProps>): _emotion_react_jsx_runtime.JSX.Element;
7347
- declare function useScrollableParent(): ScrollableParentContextProps;
7348
- declare const scrollContainerBottomPadding: {
7349
- content: csstype.Property.Content | undefined;
7350
- } & {
7351
- display: csstype.Property.Display | undefined;
7352
- } & {
7353
- height: csstype.Property.Height<string | 0> | undefined;
7354
- };
7365
+ declare function BoundMultiSelectField<O, V extends Value>(props: BoundMultiSelectFieldProps<O, V>): JSX.Element;
7366
+ declare function BoundMultiSelectField<O extends HasIdAndName<V>, V extends Value>(props: Optional<BoundMultiSelectFieldProps<O, V>, "getOptionLabel" | "getOptionValue">): JSX.Element;
7355
7367
 
7356
- interface LoaderProps {
7357
- size?: "xs" | "sm" | "md" | "lg";
7358
- contrast?: boolean;
7359
- }
7360
- declare function Loader({ size, contrast }: LoaderProps): _emotion_react_jsx_runtime.JSX.Element;
7368
+ type BoundNumberFieldProps = Omit<NumberFieldProps, "value" | "onChange" | "label"> & {
7369
+ label?: string;
7370
+ field: FieldState<number | null | undefined>;
7371
+ onChange?: (value: number | undefined) => void;
7372
+ };
7373
+ /** Wraps `NumberField` and binds it to a form field. */
7374
+ declare function BoundNumberField(props: BoundNumberFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7361
7375
 
7362
- type Sizes = "sm" | "md" | "lg";
7363
- type LoadingSkeletonProps = {
7364
- rows?: number;
7365
- columns?: number;
7366
- size?: Sizes;
7367
- randomizeWidths?: boolean;
7368
- contrast?: boolean;
7376
+ type BoundRadioGroupFieldProps<K extends string> = Omit<RadioGroupFieldProps<K>, "value" | "onChange" | "label"> & {
7377
+ field: FieldState<K | null | undefined>;
7378
+ /** Make optional so that callers can override if they want to. */
7379
+ onChange?: (value: K) => void;
7380
+ label?: string;
7369
7381
  };
7370
- declare function LoadingSkeleton({ rows, columns, size, randomizeWidths, contrast, }: LoadingSkeletonProps): _emotion_react_jsx_runtime.JSX.Element;
7382
+ /** Wraps `TextField` and binds it to a form field. */
7383
+ declare function BoundRadioGroupField<K extends string>(props: BoundRadioGroupFieldProps<K>): _emotion_react_jsx_runtime.JSX.Element;
7371
7384
 
7372
- type MaxLinesProps = PropsWithChildren<{
7373
- maxLines: number;
7374
- }>;
7375
- declare function MaxLines({ maxLines, children }: MaxLinesProps): _emotion_react_jsx_runtime.JSX.Element;
7385
+ type BoundRichTextFieldProps = Omit<RichTextFieldProps, "value" | "onChange"> & {
7386
+ field: FieldState<string | null | undefined>;
7387
+ onChange?: (value: string | undefined) => void;
7388
+ };
7389
+ /** Wraps `RichTextField` and binds it to a form field. */
7390
+ declare function BoundRichTextField(props: BoundRichTextFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7376
7391
 
7377
- interface OpenModalProps {
7378
- /** The custom modal content to show. */
7379
- children: JSX.Element;
7380
- /** The size to use. */
7381
- size?: ModalProps["size"];
7382
- /** Whether to force the modal to stay open. This is useful for stories where ruler/tape extensions cause the modal to close. */
7383
- keepOpen?: boolean;
7384
- }
7392
+ type BoundSelectFieldProps<O, V extends Value> = Omit<SelectFieldProps<O, V>, "value" | "onSelect" | "label"> & {
7393
+ /** Optional, to allow `onSelect` to be overridden to do more than just `field.set`. */
7394
+ onSelect?: (value: V | undefined, opt: O | undefined) => void;
7395
+ /** The field we'll read/write data from. */
7396
+ field: FieldState<V | null | undefined>;
7397
+ /** An optional label, defaults to the humanized field key, i.e. `authorId` -> `Author`. */
7398
+ label?: string;
7399
+ };
7385
7400
  /**
7386
- * A component for testing open modals in stories and unit tests.
7387
- *
7388
- * Currently, calling `render(<ModalComponent />)` in a test currently doesn't work, because
7389
- * nothing has called `useModal` to get the header & footer mounted into the DOM.
7401
+ * Wraps `SelectField` and binds it to a form field.
7390
7402
  *
7391
- * So instead tests can call:
7403
+ * To ease integration with GraphQL inputs that want to put `{ authorId: "a:1" }` on
7404
+ * the wire, we generally expect the FieldState type to be a string/tagged id, but the
7405
+ * `options` prop to be the full list of id+name options like `AuthorFragment[]`.
7392
7406
  *
7393
- * ```tsx
7394
- * render(
7395
- * <OpenModal>
7396
- * <ModalComponent />
7397
- * </OpenModal>
7398
- * );
7399
- * ```
7407
+ * If `AuthorFragment` type matches `HasIdIsh` and `HasNameIsh`, we'll automatically use
7408
+ * the `id` and `name` fields from it, otherwise callers need to provide `getOptionValue`
7409
+ * and `getOptionLabel` to adapt the option, i.e. `getOptionLabel={(author) => author.otherName}`.
7400
7410
  *
7401
- * And `OpenModal` will do a boilerplate `openModal` call, so that the content
7402
- * shows up in the DOM as expected.
7411
+ * Note: there are four overloads here to handle each combination of "HasIdIsh and HasNameId",
7412
+ * "only has HasIdIsh", "only has HasNameIsh", and "neither".
7403
7413
  */
7404
- declare function OpenModal(props: OpenModalProps): JSX.Element;
7414
+ declare function BoundSelectField<T extends HasIdIsh<V> & HasNameIsh, V extends Value>(props: Optional<BoundSelectFieldProps<T, V>, "getOptionLabel" | "getOptionValue">): JSX.Element;
7415
+ declare function BoundSelectField<T extends HasIdIsh<V>, V extends Value>(props: Optional<BoundSelectFieldProps<T, V>, "getOptionValue">): JSX.Element;
7416
+ declare function BoundSelectField<T extends HasNameIsh, V extends Value>(props: Optional<BoundSelectFieldProps<T, V>, "getOptionLabel">): JSX.Element;
7417
+ declare function BoundSelectField<T, V extends Value>(props: BoundSelectFieldProps<T, V>): JSX.Element;
7405
7418
 
7406
- interface UseModalHook {
7407
- openModal: (props: ModalProps) => void;
7408
- closeModal: VoidFunction;
7409
- addCanClose: (canClose: CheckFn) => void;
7410
- setSize: (size: ModalProps["size"]) => void;
7411
- inModal: boolean;
7412
- }
7413
- declare function useModal(): UseModalHook;
7419
+ type BoundSwitchFieldProps = Omit<SwitchProps, "selected" | "onChange" | "label"> & {
7420
+ field: FieldState<boolean | null | undefined>;
7421
+ /** Make optional so that callers can override if they want to. */
7422
+ onChange?: (value: boolean) => void;
7423
+ label?: string;
7424
+ };
7425
+ /** Wraps `Switch` and binds it to a form field. */
7426
+ declare function BoundSwitchField(props: BoundSwitchFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7414
7427
 
7415
- /**
7416
- * Page settings, either a pageNumber+pageSize or offset+limit.
7417
- *
7418
- * This component is implemented in terms of "page number + page size",
7419
- * but our backend wants offset+limit, so we accept both and translate.
7420
- */
7421
- type PageSettings = PageNumberAndSize | OffsetAndLimit;
7422
- type PageNumberAndSize = {
7423
- pageNumber: number;
7424
- pageSize: number;
7428
+ type BoundTextAreaFieldProps<X> = Omit<TextAreaFieldProps<X>, "value" | "onChange" | "label"> & {
7429
+ label?: string;
7430
+ field: FieldState<string | null | undefined>;
7431
+ onChange?: (value: string | undefined) => void;
7425
7432
  };
7426
- type OffsetAndLimit = {
7427
- offset: number;
7428
- limit: number;
7433
+ /** Wraps `TextAreaField` and binds it to a form field. */
7434
+ declare function BoundTextAreaField<X extends Only<TextFieldXss, X>>(props: BoundTextAreaFieldProps<X>): _emotion_react_jsx_runtime.JSX.Element;
7435
+
7436
+ type BoundTextFieldProps<X> = Omit<TextFieldProps<X>, "value" | "onChange" | "label"> & {
7437
+ label?: string;
7438
+ field: FieldState<string | null | undefined>;
7439
+ onChange?: (value: string | undefined) => void;
7429
7440
  };
7430
- declare const defaultPage: OffsetAndLimit;
7431
- interface PaginationProps {
7432
- page: readonly [PageNumberAndSize, Dispatch<PageNumberAndSize>] | readonly [OffsetAndLimit, Dispatch<OffsetAndLimit>];
7433
- totalCount: number;
7434
- pageSizes?: number[];
7435
- }
7436
- declare function Pagination(props: PaginationProps): _emotion_react_jsx_runtime.JSX.Element;
7437
- declare function toLimitAndOffset(page: PageSettings): OffsetAndLimit;
7438
- declare function toPageNumberSize(page: PageSettings): PageNumberAndSize;
7441
+ /** Wraps `TextField` and binds it to a form field. */
7442
+ declare function BoundTextField<X extends Only<TextFieldXss, X>>(props: BoundTextFieldProps<X>): _emotion_react_jsx_runtime.JSX.Element;
7439
7443
 
7440
- interface ScrollShadowsProps {
7441
- children: ReactNode;
7442
- /** Allows for styling the container */
7443
- xss?: Properties;
7444
- /** Set to true if the container scrolls horizontally */
7445
- horizontal?: boolean;
7446
- /** Defines the background color for the shadows */
7447
- bgColor?: Palette;
7448
- }
7449
- declare function ScrollShadows(props: ScrollShadowsProps): _emotion_react_jsx_runtime.JSX.Element;
7444
+ type BoundToggleChipGroupFieldProps = Omit<ToggleChipGroupProps, "values" | "onChange" | "label"> & {
7445
+ field: FieldState<string[] | null | undefined>;
7446
+ /** Make optional so that callers can override if they want to. */
7447
+ onChange?: (values: string[]) => void;
7448
+ label?: string;
7449
+ };
7450
+ /** Wraps `ToggleChipGroup` and binds it to a form field. */
7451
+ declare function BoundToggleChipGroupField(props: BoundToggleChipGroupFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7450
7452
 
7451
- type SnackbarNoticeTypes = "error" | "warning" | "success" | "info" | "alert";
7452
- interface SnackbarNoticeProps {
7453
- /** Adds action button to the right of the notice */
7454
- action?: Pick<ButtonProps, "label" | "onClick" | "variant">;
7455
- /** Does not allow the user to close the notice manually. Notice will fade away in 10s. Value will be ignored if 'persistent' is set to 'true'. */
7456
- hideCloseButton?: boolean;
7457
- message: ReactNode;
7458
- /** This notice will persist on the screen until systematically closed by the app or by the user clicking the close button. */
7459
- persistent?: boolean;
7460
- /** Defines the icon that will show on the left side of the notification. */
7461
- icon?: SnackbarNoticeTypes;
7462
- /** Unique identifier to allow notice to close itself */
7463
- id: string;
7464
- /** Removes the snackbar notice from the stack */
7465
- onClose: () => void;
7466
- }
7453
+ type BoundTreeSelectFieldProps<O, V extends Value> = Omit<TreeSelectFieldProps<O, V>, "values" | "onSelect" | "label"> & {
7454
+ onSelect?: (options: TreeSelectResponse<O, V>) => void;
7455
+ field: FieldState<V[] | null | undefined>;
7456
+ label?: string;
7457
+ };
7458
+ /**
7459
+ * Wraps `TreeSelectField` and binds it to a form field.
7460
+ *
7461
+ * To ease integration with "select this fooId" inputs, we can take a list
7462
+ * of objects, `T` (i.e. `TradePartner[]`), but accept a field of type `V`
7463
+ * (i.e. `string`).
7464
+ *
7465
+ * The caller has to tell us how to turn `T` into `V`, which is usually a
7466
+ * lambda like `t => t.id`.
7467
+ */
7468
+ declare function BoundTreeSelectField<T, V extends Value>(props: BoundTreeSelectFieldProps<T, V>): JSX.Element;
7469
+ declare function BoundTreeSelectField<T extends HasIdAndName<V>, V extends Value>(props: Optional<BoundTreeSelectFieldProps<T, V>, "getOptionLabel" | "getOptionValue">): JSX.Element;
7467
7470
 
7468
- type Offset = {
7469
- bottom?: number;
7471
+ type BoundFieldInputFnReturn = {
7472
+ component: ReactNode;
7473
+ minWidth: Properties["minWidth"];
7474
+ };
7475
+ type BoundFieldInputFn<F> = (field: ObjectState<F>[keyof F]) => BoundFieldInputFnReturn;
7476
+ type CapitalizeFirstLetter<S extends string> = S extends `${infer First}${infer Rest}` ? `${Uppercase<First>}${Rest}` : S;
7477
+ declare const reactNodePrefix = "reactNode";
7478
+ type TReactNodePrefix<S extends string> = `${typeof reactNodePrefix}${CapitalizeFirstLetter<S>}`;
7479
+ type CustomReactNodeKey = `${typeof reactNodePrefix}${string}`;
7480
+ type BoundFormRowInputs<F> = Partial<{
7481
+ [K in keyof F]: BoundFieldInputFn<F>;
7482
+ }> & {
7483
+ [K in CustomReactNodeKey]: ReactNode;
7484
+ } & {
7485
+ [K in keyof F as TReactNodePrefix<K & string>]: ReactNode;
7486
+ };
7487
+ type BoundFormInputConfig<F> = BoundFormRowInputs<F>[];
7488
+ type BoundFormProps<F> = {
7489
+ rows: BoundFormInputConfig<F>;
7490
+ formState: ObjectState<F>;
7470
7491
  };
7492
+ /**
7493
+ * A wrapper around the "Bound" form components for the form-state library to render a standard (and responsive) form layout.
7494
+ * * Each row is an object of bound input components keyed by their formState key, which are rendered in a responsive flex layout.
7495
+ * * Alternatively keys can be prefixed with "reactNode" to render any custom JSX node as-is.
7496
+ * * Example usage:
7497
+ * ```tsx
7498
+ * <BoundFormComponent
7499
+ rows={[
7500
+ { firstName: boundTextField(), middleInitial: boundTextField(), lastName: boundTextField() },
7501
+ { bio: boundTextAreaField() },
7502
+ { reactNodeExample: <div>Custom JSX node</div> },
7503
+ ]}
7504
+ formState={formState}
7505
+ />
7506
+ * ```
7507
+ */
7508
+ declare function BoundForm<F>(props: BoundFormProps<F>): _emotion_react_jsx_runtime.JSX.Element;
7509
+ /**
7510
+ * These field component functions are thin wrappers around the `BoundFoo` components which omit
7511
+ * certain props that the caller doesn't need to pass or we specifically want to restrict to drive UX consistency.
7512
+ */
7513
+ type KeysToOmit = "field";
7514
+ declare function boundSelectField<O, V extends Value>(props: Omit<BoundSelectFieldProps<O, V>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7515
+ declare function boundMultiSelectField<O, V extends Value>(props: Omit<BoundMultiSelectFieldProps<O, V>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7516
+ declare function boundMultilineSelectField<O, V extends Value>(props: Omit<BoundMultiLineSelectFieldProps<O, V>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7517
+ declare function boundTextField<X extends Only<TextFieldXss, X>>(props?: Omit<BoundTextFieldProps<X>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7518
+ declare function boundTextAreaField<X extends Only<TextFieldXss, X>>(props?: Omit<BoundTextAreaFieldProps<X>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7519
+ declare function boundNumberField(props?: Omit<BoundNumberFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7520
+ declare function boundDateField(props?: Omit<BoundDateFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7521
+ declare function boundDateRangeField(props?: Omit<BoundDateRangeFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7522
+ declare function boundCheckboxField(props?: Omit<BoundCheckboxFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7523
+ declare function boundCheckboxGroupField(props: Omit<BoundCheckboxGroupFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7524
+ declare function boundIconCardField(props: Omit<BoundIconCardFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7525
+ declare function boundIconCardGroupField<V extends Value>(props: Omit<BoundIconCardGroupFieldProps<V>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7526
+ declare function boundRadioGroupField<K extends string>(props: Omit<BoundRadioGroupFieldProps<K>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7527
+ declare function boundRichTextField(props?: Omit<BoundRichTextFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7528
+ declare function boundSwitchField(props?: Omit<BoundSwitchFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7529
+ declare function boundToggleChipGroupField(props: Omit<BoundToggleChipGroupFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7530
+ declare function boundTreeSelectField<O, V extends Value>(props: Omit<BoundTreeSelectFieldProps<O, V>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7471
7531
 
7472
- interface UseSnackbarHook {
7473
- triggerNotice: (props: TriggerNoticeProps) => {
7474
- close: () => void;
7475
- };
7476
- closeNotice: (id: string) => void;
7477
- /**
7478
- * A custom hook that components may call to notify snackbar it should offset,
7479
- * such as a bottom-mounted Stepper component that ought not be covered by
7480
- * notifications. Behaves like a useEffect, and will clean up on dismount.
7481
- * (Known issue: If multiple components call this, last-to-render takes
7482
- * precedence and first-to-dismount unsets everything)
7483
- */
7484
- useSnackbarOffset: (offset: Offset) => void;
7485
- }
7486
- declare function useSnackbar(): UseSnackbarHook;
7487
- interface TriggerNoticeProps extends Omit<SnackbarNoticeProps, "id" | "onClose"> {
7488
- id?: string;
7489
- onClose?: () => void;
7532
+ interface BoundSelectAndTextFieldProps<O, V extends Value, X> {
7533
+ selectFieldProps: CompoundSelectFieldProps<O, V>;
7534
+ textFieldProps: CompoundTextFieldProps<X>;
7535
+ compact?: boolean;
7490
7536
  }
7537
+ declare function BoundSelectAndTextField<O, V extends Value, X extends Only<TextFieldXss, X>>(props: BoundSelectAndTextFieldProps<O, V, X>): JSX.Element;
7538
+ declare function BoundSelectAndTextField<O extends HasIdAndName<V>, V extends Value, X extends Only<TextFieldXss, X>>(props: Omit<BoundSelectAndTextFieldProps<O, V, X>, "selectFieldProps"> & {
7539
+ selectFieldProps: Optional<CompoundSelectFieldProps<O, V>, "getOptionValue" | "getOptionLabel">;
7540
+ }): JSX.Element;
7541
+ type CompoundSelectFieldProps<O, V extends Value> = Omit<BoundSelectFieldProps<O, V>, "compact">;
7542
+ type CompoundTextFieldProps<X> = Omit<BoundTextFieldProps<X>, "compact">;
7491
7543
 
7492
- interface Step {
7493
- label: string;
7494
- state: "incomplete" | "complete" | "error";
7495
- disabled?: boolean;
7496
- value: string;
7544
+ interface FormHeadingProps {
7545
+ title: string;
7546
+ xss?: Xss<Margin>;
7547
+ isFirst?: boolean;
7497
7548
  }
7498
- interface StepperProps {
7499
- steps: Step[];
7500
- currentStep: Step["value"];
7501
- onChange: (stepValue: string) => void;
7549
+ declare function FormHeading(props: FormHeadingProps): _emotion_react_jsx_runtime.JSX.Element;
7550
+ declare namespace FormHeading {
7551
+ var isFormHeading: boolean;
7502
7552
  }
7503
- declare function Stepper(props: StepperProps): _emotion_react_jsx_runtime.JSX.Element;
7504
7553
 
7505
- interface SuperDrawerHeaderProps {
7554
+ type FormWidth =
7555
+ /** 320px. */
7556
+ "sm"
7557
+ /** 480px, works well in a small, single-stack form. */
7558
+ | "md"
7559
+ /** 550px, works well for showing side-by-side/double-stack fields. */
7560
+ | "lg"
7561
+ /** 100%, works well for showing full width fields, or deferring to the parent width. */
7562
+ | "full";
7563
+ interface FormLinesProps extends Pick<PresentationFieldProps, "labelStyle" | "labelLeftFieldWidth" | "labelSuffix" | "compact"> {
7564
+ /** Let the user interleave group-less lines and grouped lines. */
7506
7565
  children: ReactNode;
7507
- hideControls?: boolean;
7508
- }
7509
- interface SuperDrawerHeaderStructuredProps {
7510
- title: string | ReactNode;
7511
- left?: ReactNode;
7512
- right?: ReactNode;
7513
- hideControls?: boolean;
7566
+ width?: FormWidth;
7567
+ /** Increment property (e.g. 1 = 8px). Defines space between form fields */
7568
+ gap?: number;
7514
7569
  }
7515
- declare function SuperDrawerHeader(props: SuperDrawerHeaderProps | SuperDrawerHeaderStructuredProps): JSX.Element;
7570
+ /**
7571
+ * Applies standard Form layout/size/spacing between lines.
7572
+ *
7573
+ * Lines can either be individual form fields, or a group of form fields
7574
+ * (see the `FieldGroup` component), where they will be laid out side-by-side.
7575
+ */
7576
+ declare function FormLines(props: FormLinesProps): _emotion_react_jsx_runtime.JSX.Element;
7577
+ /** Draws a line between form lines. */
7578
+ declare function FormDivider(): _emotion_react_jsx_runtime.JSX.Element;
7579
+ /** Groups multiple fields side-by-side. */
7580
+ declare function FieldGroup(props: {
7581
+ /** The legend/title for this group. */
7582
+ title?: string;
7583
+ children: JSX.Element[];
7584
+ /** An array of widths for each child, if a number we use `fr` units. */
7585
+ widths?: Array<number | string>;
7586
+ }): _emotion_react_jsx_runtime.JSX.Element;
7516
7587
 
7517
- interface ConfirmCloseModalProps {
7518
- onClose: () => void;
7519
- discardText?: string;
7520
- continueText?: string;
7588
+ interface StaticFieldProps {
7589
+ label: ReactNode;
7590
+ value?: string;
7591
+ children?: ReactNode;
7592
+ labelStyle?: PresentationFieldProps["labelStyle"];
7521
7593
  }
7522
- /** Modal content to appear when a close checks fails */
7523
- declare function ConfirmCloseModal(props: ConfirmCloseModalProps): _emotion_react_jsx_runtime.JSX.Element;
7594
+ declare function StaticField(props: StaticFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7524
7595
 
7525
- interface SuperDrawerContentProps {
7596
+ type SubmitButtonProps<T> = Omit<ButtonProps, "label"> & {
7597
+ label?: ButtonProps["label"];
7598
+ form: ObjectState<T>;
7599
+ };
7600
+ /** Provides a Button that will auto-disable if `formState` is invalid. */
7601
+ declare function SubmitButton<T>(props: SubmitButtonProps<T>): _emotion_react_jsx_runtime.JSX.Element;
7602
+
7603
+ type HeaderBreadcrumb = {
7604
+ href: string;
7605
+ label: string;
7606
+ };
7607
+
7608
+ type FormSection<F> = {
7609
+ title?: string;
7610
+ icon?: IconKey;
7611
+ rows: BoundFormInputConfig<F>;
7612
+ };
7613
+ type FormSectionConfig<F> = FormSection<F>[];
7614
+ type ActionButtonProps = Pick<ButtonProps, "onClick" | "label" | "disabled" | "tooltip">;
7615
+ type FormPageLayoutProps<F> = {
7616
+ pageTitle: string;
7617
+ breadCrumb?: HeaderBreadcrumb | HeaderBreadcrumb[];
7618
+ formState: ObjectState<F>;
7619
+ formSections: FormSectionConfig<F>;
7620
+ submitAction?: ActionButtonProps;
7621
+ cancelAction?: ActionButtonProps;
7622
+ tertiaryAction?: ActionButtonProps;
7623
+ };
7624
+ declare function FormPageLayoutComponent<F>(props: FormPageLayoutProps<F>): _emotion_react_jsx_runtime.JSX.Element;
7625
+ declare const FormPageLayout: typeof FormPageLayoutComponent;
7626
+
7627
+ /** Provides a way to extend the full width of the ScrollableParent */
7628
+ declare function FullBleed({ children, omitPadding }: {
7629
+ children: ReactElement;
7630
+ omitPadding?: boolean;
7631
+ }): ReactElement<any, string | React$1.JSXElementConstructor<any>>;
7632
+
7633
+ /** Intended to wrap the whole application to prevent the browser's native scrolling behavior while also taking the full height of the viewport */
7634
+ declare function PreventBrowserScroll({ children }: ChildrenOnly): _emotion_react_jsx_runtime.JSX.Element;
7635
+
7636
+ interface OpenRightPaneOpts {
7637
+ content: ReactNode;
7638
+ }
7639
+ type RightPaneLayoutContextProps = {
7640
+ openInPane: (opts: OpenRightPaneOpts) => void;
7641
+ closePane: () => void;
7642
+ clearPane: () => void;
7643
+ isRightPaneOpen: boolean;
7644
+ rightPaneContent: ReactNode;
7645
+ };
7646
+ declare const RightPaneContext: React__default.Context<RightPaneLayoutContextProps>;
7647
+ declare function RightPaneProvider({ children }: {
7526
7648
  children: ReactNode;
7527
- /**
7528
- * Actions represents an array of button props with represents that different
7529
- * actions that can be conducted in the SuperDrawer page.
7530
- *
7531
- * Ex: A `cancel` and `submit` button
7532
- * */
7533
- actions?: ButtonProps[];
7649
+ }): _emotion_react_jsx_runtime.JSX.Element;
7650
+ declare function useRightPaneContext(): RightPaneLayoutContextProps;
7651
+
7652
+ declare function RightPaneLayout(props: {
7653
+ children: ReactElement;
7654
+ paneBgColor?: Palette;
7655
+ paneWidth?: number;
7656
+ defaultPaneContent?: ReactElement;
7657
+ }): _emotion_react_jsx_runtime.JSX.Element;
7658
+
7659
+ interface UseRightPaneHook {
7660
+ /** Opens a right pane */
7661
+ openRightPane: (opts: OpenRightPaneOpts) => void;
7662
+ /** Closes the right pane */
7663
+ closeRightPane: () => void;
7664
+ }
7665
+ declare function useRightPane(): UseRightPaneHook;
7666
+
7667
+ interface ScrollableContentProps {
7668
+ children: ReactNode;
7669
+ virtualized?: boolean;
7670
+ omitBottomPadding?: true;
7671
+ bgColor?: Palette;
7534
7672
  }
7535
7673
  /**
7536
- * Helper component to place the given children and actions into the appropriate
7537
- * DOM format to render inside the SuperDrawer.
7674
+ * Helper component for placing scrollable content within a `ScrollableParent`.
7538
7675
  *
7539
- * NOTE: This does not include the header props since the caller will be the one
7540
- * that knows how to handle the title, prev/next link and the onClose handler.
7676
+ * See the docs on `ScrollableParent.
7677
+ *
7678
+ * Note that you should not use this "just to get a scrollbar", instead just use `Css.oa.$`
7679
+ * or what not; this is only for implementing page-level patterns that need multiple stickied
7680
+ * components (page header, tab bar, table filter & actions).
7541
7681
  */
7542
- declare const SuperDrawerContent: ({ children, actions }: SuperDrawerContentProps) => _emotion_react_jsx_runtime.JSX.Element;
7682
+ declare function ScrollableContent(props: ScrollableContentProps): ReactPortal | JSX.Element;
7543
7683
 
7544
- interface Tab<V extends string = string> {
7545
- name: string;
7546
- value: V;
7547
- icon?: IconKey;
7548
- endAdornment?: ReactNode;
7549
- /** Whether the Tab is disabled. If a ReactNode, it's treated as a "disabled reason" that's shown in a tooltip. */
7550
- disabled?: boolean | ReactNode;
7551
- }
7552
- type TabsContentXss = Xss<Margin | Padding | "backgroundColor">;
7553
- interface TabsProps<V extends string, X> {
7554
- ariaLabel?: string;
7555
- selected: V;
7556
- tabs: Tab<V>[];
7557
- onChange: (value: V) => void;
7558
- contentXss?: X;
7559
- alwaysShowAllTabs?: boolean;
7560
- includeBottomBorder?: boolean;
7561
- right?: ReactNode;
7562
- }
7563
- interface RouteTabsProps<V extends string, X> extends Omit<TabsProps<V, X>, "onChange" | "selected" | "tabs"> {
7564
- tabs: RouteTab<V>[];
7565
- }
7566
- interface RouteTab<V extends string = string> extends Omit<Tab<V>, "value"> {
7567
- href: V;
7568
- path: string | string[];
7569
- }
7570
- interface TabWithContent<V extends string = string> extends Omit<Tab<V>, "render"> {
7571
- render: () => ReactNode;
7572
- }
7573
- interface RouteTabWithContent<V extends string = string> extends Omit<RouteTab<V>, "render"> {
7574
- render: () => ReactNode;
7575
- }
7576
- interface RequiredRenderTabs<V extends string, X> extends Omit<TabsProps<V, X>, "tabs"> {
7577
- tabs: TabWithContent<V>[];
7684
+ interface ScrollableParentContextProps {
7685
+ scrollableEl: HTMLElement | null;
7686
+ pr: string | number;
7687
+ pl: string | number;
7688
+ setPortalTick: Dispatch<SetStateAction<number>>;
7578
7689
  }
7579
- interface RequiredRenderRouteTabs<V extends string, X> extends Omit<RouteTabsProps<V, X>, "tabs"> {
7580
- tabs: RouteTabWithContent<V>[];
7690
+ interface ScrollableParentContextProviderProps {
7691
+ xss?: Properties;
7692
+ tagName?: keyof JSX.IntrinsicElements;
7581
7693
  }
7582
7694
  /**
7583
- * Provides a list of tabs and their content.
7695
+ * Provides a pattern for implementing "multiple sticky" components.
7584
7696
  *
7585
- * The caller is responsible for using `selected` / `onChange` to control
7586
- * the current tab.
7697
+ * In css, `position: sticky` is great for pinning 1 element to the top of a container.
7587
7698
  *
7588
- * If you want to tease apart Tabs from their TabContent, you can use the `Tab`
7589
- * and `TabContent` components directly.
7699
+ * However, in UX patterns, we're often asked to pin multiple DOM elements that are actually
7700
+ * spread across multiple React components. For example:
7701
+ *
7702
+ * - Sticky a Header (in FooPage)
7703
+ * - Sticky the table filter & actions (in FooTable)
7704
+ * - Sticky the table header row(s) (in GridTable)
7705
+ *
7706
+ * Historically the way we did this was passing `stickyOffset`s around, where the header would be
7707
+ * `top: 0px`, the filter & actions would be `top: ${headerPx}px`, and the table header rows would
7708
+ * be `top: ${headerPx + filterActionsPx}px`.
7709
+ *
7710
+ * However, this is brittle as the `headerPx` / `filterActionsPx` are likely dynamic.
7711
+ *
7712
+ * `ScrollableParent` solves this by putting all the stickied content (except the table header rows)
7713
+ * into a single div, and then having the page use `ScrollableContent` to mark what should actually
7714
+ * scroll, which then we "pull up" to be a sibling div of "everything that was stickied".
7715
+ *
7716
+ * See [this miro](https://miro.com/app/board/o9J_l-FQ-RU=/) and how we need to "cut the component in half".
7590
7717
  */
7591
- declare function TabsWithContent<V extends string, X extends Only<TabsContentXss, X>>(props: RequiredRenderTabs<V, X> | RequiredRenderRouteTabs<V, X>): _emotion_react_jsx_runtime.JSX.Element;
7592
- declare function TabContent<V extends string>(props: Omit<RequiredRenderTabs<V, AnyObject>, "onChange"> | RequiredRenderRouteTabs<V, AnyObject>): _emotion_react_jsx_runtime.JSX.Element;
7593
- /** The top list of tabs. */
7594
- declare function Tabs<V extends string>(props: TabsProps<V, AnyObject> | RouteTabsProps<V, AnyObject>): _emotion_react_jsx_runtime.JSX.Element;
7718
+ declare function ScrollableParent(props: PropsWithChildren<ScrollableParentContextProviderProps>): _emotion_react_jsx_runtime.JSX.Element;
7719
+ declare function useScrollableParent(): ScrollableParentContextProps;
7720
+ declare const scrollContainerBottomPadding: {
7721
+ content: csstype.Property.Content | undefined;
7722
+ } & {
7723
+ display: csstype.Property.Display | undefined;
7724
+ } & {
7725
+ height: csstype.Property.Height<string | 0> | undefined;
7726
+ };
7595
7727
 
7596
- type TagXss = Margin | "backgroundColor" | "color";
7597
- type TagType = "info" | "caution" | "warning" | "success" | "neutral";
7598
- interface TagProps<X> {
7599
- text: ReactNode;
7600
- type?: TagType;
7601
- xss?: X;
7602
- icon?: IconKey;
7603
- /** A tooltip will automatically be displayed if the text is truncated. Set to true to prevent this behavior.
7604
- * @default false */
7605
- preventTooltip?: boolean;
7728
+ interface LoaderProps {
7729
+ size?: "xs" | "sm" | "md" | "lg";
7730
+ contrast?: boolean;
7606
7731
  }
7607
- /** Tag used for indicating a status */
7608
- declare function Tag<X extends Only<Xss<TagXss>, X>>(props: TagProps<X>): _emotion_react_jsx_runtime.JSX.Element;
7732
+ declare function Loader({ size, contrast }: LoaderProps): _emotion_react_jsx_runtime.JSX.Element;
7609
7733
 
7610
- declare function Toast(): _emotion_react_jsx_runtime.JSX.Element;
7734
+ type Sizes = "sm" | "md" | "lg";
7735
+ type LoadingSkeletonProps = {
7736
+ rows?: number;
7737
+ columns?: number;
7738
+ size?: Sizes;
7739
+ randomizeWidths?: boolean;
7740
+ contrast?: boolean;
7741
+ };
7742
+ declare function LoadingSkeleton({ rows, columns, size, randomizeWidths, contrast, }: LoadingSkeletonProps): _emotion_react_jsx_runtime.JSX.Element;
7611
7743
 
7612
- interface ToastNoticeProps extends Omit<BannerProps, "onClose"> {
7613
- }
7744
+ type MaxLinesProps = PropsWithChildren<{
7745
+ maxLines: number;
7746
+ }>;
7747
+ declare function MaxLines({ maxLines, children }: MaxLinesProps): _emotion_react_jsx_runtime.JSX.Element;
7614
7748
 
7615
- interface UseToastProps {
7616
- showToast: (props: ToastNoticeProps) => void;
7617
- clear: () => void;
7749
+ interface OpenModalProps {
7750
+ /** The custom modal content to show. */
7751
+ children: JSX.Element;
7752
+ /** The size to use. */
7753
+ size?: ModalProps["size"];
7754
+ /** Whether to force the modal to stay open. This is useful for stories where ruler/tape extensions cause the modal to close. */
7755
+ keepOpen?: boolean;
7618
7756
  }
7619
- declare function useToast(): UseToastProps;
7757
+ /**
7758
+ * A component for testing open modals in stories and unit tests.
7759
+ *
7760
+ * Currently, calling `render(<ModalComponent />)` in a test currently doesn't work, because
7761
+ * nothing has called `useModal` to get the header & footer mounted into the DOM.
7762
+ *
7763
+ * So instead tests can call:
7764
+ *
7765
+ * ```tsx
7766
+ * render(
7767
+ * <OpenModal>
7768
+ * <ModalComponent />
7769
+ * </OpenModal>
7770
+ * );
7771
+ * ```
7772
+ *
7773
+ * And `OpenModal` will do a boilerplate `openModal` call, so that the content
7774
+ * shows up in the DOM as expected.
7775
+ */
7776
+ declare function OpenModal(props: OpenModalProps): JSX.Element;
7620
7777
 
7621
- interface TooltipProps {
7622
- /** The content that shows up when hovered */
7623
- title: ReactNode;
7624
- children: ReactNode;
7625
- placement?: Placement;
7626
- delay?: number;
7627
- disabled?: boolean;
7628
- bgColor?: Palette;
7778
+ interface UseModalHook {
7779
+ openModal: (props: ModalProps) => void;
7780
+ closeModal: VoidFunction;
7781
+ addCanClose: (canClose: CheckFn) => void;
7782
+ setSize: (size: ModalProps["size"]) => void;
7783
+ inModal: boolean;
7629
7784
  }
7630
- declare function Tooltip(props: TooltipProps): _emotion_react_jsx_runtime.JSX.Element;
7631
- type Placement = "top" | "bottom" | "left" | "right" | "auto";
7632
- declare function maybeTooltip(props: Omit<TooltipProps, "children"> & {
7633
- children: ReactNode;
7634
- }): _emotion_react_jsx_runtime.JSX.Element;
7635
- declare function resolveTooltip(disabled?: boolean | ReactNode, tooltip?: ReactNode, readOnly?: boolean | ReactNode): ReactNode | undefined;
7785
+ declare function useModal(): UseModalHook;
7636
7786
 
7637
- type BoundCheckboxFieldProps = Omit<CheckboxProps, "selected" | "onChange" | "label"> & {
7638
- field: FieldState<boolean | null | undefined>;
7639
- /** Make optional so that callers can override if they want to. */
7640
- onChange?: (values: boolean) => void;
7641
- label?: string;
7787
+ /**
7788
+ * Page settings, either a pageNumber+pageSize or offset+limit.
7789
+ *
7790
+ * This component is implemented in terms of "page number + page size",
7791
+ * but our backend wants offset+limit, so we accept both and translate.
7792
+ */
7793
+ type PageSettings = PageNumberAndSize | OffsetAndLimit;
7794
+ type PageNumberAndSize = {
7795
+ pageNumber: number;
7796
+ pageSize: number;
7642
7797
  };
7643
- /** Wraps `Checkbox` and binds it to a form field. */
7644
- declare function BoundCheckboxField(props: BoundCheckboxFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7645
-
7646
- type BoundCheckboxGroupFieldProps = Omit<CheckboxGroupProps, "values" | "onChange" | "label"> & {
7647
- field: FieldState<string[] | null | undefined>;
7648
- /** Make optional so that callers can override if they want to. */
7649
- onChange?: (values: string[]) => void;
7650
- label?: string;
7798
+ type OffsetAndLimit = {
7799
+ offset: number;
7800
+ limit: number;
7651
7801
  };
7652
- /** Wraps `CheckboxGroup` and binds it to a form field.
7653
- * To make the field agnostic to the order of selected values, add `strictOrder: false` to the field's ObjectConfig */
7654
- declare function BoundCheckboxGroupField(props: BoundCheckboxGroupFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7802
+ declare const defaultPage: OffsetAndLimit;
7803
+ interface PaginationProps {
7804
+ page: readonly [PageNumberAndSize, Dispatch<PageNumberAndSize>] | readonly [OffsetAndLimit, Dispatch<OffsetAndLimit>];
7805
+ totalCount: number;
7806
+ pageSizes?: number[];
7807
+ }
7808
+ declare function Pagination(props: PaginationProps): _emotion_react_jsx_runtime.JSX.Element;
7809
+ declare function toLimitAndOffset(page: PageSettings): OffsetAndLimit;
7810
+ declare function toPageNumberSize(page: PageSettings): PageNumberAndSize;
7655
7811
 
7656
- interface BoundChipSelectFieldProps<O, V extends Value> extends Omit<ChipSelectFieldProps<O, V>, "onSelect" | "label" | "value"> {
7657
- onSelect?: (option: V | undefined) => void;
7658
- field: FieldState<V | null | undefined>;
7659
- label?: string;
7812
+ interface ScrollShadowsProps {
7813
+ children: ReactNode;
7814
+ /** Allows for styling the container */
7815
+ xss?: Properties;
7816
+ /** Set to true if the container scrolls horizontally */
7817
+ horizontal?: boolean;
7818
+ /** Defines the background color for the shadows */
7819
+ bgColor?: Palette;
7660
7820
  }
7661
- declare function BoundChipSelectField<O, V extends Value>(props: BoundChipSelectFieldProps<O, V>): JSX.Element;
7662
- declare function BoundChipSelectField<O extends HasIdAndName<V>, V extends Value>(props: Optional<BoundChipSelectFieldProps<O, V>, "getOptionValue" | "getOptionLabel">): JSX.Element;
7821
+ declare function ScrollShadows(props: ScrollShadowsProps): _emotion_react_jsx_runtime.JSX.Element;
7663
7822
 
7664
- type BoundDateFieldProps = Omit<DateFieldProps, "label" | "value" | "onChange"> & {
7665
- field: FieldState<Date | null | undefined>;
7666
- label?: string;
7667
- onChange?: (value: Date | undefined) => void;
7668
- };
7669
- /** Wraps `TextField` and binds it to a form field. */
7670
- declare function BoundDateField(props: BoundDateFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7823
+ type SnackbarNoticeTypes = "error" | "warning" | "success" | "info" | "alert";
7824
+ interface SnackbarNoticeProps {
7825
+ /** Adds action button to the right of the notice */
7826
+ action?: Pick<ButtonProps, "label" | "onClick" | "variant">;
7827
+ /** Does not allow the user to close the notice manually. Notice will fade away in 10s. Value will be ignored if 'persistent' is set to 'true'. */
7828
+ hideCloseButton?: boolean;
7829
+ message: ReactNode;
7830
+ /** This notice will persist on the screen until systematically closed by the app or by the user clicking the close button. */
7831
+ persistent?: boolean;
7832
+ /** Defines the icon that will show on the left side of the notification. */
7833
+ icon?: SnackbarNoticeTypes;
7834
+ /** Unique identifier to allow notice to close itself */
7835
+ id: string;
7836
+ /** Removes the snackbar notice from the stack */
7837
+ onClose: () => void;
7838
+ }
7671
7839
 
7672
- type BoundDateRangeFieldProps = Omit<DateRangeFieldProps, "label" | "value" | "onChange"> & {
7673
- field: FieldState<DateRange | null | undefined>;
7674
- label?: string;
7675
- onChange?: (value: DateRange | undefined) => void;
7840
+ type Offset = {
7841
+ bottom?: number;
7676
7842
  };
7677
- /** Wraps `TextField` and binds it to a form field. */
7678
- declare function BoundDateRangeField(props: BoundDateRangeFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7679
7843
 
7680
- type BoundIconCardFieldProps = Omit<IconCardProps, "label" | "selected" | "onChange"> & {
7681
- field: FieldState<boolean | null | undefined>;
7682
- icon: IconProps["icon"];
7683
- /** Make optional so that callers can override if they want to. */
7684
- onChange?: (values: boolean) => void;
7685
- label?: string;
7686
- };
7687
- /** Wraps `IconCard` and binds it to a form field. */
7688
- declare function BoundIconCardField(props: BoundIconCardFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7844
+ interface UseSnackbarHook {
7845
+ triggerNotice: (props: TriggerNoticeProps) => {
7846
+ close: () => void;
7847
+ };
7848
+ closeNotice: (id: string) => void;
7849
+ /**
7850
+ * A custom hook that components may call to notify snackbar it should offset,
7851
+ * such as a bottom-mounted Stepper component that ought not be covered by
7852
+ * notifications. Behaves like a useEffect, and will clean up on dismount.
7853
+ * (Known issue: If multiple components call this, last-to-render takes
7854
+ * precedence and first-to-dismount unsets everything)
7855
+ */
7856
+ useSnackbarOffset: (offset: Offset) => void;
7857
+ }
7858
+ declare function useSnackbar(): UseSnackbarHook;
7859
+ interface TriggerNoticeProps extends Omit<SnackbarNoticeProps, "id" | "onClose"> {
7860
+ id?: string;
7861
+ onClose?: () => void;
7862
+ }
7689
7863
 
7690
- interface IconCardGroupItemOption<V extends Value> {
7691
- icon: IconProps["icon"];
7864
+ interface Step {
7692
7865
  label: string;
7866
+ state: "incomplete" | "complete" | "error";
7693
7867
  disabled?: boolean;
7694
- /** The value of the IconCardGroup item, stored in value array in state. */
7695
- value: V;
7696
- /** Exclusive: if true, this option will override all other options when selected. */
7697
- exclusive?: boolean;
7868
+ value: string;
7698
7869
  }
7699
- interface IconCardGroupProps<V extends Value> extends Pick<PresentationFieldProps, "labelStyle"> {
7700
- label: string;
7701
- /** Called when a card is selected */
7702
- onChange: (values: V[]) => void;
7703
- /** Options for the cards contained within the IconCardGroup. */
7704
- options: IconCardGroupItemOption<V>[];
7705
- /** The values currently selected. */
7706
- values: V[];
7707
- errorMsg?: string;
7708
- helperText?: string | ReactNode;
7709
- disabled?: boolean;
7870
+ interface StepperProps {
7871
+ steps: Step[];
7872
+ currentStep: Step["value"];
7873
+ onChange: (stepValue: string) => void;
7710
7874
  }
7875
+ declare function Stepper(props: StepperProps): _emotion_react_jsx_runtime.JSX.Element;
7711
7876
 
7712
- type BoundIconCardGroupFieldProps<V extends Value> = Omit<IconCardGroupProps<V>, "label" | "values" | "onChange"> & {
7713
- field: FieldState<V[] | null | undefined>;
7714
- /** Make optional so that callers can override if they want to. */
7715
- onChange?: (values: V[]) => void;
7716
- label?: string;
7717
- };
7718
- /** Wraps `IconCardGroup` and binds it to a form field. */
7719
- declare function BoundIconCardGroupField<V extends Value>(props: BoundIconCardGroupFieldProps<V>): _emotion_react_jsx_runtime.JSX.Element;
7877
+ interface SuperDrawerHeaderProps {
7878
+ children: ReactNode;
7879
+ hideControls?: boolean;
7880
+ }
7881
+ interface SuperDrawerHeaderStructuredProps {
7882
+ title: string | ReactNode;
7883
+ left?: ReactNode;
7884
+ right?: ReactNode;
7885
+ hideControls?: boolean;
7886
+ }
7887
+ declare function SuperDrawerHeader(props: SuperDrawerHeaderProps | SuperDrawerHeaderStructuredProps): JSX.Element;
7720
7888
 
7721
- type BoundMultiLineSelectFieldProps<O, V extends Value> = Omit<MultiLineSelectFieldProps<O, V>, "values" | "onSelect" | "label"> & {
7722
- onSelect?: (values: V[], opts: O[]) => void;
7723
- field: FieldState<V[] | null | undefined>;
7724
- label?: string;
7725
- };
7726
- /**
7727
- * Wraps `MultiLineSelectField` and binds it to a form field.
7728
- */
7729
- declare function BoundMultiLineSelectField<O, V extends Value>(props: BoundMultiLineSelectFieldProps<O, V>): JSX.Element;
7730
- declare function BoundMultiLineSelectField<O extends HasIdAndName<V>, V extends Value>(props: Optional<BoundMultiLineSelectFieldProps<O, V>, "getOptionLabel" | "getOptionValue">): JSX.Element;
7889
+ interface ConfirmCloseModalProps {
7890
+ onClose: () => void;
7891
+ discardText?: string;
7892
+ continueText?: string;
7893
+ }
7894
+ /** Modal content to appear when a close checks fails */
7895
+ declare function ConfirmCloseModal(props: ConfirmCloseModalProps): _emotion_react_jsx_runtime.JSX.Element;
7731
7896
 
7732
- type BoundMultiSelectFieldProps<O, V extends Value> = Omit<MultiSelectFieldProps<O, V>, "values" | "onSelect" | "label"> & {
7733
- onSelect?: (values: V[], opts: O[]) => void;
7734
- field: FieldState<V[] | null | undefined>;
7735
- label?: string;
7736
- };
7897
+ interface SuperDrawerContentProps {
7898
+ children: ReactNode;
7899
+ /**
7900
+ * Actions represents an array of button props with represents that different
7901
+ * actions that can be conducted in the SuperDrawer page.
7902
+ *
7903
+ * Ex: A `cancel` and `submit` button
7904
+ * */
7905
+ actions?: ButtonProps[];
7906
+ }
7737
7907
  /**
7738
- * Wraps `MultiSelectField` and binds it to a form field.
7739
- *
7740
- * To ease integration with "select this fooId" inputs, we can take a list
7741
- * of objects, `T` (i.e. `TradePartner[]`), but accept a field of type `V`
7742
- * (i.e. `string`).
7908
+ * Helper component to place the given children and actions into the appropriate
7909
+ * DOM format to render inside the SuperDrawer.
7743
7910
  *
7744
- * The caller has to tell us how to turn `T` into `V`, which is usually a
7745
- * lambda like `t => t.id`.
7911
+ * NOTE: This does not include the header props since the caller will be the one
7912
+ * that knows how to handle the title, prev/next link and the onClose handler.
7746
7913
  */
7747
- declare function BoundMultiSelectField<O, V extends Value>(props: BoundMultiSelectFieldProps<O, V>): JSX.Element;
7748
- declare function BoundMultiSelectField<O extends HasIdAndName<V>, V extends Value>(props: Optional<BoundMultiSelectFieldProps<O, V>, "getOptionLabel" | "getOptionValue">): JSX.Element;
7749
-
7750
- type BoundNumberFieldProps = Omit<NumberFieldProps, "value" | "onChange" | "label"> & {
7751
- label?: string;
7752
- field: FieldState<number | null | undefined>;
7753
- onChange?: (value: number | undefined) => void;
7754
- };
7755
- /** Wraps `NumberField` and binds it to a form field. */
7756
- declare function BoundNumberField(props: BoundNumberFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7757
-
7758
- type BoundRadioGroupFieldProps<K extends string> = Omit<RadioGroupFieldProps<K>, "value" | "onChange" | "label"> & {
7759
- field: FieldState<K | null | undefined>;
7760
- /** Make optional so that callers can override if they want to. */
7761
- onChange?: (value: K) => void;
7762
- label?: string;
7763
- };
7764
- /** Wraps `TextField` and binds it to a form field. */
7765
- declare function BoundRadioGroupField<K extends string>(props: BoundRadioGroupFieldProps<K>): _emotion_react_jsx_runtime.JSX.Element;
7766
-
7767
- type BoundRichTextFieldProps = Omit<RichTextFieldProps, "value" | "onChange"> & {
7768
- field: FieldState<string | null | undefined>;
7769
- onChange?: (value: string | undefined) => void;
7770
- };
7771
- /** Wraps `RichTextField` and binds it to a form field. */
7772
- declare function BoundRichTextField(props: BoundRichTextFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7914
+ declare const SuperDrawerContent: ({ children, actions }: SuperDrawerContentProps) => _emotion_react_jsx_runtime.JSX.Element;
7773
7915
 
7774
- type BoundSelectFieldProps<O, V extends Value> = Omit<SelectFieldProps<O, V>, "value" | "onSelect" | "label"> & {
7775
- /** Optional, to allow `onSelect` to be overridden to do more than just `field.set`. */
7776
- onSelect?: (value: V | undefined, opt: O | undefined) => void;
7777
- /** The field we'll read/write data from. */
7778
- field: FieldState<V | null | undefined>;
7779
- /** An optional label, defaults to the humanized field key, i.e. `authorId` -> `Author`. */
7780
- label?: string;
7781
- };
7916
+ interface Tab<V extends string = string> {
7917
+ name: string;
7918
+ value: V;
7919
+ icon?: IconKey;
7920
+ endAdornment?: ReactNode;
7921
+ /** Whether the Tab is disabled. If a ReactNode, it's treated as a "disabled reason" that's shown in a tooltip. */
7922
+ disabled?: boolean | ReactNode;
7923
+ }
7924
+ type TabsContentXss = Xss<Margin | Padding | "backgroundColor">;
7925
+ interface TabsProps<V extends string, X> {
7926
+ ariaLabel?: string;
7927
+ selected: V;
7928
+ tabs: Tab<V>[];
7929
+ onChange: (value: V) => void;
7930
+ contentXss?: X;
7931
+ alwaysShowAllTabs?: boolean;
7932
+ includeBottomBorder?: boolean;
7933
+ right?: ReactNode;
7934
+ }
7935
+ interface RouteTabsProps<V extends string, X> extends Omit<TabsProps<V, X>, "onChange" | "selected" | "tabs"> {
7936
+ tabs: RouteTab<V>[];
7937
+ }
7938
+ interface RouteTab<V extends string = string> extends Omit<Tab<V>, "value"> {
7939
+ href: V;
7940
+ path: string | string[];
7941
+ }
7942
+ interface TabWithContent<V extends string = string> extends Omit<Tab<V>, "render"> {
7943
+ render: () => ReactNode;
7944
+ }
7945
+ interface RouteTabWithContent<V extends string = string> extends Omit<RouteTab<V>, "render"> {
7946
+ render: () => ReactNode;
7947
+ }
7948
+ interface RequiredRenderTabs<V extends string, X> extends Omit<TabsProps<V, X>, "tabs"> {
7949
+ tabs: TabWithContent<V>[];
7950
+ }
7951
+ interface RequiredRenderRouteTabs<V extends string, X> extends Omit<RouteTabsProps<V, X>, "tabs"> {
7952
+ tabs: RouteTabWithContent<V>[];
7953
+ }
7782
7954
  /**
7783
- * Wraps `SelectField` and binds it to a form field.
7784
- *
7785
- * To ease integration with GraphQL inputs that want to put `{ authorId: "a:1" }` on
7786
- * the wire, we generally expect the FieldState type to be a string/tagged id, but the
7787
- * `options` prop to be the full list of id+name options like `AuthorFragment[]`.
7955
+ * Provides a list of tabs and their content.
7788
7956
  *
7789
- * If `AuthorFragment` type matches `HasIdIsh` and `HasNameIsh`, we'll automatically use
7790
- * the `id` and `name` fields from it, otherwise callers need to provide `getOptionValue`
7791
- * and `getOptionLabel` to adapt the option, i.e. `getOptionLabel={(author) => author.otherName}`.
7957
+ * The caller is responsible for using `selected` / `onChange` to control
7958
+ * the current tab.
7792
7959
  *
7793
- * Note: there are four overloads here to handle each combination of "HasIdIsh and HasNameId",
7794
- * "only has HasIdIsh", "only has HasNameIsh", and "neither".
7960
+ * If you want to tease apart Tabs from their TabContent, you can use the `Tab`
7961
+ * and `TabContent` components directly.
7795
7962
  */
7796
- declare function BoundSelectField<T extends HasIdIsh<V> & HasNameIsh, V extends Value>(props: Optional<BoundSelectFieldProps<T, V>, "getOptionLabel" | "getOptionValue">): JSX.Element;
7797
- declare function BoundSelectField<T extends HasIdIsh<V>, V extends Value>(props: Optional<BoundSelectFieldProps<T, V>, "getOptionValue">): JSX.Element;
7798
- declare function BoundSelectField<T extends HasNameIsh, V extends Value>(props: Optional<BoundSelectFieldProps<T, V>, "getOptionLabel">): JSX.Element;
7799
- declare function BoundSelectField<T, V extends Value>(props: BoundSelectFieldProps<T, V>): JSX.Element;
7800
-
7801
- type BoundSwitchFieldProps = Omit<SwitchProps, "selected" | "onChange" | "label"> & {
7802
- field: FieldState<boolean | null | undefined>;
7803
- /** Make optional so that callers can override if they want to. */
7804
- onChange?: (value: boolean) => void;
7805
- label?: string;
7806
- };
7807
- /** Wraps `Switch` and binds it to a form field. */
7808
- declare function BoundSwitchField(props: BoundSwitchFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7809
-
7810
- type BoundTextAreaFieldProps<X> = Omit<TextAreaFieldProps<X>, "value" | "onChange" | "label"> & {
7811
- label?: string;
7812
- field: FieldState<string | null | undefined>;
7813
- onChange?: (value: string | undefined) => void;
7814
- };
7815
- /** Wraps `TextAreaField` and binds it to a form field. */
7816
- declare function BoundTextAreaField<X extends Only<TextFieldXss, X>>(props: BoundTextAreaFieldProps<X>): _emotion_react_jsx_runtime.JSX.Element;
7817
-
7818
- type BoundTextFieldProps<X> = Omit<TextFieldProps<X>, "value" | "onChange" | "label"> & {
7819
- label?: string;
7820
- field: FieldState<string | null | undefined>;
7821
- onChange?: (value: string | undefined) => void;
7822
- };
7823
- /** Wraps `TextField` and binds it to a form field. */
7824
- declare function BoundTextField<X extends Only<TextFieldXss, X>>(props: BoundTextFieldProps<X>): _emotion_react_jsx_runtime.JSX.Element;
7825
-
7826
- type BoundToggleChipGroupFieldProps = Omit<ToggleChipGroupProps, "values" | "onChange" | "label"> & {
7827
- field: FieldState<string[] | null | undefined>;
7828
- /** Make optional so that callers can override if they want to. */
7829
- onChange?: (values: string[]) => void;
7830
- label?: string;
7831
- };
7832
- /** Wraps `ToggleChipGroup` and binds it to a form field. */
7833
- declare function BoundToggleChipGroupField(props: BoundToggleChipGroupFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7963
+ declare function TabsWithContent<V extends string, X extends Only<TabsContentXss, X>>(props: RequiredRenderTabs<V, X> | RequiredRenderRouteTabs<V, X>): _emotion_react_jsx_runtime.JSX.Element;
7964
+ declare function TabContent<V extends string>(props: Omit<RequiredRenderTabs<V, AnyObject>, "onChange"> | RequiredRenderRouteTabs<V, AnyObject>): _emotion_react_jsx_runtime.JSX.Element;
7965
+ /** The top list of tabs. */
7966
+ declare function Tabs<V extends string>(props: TabsProps<V, AnyObject> | RouteTabsProps<V, AnyObject>): _emotion_react_jsx_runtime.JSX.Element;
7834
7967
 
7835
- type BoundTreeSelectFieldProps<O, V extends Value> = Omit<TreeSelectFieldProps<O, V>, "values" | "onSelect" | "label"> & {
7836
- onSelect?: (options: TreeSelectResponse<O, V>) => void;
7837
- field: FieldState<V[] | null | undefined>;
7838
- label?: string;
7839
- };
7840
- /**
7841
- * Wraps `TreeSelectField` and binds it to a form field.
7842
- *
7843
- * To ease integration with "select this fooId" inputs, we can take a list
7844
- * of objects, `T` (i.e. `TradePartner[]`), but accept a field of type `V`
7845
- * (i.e. `string`).
7846
- *
7847
- * The caller has to tell us how to turn `T` into `V`, which is usually a
7848
- * lambda like `t => t.id`.
7849
- */
7850
- declare function BoundTreeSelectField<T, V extends Value>(props: BoundTreeSelectFieldProps<T, V>): JSX.Element;
7851
- declare function BoundTreeSelectField<T extends HasIdAndName<V>, V extends Value>(props: Optional<BoundTreeSelectFieldProps<T, V>, "getOptionLabel" | "getOptionValue">): JSX.Element;
7968
+ type TagXss = Margin | "backgroundColor" | "color";
7969
+ type TagType = "info" | "caution" | "warning" | "success" | "neutral";
7970
+ interface TagProps<X> {
7971
+ text: ReactNode;
7972
+ type?: TagType;
7973
+ xss?: X;
7974
+ icon?: IconKey;
7975
+ /** A tooltip will automatically be displayed if the text is truncated. Set to true to prevent this behavior.
7976
+ * @default false */
7977
+ preventTooltip?: boolean;
7978
+ }
7979
+ /** Tag used for indicating a status */
7980
+ declare function Tag<X extends Only<Xss<TagXss>, X>>(props: TagProps<X>): _emotion_react_jsx_runtime.JSX.Element;
7852
7981
 
7853
- type BoundFieldInputFnReturn = {
7854
- component: ReactNode;
7855
- minWidth: Properties["minWidth"];
7856
- };
7857
- type BoundFieldInputFn<F> = (field: ObjectState<F>[keyof F]) => BoundFieldInputFnReturn;
7858
- type CapitalizeFirstLetter<S extends string> = S extends `${infer First}${infer Rest}` ? `${Uppercase<First>}${Rest}` : S;
7859
- declare const reactNodePrefix = "reactNode";
7860
- type TReactNodePrefix<S extends string> = `${typeof reactNodePrefix}${CapitalizeFirstLetter<S>}`;
7861
- type CustomReactNodeKey = `${typeof reactNodePrefix}${string}`;
7862
- type BoundFormRowInputs<F> = Partial<{
7863
- [K in keyof F]: BoundFieldInputFn<F>;
7864
- }> & {
7865
- [K in CustomReactNodeKey]: ReactNode;
7866
- } & {
7867
- [K in keyof F as TReactNodePrefix<K & string>]: ReactNode;
7868
- };
7869
- type BoundFormInputConfig<F> = BoundFormRowInputs<F>[];
7870
- type BoundFormProps<F> = {
7871
- rows: BoundFormInputConfig<F>;
7872
- formState: ObjectState<F>;
7873
- };
7874
- /**
7875
- * A wrapper around the "Bound" form components for the form-state library to render a standard (and responsive) form layout.
7876
- * * Each row is an object of bound input components keyed by their formState key, which are rendered in a responsive flex layout.
7877
- * * Alternatively keys can be prefixed with "reactNode" to render any custom JSX node as-is.
7878
- * * Example usage:
7879
- * ```tsx
7880
- * <BoundFormComponent
7881
- rows={[
7882
- { firstName: boundTextField(), middleInitial: boundTextField(), lastName: boundTextField() },
7883
- { bio: boundTextAreaField() },
7884
- { reactNodeExample: <div>Custom JSX node</div> },
7885
- ]}
7886
- formState={formState}
7887
- />
7888
- * ```
7889
- */
7890
- declare function BoundForm<F>(props: BoundFormProps<F>): _emotion_react_jsx_runtime.JSX.Element;
7891
- /**
7892
- * These field component functions are thin wrappers around the `BoundFoo` components which omit
7893
- * certain props that the caller doesn't need to pass or we specifically want to restrict to drive UX consistency.
7894
- */
7895
- type KeysToOmit = "field";
7896
- declare function boundSelectField<O, V extends Value>(props: Omit<BoundSelectFieldProps<O, V>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7897
- declare function boundMultiSelectField<O, V extends Value>(props: Omit<BoundMultiSelectFieldProps<O, V>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7898
- declare function boundMultilineSelectField<O, V extends Value>(props: Omit<BoundMultiLineSelectFieldProps<O, V>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7899
- declare function boundTextField<X extends Only<TextFieldXss, X>>(props?: Omit<BoundTextFieldProps<X>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7900
- declare function boundTextAreaField<X extends Only<TextFieldXss, X>>(props?: Omit<BoundTextAreaFieldProps<X>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7901
- declare function boundNumberField(props?: Omit<BoundNumberFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7902
- declare function boundDateField(props?: Omit<BoundDateFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7903
- declare function boundDateRangeField(props?: Omit<BoundDateRangeFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7904
- declare function boundCheckboxField(props?: Omit<BoundCheckboxFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7905
- declare function boundCheckboxGroupField(props: Omit<BoundCheckboxGroupFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7906
- declare function boundIconCardField(props: Omit<BoundIconCardFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7907
- declare function boundIconCardGroupField<V extends Value>(props: Omit<BoundIconCardGroupFieldProps<V>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7908
- declare function boundRadioGroupField<K extends string>(props: Omit<BoundRadioGroupFieldProps<K>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7909
- declare function boundRichTextField(props?: Omit<BoundRichTextFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7910
- declare function boundSwitchField(props?: Omit<BoundSwitchFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7911
- declare function boundToggleChipGroupField(props: Omit<BoundToggleChipGroupFieldProps, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7912
- declare function boundTreeSelectField<O, V extends Value>(props: Omit<BoundTreeSelectFieldProps<O, V>, KeysToOmit>): (field: FieldState<any>) => BoundFieldInputFnReturn;
7982
+ declare function Toast(): _emotion_react_jsx_runtime.JSX.Element;
7913
7983
 
7914
- interface BoundSelectAndTextFieldProps<O, V extends Value, X> {
7915
- selectFieldProps: CompoundSelectFieldProps<O, V>;
7916
- textFieldProps: CompoundTextFieldProps<X>;
7917
- compact?: boolean;
7984
+ interface ToastNoticeProps extends Omit<BannerProps, "onClose"> {
7918
7985
  }
7919
- declare function BoundSelectAndTextField<O, V extends Value, X extends Only<TextFieldXss, X>>(props: BoundSelectAndTextFieldProps<O, V, X>): JSX.Element;
7920
- declare function BoundSelectAndTextField<O extends HasIdAndName<V>, V extends Value, X extends Only<TextFieldXss, X>>(props: Omit<BoundSelectAndTextFieldProps<O, V, X>, "selectFieldProps"> & {
7921
- selectFieldProps: Optional<CompoundSelectFieldProps<O, V>, "getOptionValue" | "getOptionLabel">;
7922
- }): JSX.Element;
7923
- type CompoundSelectFieldProps<O, V extends Value> = Omit<BoundSelectFieldProps<O, V>, "compact">;
7924
- type CompoundTextFieldProps<X> = Omit<BoundTextFieldProps<X>, "compact">;
7925
7986
 
7926
- interface FormHeadingProps {
7927
- title: string;
7928
- xss?: Xss<Margin>;
7929
- isFirst?: boolean;
7930
- }
7931
- declare function FormHeading(props: FormHeadingProps): _emotion_react_jsx_runtime.JSX.Element;
7932
- declare namespace FormHeading {
7933
- var isFormHeading: boolean;
7987
+ interface UseToastProps {
7988
+ showToast: (props: ToastNoticeProps) => void;
7989
+ clear: () => void;
7934
7990
  }
7991
+ declare function useToast(): UseToastProps;
7935
7992
 
7936
- type FormWidth =
7937
- /** 320px. */
7938
- "sm"
7939
- /** 480px, works well in a small, single-stack form. */
7940
- | "md"
7941
- /** 550px, works well for showing side-by-side/double-stack fields. */
7942
- | "lg"
7943
- /** 100%, works well for showing full width fields, or deferring to the parent width. */
7944
- | "full";
7945
- interface FormLinesProps extends Pick<PresentationFieldProps, "labelStyle" | "labelLeftFieldWidth" | "labelSuffix" | "compact"> {
7946
- /** Let the user interleave group-less lines and grouped lines. */
7993
+ interface TooltipProps {
7994
+ /** The content that shows up when hovered */
7995
+ title: ReactNode;
7947
7996
  children: ReactNode;
7948
- width?: FormWidth;
7949
- /** Increment property (e.g. 1 = 8px). Defines space between form fields */
7950
- gap?: number;
7997
+ placement?: Placement;
7998
+ delay?: number;
7999
+ disabled?: boolean;
8000
+ bgColor?: Palette;
7951
8001
  }
7952
- /**
7953
- * Applies standard Form layout/size/spacing between lines.
7954
- *
7955
- * Lines can either be individual form fields, or a group of form fields
7956
- * (see the `FieldGroup` component), where they will be laid out side-by-side.
7957
- */
7958
- declare function FormLines(props: FormLinesProps): _emotion_react_jsx_runtime.JSX.Element;
7959
- /** Draws a line between form lines. */
7960
- declare function FormDivider(): _emotion_react_jsx_runtime.JSX.Element;
7961
- /** Groups multiple fields side-by-side. */
7962
- declare function FieldGroup(props: {
7963
- /** The legend/title for this group. */
7964
- title?: string;
7965
- children: JSX.Element[];
7966
- /** An array of widths for each child, if a number we use `fr` units. */
7967
- widths?: Array<number | string>;
8002
+ declare function Tooltip(props: TooltipProps): _emotion_react_jsx_runtime.JSX.Element;
8003
+ type Placement = "top" | "bottom" | "left" | "right" | "auto";
8004
+ declare function maybeTooltip(props: Omit<TooltipProps, "children"> & {
8005
+ children: ReactNode;
7968
8006
  }): _emotion_react_jsx_runtime.JSX.Element;
7969
-
7970
- interface StaticFieldProps {
7971
- label: ReactNode;
7972
- value?: string;
7973
- children?: ReactNode;
7974
- labelStyle?: PresentationFieldProps["labelStyle"];
7975
- }
7976
- declare function StaticField(props: StaticFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7977
-
7978
- type SubmitButtonProps<T> = Omit<ButtonProps, "label"> & {
7979
- label?: ButtonProps["label"];
7980
- form: ObjectState<T>;
7981
- };
7982
- /** Provides a Button that will auto-disable if `formState` is invalid. */
7983
- declare function SubmitButton<T>(props: SubmitButtonProps<T>): _emotion_react_jsx_runtime.JSX.Element;
8007
+ declare function resolveTooltip(disabled?: boolean | ReactNode, tooltip?: ReactNode, readOnly?: boolean | ReactNode): ReactNode | undefined;
7984
8008
 
7985
8009
  type BreakpointsType = Record<Breakpoint, boolean>;
7986
8010
  /**
@@ -8109,4 +8133,4 @@ declare function useSessionStorage<T>(key: string, defaultValue: T): UseSessionS
8109
8133
  */
8110
8134
  declare function defaultTestId(label: string): string;
8111
8135
 
8112
- export { ASC, Accordion, AccordionList, type AccordionProps, type AccordionSize, AutoSaveIndicator, AutoSaveStatus, AutoSaveStatusContext, AutoSaveStatusProvider, Autocomplete, type AutocompleteProps, Avatar, AvatarButton, type AvatarButtonProps, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, Banner, type BannerProps, type BannerTypes, BaseFilter, type BeamButtonProps, type BeamFocusableProps, BeamProvider, type BeamTextFieldProps, BoundCheckboxField, type BoundCheckboxFieldProps, BoundCheckboxGroupField, type BoundCheckboxGroupFieldProps, BoundChipSelectField, BoundDateField, type BoundDateFieldProps, BoundDateRangeField, type BoundDateRangeFieldProps, BoundForm, type BoundFormInputConfig, type BoundFormProps, BoundIconCardField, type BoundIconCardFieldProps, BoundIconCardGroupField, type BoundIconCardGroupFieldProps, BoundMultiLineSelectField, type BoundMultiLineSelectFieldProps, BoundMultiSelectField, type BoundMultiSelectFieldProps, BoundNumberField, type BoundNumberFieldProps, BoundRadioGroupField, type BoundRadioGroupFieldProps, BoundRichTextField, type BoundRichTextFieldProps, BoundSelectAndTextField, BoundSelectField, type BoundSelectFieldProps, BoundSwitchField, type BoundSwitchFieldProps, BoundTextAreaField, type BoundTextAreaFieldProps, BoundTextField, type BoundTextFieldProps, BoundToggleChipGroupField, type BoundToggleChipGroupFieldProps, BoundTreeSelectField, type BoundTreeSelectFieldProps, type Breakpoint, Breakpoints, Button, ButtonDatePicker, ButtonGroup, type ButtonGroupButton, type ButtonGroupProps, ButtonMenu, ButtonModal, type ButtonModalProps, type ButtonProps, type ButtonSize, type ButtonVariant, type CheckFn, Checkbox, CheckboxGroup, type CheckboxGroupItemOption, type CheckboxGroupProps, type CheckboxProps, Chip, type ChipProps, ChipSelectField, type ChipSelectFieldProps, type ChipType, ChipTypes, type ChipValue, Chips, type ChipsProps, CollapseToggle, CollapsedContext, ConfirmCloseModal, Container, type ContentStack, Copy, Css, CssReset, DESC, DateField, type DateFieldMode, type DateFieldModeTuple, type DateFieldProps, type DateFilterValue, DateRangeField, type DateRangeFieldProps, type DateRangeFilterValue, type Direction, type DiscriminateUnion, type DividerMenuItemType, DnDGrid, DnDGridItemHandle, type DnDGridItemHandleProps, type DnDGridItemProps, type DnDGridProps, type DragData, EXPANDABLE_HEADER, EditColumnsButton, ErrorMessage, FieldGroup, type Filter, type FilterDefs, type FilterImpls, FilterModal, _Filters as Filters, type Font, FormDivider, FormHeading, type FormHeadingProps, FormLines, type FormLinesProps, type FormWidth, FullBleed, type GridCellAlignment, type GridCellContent, type GridColumn, type GridColumnWithId, type GridDataRow, type GridRowKind, type GridRowLookup, type GridSortConfig, type GridStyle, GridTable, type GridTableApi, type GridTableCollapseToggleProps, type GridTableDefaults, type GridTableProps, type GridTableScrollOptions, type GridTableXss, type GroupByHook, HB_QUIPS_FLAVOR, HB_QUIPS_MISSION, HEADER, type HasIdAndName, HbLoadingSpinner, HbSpinnerProvider, HelperText, Icon, IconButton, type IconButtonProps, IconCard, type IconCardProps, type IconKey, type IconMenuItemType, type IconProps, Icons, type IfAny, type ImageMenuItemType, type InfiniteScroll, type InputStylePalette, KEPT_GROUP, type Kinded, Loader, LoadingSkeleton, type LoadingSkeletonProps, type Margin, MaxLines, type MaxLinesProps, type MaybeFn, type MenuItem, type MenuSection, ModalBody, ModalFilterItem, ModalFooter, ModalHeader, type ModalProps, type ModalSize, MultiLineSelectField, type MultiLineSelectFieldProps, MultiSelectField, type MultiSelectFieldProps, NavLink, type NestedOption, type NestedOptionsOrLoad, NumberField, type NumberFieldProps, type NumberFieldType, type OffsetAndLimit, type OnRowDragEvent, type OnRowSelect, type Only, type OpenDetailOpts, type OpenInDrawerOpts, OpenModal, type OpenRightPaneOpts, type Optional, type Padding, type PageNumberAndSize, type PageSettings, Pagination, Palette, type Pin, type Placement, type PresentationFieldProps, PresentationProvider, PreventBrowserScroll, type Properties, type RadioFieldOption, RadioGroupField, type RadioGroupFieldProps, type RenderAs, type RenderCellFn, ResponsiveGrid, ResponsiveGridItem, type ResponsiveGridItemProps, type ResponsiveGridProps, RichTextField, RichTextFieldImpl, type RichTextFieldProps, RightPaneContext, RightPaneLayout, type RightPaneLayoutContextProps, RightPaneProvider, type RouteTab, type RouteTabWithContent, Row, type RowStyle, type RowStyles, ScrollShadows, ScrollableContent, ScrollableParent, SelectField, type SelectFieldProps, SelectToggle, type SelectedState, type SimpleHeaderAndData, SortHeader, type SortOn, type SortState, StaticField, type Step, Stepper, type StepperProps, SubmitButton, type SubmitButtonProps, SuperDrawerContent, SuperDrawerHeader, SuperDrawerWidth, Switch, type SwitchProps, TOTALS, type Tab, TabContent, type TabWithContent, TableState, TableStateContext, Tabs, TabsWithContent, Tag, type TagType, type TestIds, TextAreaField, type TextAreaFieldProps, TextField, type TextFieldApi, type TextFieldInternalProps, type TextFieldProps, type TextFieldXss, Toast, ToggleButton, type ToggleButtonProps, ToggleChip, ToggleChipGroup, type ToggleChipGroupProps, type ToggleChipProps, ToggleChips, type ToggleChipsProps, Tooltip, TreeSelectField, type TreeSelectFieldProps, type TriggerNoticeProps, type Typography, type UseModalHook, type UseQueryState, type UseRightPaneHook, type UseSnackbarHook, type UseSuperDrawerHook, type UseToastProps, type Value, type Xss, actionColumn, applyRowFn, assignDefaultColumnIds, booleanFilter, boundCheckboxField, boundCheckboxGroupField, boundDateField, boundDateRangeField, boundIconCardField, boundIconCardGroupField, boundMultiSelectField, boundMultilineSelectField, boundNumberField, boundRadioGroupField, boundRichTextField, boundSelectField, boundSwitchField, boundTextAreaField, boundTextField, boundToggleChipGroupField, boundTreeSelectField, calcColumnSizes, cardStyle, checkboxFilter, collapseColumn, column, condensedStyle, createRowLookup, dateColumn, dateFilter, dateFormats, dateRangeFilter, defaultPage, defaultRenderFn, defaultStyle, defaultTestId, dragHandleColumn, emptyCell, ensureClientSideSortValueIsSortable, filterTestIdPrefix, formatDate, formatDateRange, formatValue, generateColumnId, getAlignment, getDateFormat, getFirstOrLastCellCss, getJustification, getTableRefWidthStyles, getTableStyles, headerRenderFn, hoverStyles, iconButtonContrastStylesHover, iconButtonStylesHover, iconCardStylesHover, increment, insertAtIndex, isCursorBelowMidpoint, isGridCellContent, isJSX, isListBoxSection, isPersistentItem, isPersistentKey, isValidDate, loadArrayOrUndefined, matchesFilter, maybeApplyFunction, maybeInc, maybeTooltip, multiFilter, navLink, newMethodMissingProxy, nonKindGridColumnKeys, numberRangeFilter, numericColumn, parseDate, parseDateRange, persistentItemPrefix, pressedStyles, px, recursivelyGetContainingRow, reservedRowKinds, resolveTooltip, rowClickRenderFn, rowLinkRenderFn, scrollContainerBottomPadding, selectColumn, selectedStyles, setDefaultStyle, setGridTableDefaults, setRunningInJest, shouldSkipScrollTo, simpleDataRows, simpleHeader, singleFilter, sortFn, sortRows, switchFocusStyles, switchHoverStyles, switchSelectedHoverStyles, toContent, toLimitAndOffset, toPageNumberSize, toggleFilter, toggleFocusStyles, toggleHoverStyles, togglePressStyles, treeFilter, updateFilter, useAutoSaveStatus, useBreakpoint, useComputed, useDnDGridItem, type useDnDGridItemProps, useFilter, useGridTableApi, useGroupBy, useHover, useModal, usePersistedFilter, useQueryState, useResponsiveGrid, useResponsiveGridItem, type useResponsiveGridProps, useRightPane, useRightPaneContext, useScrollableParent, useSessionStorage, useSetupColumnSizes, useSnackbar, useSuperDrawer, useTestIds, useToast, useTreeSelectFieldProvider, visit, zIndices };
8136
+ export { ASC, Accordion, AccordionList, type AccordionProps, type AccordionSize, AutoSaveIndicator, AutoSaveStatus, AutoSaveStatusContext, AutoSaveStatusProvider, Autocomplete, type AutocompleteProps, Avatar, AvatarButton, type AvatarButtonProps, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, Banner, type BannerProps, type BannerTypes, BaseFilter, type BeamButtonProps, type BeamFocusableProps, BeamProvider, type BeamTextFieldProps, BoundCheckboxField, type BoundCheckboxFieldProps, BoundCheckboxGroupField, type BoundCheckboxGroupFieldProps, BoundChipSelectField, BoundDateField, type BoundDateFieldProps, BoundDateRangeField, type BoundDateRangeFieldProps, BoundForm, type BoundFormInputConfig, type BoundFormProps, BoundIconCardField, type BoundIconCardFieldProps, BoundIconCardGroupField, type BoundIconCardGroupFieldProps, BoundMultiLineSelectField, type BoundMultiLineSelectFieldProps, BoundMultiSelectField, type BoundMultiSelectFieldProps, BoundNumberField, type BoundNumberFieldProps, BoundRadioGroupField, type BoundRadioGroupFieldProps, BoundRichTextField, type BoundRichTextFieldProps, BoundSelectAndTextField, BoundSelectField, type BoundSelectFieldProps, BoundSwitchField, type BoundSwitchFieldProps, BoundTextAreaField, type BoundTextAreaFieldProps, BoundTextField, type BoundTextFieldProps, BoundToggleChipGroupField, type BoundToggleChipGroupFieldProps, BoundTreeSelectField, type BoundTreeSelectFieldProps, type Breakpoint, Breakpoints, Button, ButtonDatePicker, ButtonGroup, type ButtonGroupButton, type ButtonGroupProps, ButtonMenu, ButtonModal, type ButtonModalProps, type ButtonProps, type ButtonSize, type ButtonVariant, type CheckFn, Checkbox, CheckboxGroup, type CheckboxGroupItemOption, type CheckboxGroupProps, type CheckboxProps, Chip, type ChipProps, ChipSelectField, type ChipSelectFieldProps, type ChipType, ChipTypes, type ChipValue, Chips, type ChipsProps, CollapseToggle, CollapsedContext, ConfirmCloseModal, Container, type ContentStack, Copy, Css, CssReset, DESC, DateField, type DateFieldMode, type DateFieldModeTuple, type DateFieldProps, type DateFilterValue, DateRangeField, type DateRangeFieldProps, type DateRangeFilterValue, type Direction, type DiscriminateUnion, type DividerMenuItemType, DnDGrid, DnDGridItemHandle, type DnDGridItemHandleProps, type DnDGridItemProps, type DnDGridProps, type DragData, EXPANDABLE_HEADER, EditColumnsButton, ErrorMessage, FieldGroup, type Filter, type FilterDefs, type FilterImpls, FilterModal, _Filters as Filters, type Font, FormDivider, FormHeading, type FormHeadingProps, FormLines, type FormLinesProps, FormPageLayout, type FormSectionConfig, type FormWidth, FullBleed, type GridCellAlignment, type GridCellContent, type GridColumn, type GridColumnWithId, type GridDataRow, type GridRowKind, type GridRowLookup, type GridSortConfig, type GridStyle, GridTable, type GridTableApi, type GridTableCollapseToggleProps, type GridTableDefaults, type GridTableProps, type GridTableScrollOptions, type GridTableXss, type GroupByHook, HB_QUIPS_FLAVOR, HB_QUIPS_MISSION, HEADER, type HasIdAndName, HbLoadingSpinner, HbSpinnerProvider, HelperText, Icon, IconButton, type IconButtonProps, IconCard, type IconCardProps, type IconKey, type IconMenuItemType, type IconProps, Icons, type IfAny, type ImageMenuItemType, type InfiniteScroll, type InputStylePalette, KEPT_GROUP, type Kinded, Loader, LoadingSkeleton, type LoadingSkeletonProps, type Margin, MaxLines, type MaxLinesProps, type MaybeFn, type MenuItem, type MenuSection, ModalBody, ModalFilterItem, ModalFooter, ModalHeader, type ModalProps, type ModalSize, MultiLineSelectField, type MultiLineSelectFieldProps, MultiSelectField, type MultiSelectFieldProps, NavLink, type NestedOption, type NestedOptionsOrLoad, NumberField, type NumberFieldProps, type NumberFieldType, type OffsetAndLimit, type OnRowDragEvent, type OnRowSelect, type Only, type OpenDetailOpts, type OpenInDrawerOpts, OpenModal, type OpenRightPaneOpts, type Optional, type Padding, type PageNumberAndSize, type PageSettings, Pagination, Palette, type Pin, type Placement, type PresentationFieldProps, PresentationProvider, PreventBrowserScroll, type Properties, type RadioFieldOption, RadioGroupField, type RadioGroupFieldProps, type RenderAs, type RenderCellFn, ResponsiveGrid, ResponsiveGridItem, type ResponsiveGridItemProps, type ResponsiveGridProps, RichTextField, RichTextFieldImpl, type RichTextFieldProps, RightPaneContext, RightPaneLayout, type RightPaneLayoutContextProps, RightPaneProvider, type RouteTab, type RouteTabWithContent, Row, type RowStyle, type RowStyles, ScrollShadows, ScrollableContent, ScrollableParent, SelectField, type SelectFieldProps, SelectToggle, type SelectedState, type SimpleHeaderAndData, SortHeader, type SortOn, type SortState, StaticField, type Step, Stepper, type StepperProps, SubmitButton, type SubmitButtonProps, SuperDrawerContent, SuperDrawerHeader, SuperDrawerWidth, Switch, type SwitchProps, TOTALS, type Tab, TabContent, type TabWithContent, TableState, TableStateContext, Tabs, TabsWithContent, Tag, type TagType, type TestIds, TextAreaField, type TextAreaFieldProps, TextField, type TextFieldApi, type TextFieldInternalProps, type TextFieldProps, type TextFieldXss, Toast, ToggleButton, type ToggleButtonProps, ToggleChip, ToggleChipGroup, type ToggleChipGroupProps, type ToggleChipProps, ToggleChips, type ToggleChipsProps, Tooltip, TreeSelectField, type TreeSelectFieldProps, type TriggerNoticeProps, type Typography, type UseModalHook, type UseQueryState, type UseRightPaneHook, type UseSnackbarHook, type UseSuperDrawerHook, type UseToastProps, type Value, type Xss, actionColumn, applyRowFn, assignDefaultColumnIds, booleanFilter, boundCheckboxField, boundCheckboxGroupField, boundDateField, boundDateRangeField, boundIconCardField, boundIconCardGroupField, boundMultiSelectField, boundMultilineSelectField, boundNumberField, boundRadioGroupField, boundRichTextField, boundSelectField, boundSwitchField, boundTextAreaField, boundTextField, boundToggleChipGroupField, boundTreeSelectField, calcColumnSizes, cardStyle, checkboxFilter, collapseColumn, column, condensedStyle, createRowLookup, dateColumn, dateFilter, dateFormats, dateRangeFilter, defaultPage, defaultRenderFn, defaultStyle, defaultTestId, dragHandleColumn, emptyCell, ensureClientSideSortValueIsSortable, filterTestIdPrefix, formatDate, formatDateRange, formatValue, generateColumnId, getAlignment, getDateFormat, getFirstOrLastCellCss, getJustification, getTableRefWidthStyles, getTableStyles, headerRenderFn, hoverStyles, iconButtonContrastStylesHover, iconButtonStylesHover, iconCardStylesHover, increment, insertAtIndex, isCursorBelowMidpoint, isGridCellContent, isJSX, isListBoxSection, isPersistentItem, isPersistentKey, isValidDate, loadArrayOrUndefined, matchesFilter, maybeApplyFunction, maybeInc, maybeTooltip, multiFilter, navLink, newMethodMissingProxy, nonKindGridColumnKeys, numberRangeFilter, numericColumn, parseDate, parseDateRange, persistentItemPrefix, pressedStyles, px, recursivelyGetContainingRow, reservedRowKinds, resolveTooltip, rowClickRenderFn, rowLinkRenderFn, scrollContainerBottomPadding, selectColumn, selectedStyles, setDefaultStyle, setGridTableDefaults, setRunningInJest, shouldSkipScrollTo, simpleDataRows, simpleHeader, singleFilter, sortFn, sortRows, switchFocusStyles, switchHoverStyles, switchSelectedHoverStyles, toContent, toLimitAndOffset, toPageNumberSize, toggleFilter, toggleFocusStyles, toggleHoverStyles, togglePressStyles, treeFilter, updateFilter, useAutoSaveStatus, useBreakpoint, useComputed, useDnDGridItem, type useDnDGridItemProps, useFilter, useGridTableApi, useGroupBy, useHover, useModal, usePersistedFilter, useQueryState, useResponsiveGrid, useResponsiveGridItem, type useResponsiveGridProps, useRightPane, useRightPaneContext, useScrollableParent, useSessionStorage, useSetupColumnSizes, useSnackbar, useSuperDrawer, useTestIds, useToast, useTreeSelectFieldProvider, visit, zIndices };