@homebound/beam 2.417.11 → 3.0.0-alpha.1

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
@@ -1,8 +1,7 @@
1
1
  import * as csstype from 'csstype';
2
2
  import { Properties as Properties$1 } from 'csstype';
3
3
  import * as React$1 from 'react';
4
- import React__default, { PropsWithChildren, AriaAttributes, ReactNode, RefObject, ButtonHTMLAttributes, ReactElement, MutableRefObject, Dispatch, SetStateAction, KeyboardEvent, LabelHTMLAttributes, InputHTMLAttributes, TextareaHTMLAttributes, Key, HTMLAttributes, ReactPortal } from 'react';
5
- import * as _emotion_react_jsx_runtime from '@emotion/react/jsx-runtime';
4
+ import React__default, { PropsWithChildren, AriaAttributes, ReactNode, ReactElement, MutableRefObject, Dispatch, SetStateAction, RefObject, ButtonHTMLAttributes, KeyboardEvent, LabelHTMLAttributes, InputHTMLAttributes, TextareaHTMLAttributes, Key, HTMLAttributes, ReactPortal } from 'react';
6
5
  import { DOMProps, PressEvent, Key as Key$1 } from '@react-types/shared';
7
6
  import { VirtuosoHandle, ListRange } from 'react-virtuoso';
8
7
  import { AriaButtonProps } from '@react-types/button';
@@ -15,20 +14,26 @@ import { NumberFieldAria } from '@react-aria/numberfield';
15
14
  /** Given a type X, and the user's proposed type T, only allow keys in X and nothing else. */
16
15
  type Only<X, T> = X & Record<Exclude<keyof T, keyof X>, never>;
17
16
  type Properties = Properties$1<string | 0, string>;
17
+ /** A marker token used with `when`/`markerOf` etc. */
18
+ type Marker = symbol;
18
19
  type Typography = "xs2" | "xs2Sb" | "xs" | "xsSb" | "sm" | "smSb" | "md" | "mdSb" | "lg" | "xl" | "xl2";
20
+ declare module "react" {
21
+ interface HTMLAttributes<T> {
22
+ css?: Properties;
23
+ }
24
+ interface SVGAttributes<T> {
25
+ css?: Properties;
26
+ }
27
+ }
19
28
  type Opts<T> = {
20
29
  rules: T;
21
30
  enabled: boolean;
22
- important: boolean;
23
31
  selector: string | undefined;
32
+ elseApplied: boolean;
24
33
  };
25
34
  declare class CssBuilder<T extends Properties> {
26
35
  private opts;
27
36
  constructor(opts: Opts<T>);
28
- private get rules();
29
- private get enabled();
30
- private get selector();
31
- private newCss;
32
37
  /** Sets `borderStyle: "solid"; borderWidth: "1px"`. */
33
38
  get ba(): CssBuilder<T & {
34
39
  borderStyle: csstype.Property.BorderStyle | undefined;
@@ -4013,7 +4018,7 @@ declare class CssBuilder<T extends Properties> {
4013
4018
  } & {
4014
4019
  backgroundColor: csstype.Property.BackgroundColor | undefined;
4015
4020
  }>;
4016
- /** Sets `position: "absolute"; overflow: "hidden"; clip: "inset(50%)"; clipPath: ""; border: 0; height: "1px"; margin: "-1px"; width: "1px"; padding: 0; whiteSpace: "nowrap"; opacity: 0`. */
4021
+ /** Sets `position: "absolute"; overflow: "hidden"; clip: "inset(50%)"; clipPath: "none"; border: 0; height: "1px"; margin: "-1px"; width: "1px"; padding: 0; whiteSpace: "nowrap"; opacity: 0`. */
4017
4022
  get visuallyHidden(): CssBuilder<T & {
4018
4023
  position: csstype.Property.Position | undefined;
4019
4024
  } & {
@@ -4042,11 +4047,40 @@ declare class CssBuilder<T extends Properties> {
4042
4047
  content: csstype.Property.Content | undefined;
4043
4048
  }>;
4044
4049
  get $(): T;
4045
- if(bp: Breakpoint): CssBuilder<T>;
4046
- if(cond: boolean): CssBuilder<T>;
4047
- if(attr: string, value: boolean | string): CssBuilder<T>;
4048
4050
  get onHover(): CssBuilder<T>;
4049
- ifContainer(props: ContainerProps): CssBuilder<T>;
4051
+ get onFocus(): CssBuilder<T>;
4052
+ get onFocusVisible(): CssBuilder<T>;
4053
+ get onFocusWithin(): CssBuilder<T>;
4054
+ get onActive(): CssBuilder<T>;
4055
+ get onDisabled(): CssBuilder<T>;
4056
+ /** Marks this element as a default hover marker (for ancestor pseudo selectors). */
4057
+ get marker(): CssBuilder<T>;
4058
+ /** Marks this element with a user-defined marker. */
4059
+ markerOf(_marker: Marker): CssBuilder<T>;
4060
+ /** Creates a marker token for use with markerOf() and when(). */
4061
+ newMarker(): Marker;
4062
+ typography(key: Typography): CssBuilder<T>;
4063
+ /**
4064
+ * Styles after this `when` are applied based on a relationship + pseudo selector.
4065
+ *
4066
+ * `when("ancestor", ":hover")` — react to ancestor hover
4067
+ * `when("descendant", ":focus")` — react to descendant focus
4068
+ * `when("siblingAfter", ":hover")` — react to a following sibling's hover
4069
+ */
4070
+ when(relationship: "ancestor" | "descendant" | "anySibling" | "siblingBefore" | "siblingAfter", pseudo: string): CssBuilder<T>;
4071
+ /**
4072
+ * Styles after this `when` are applied based on a relationship-to-marker + pseudo selector.
4073
+ *
4074
+ * `when("ancestor", marker, ":hover")` — react to a specific ancestor's hover
4075
+ */
4076
+ when(relationship: "ancestor" | "descendant" | "anySibling" | "siblingBefore" | "siblingAfter", marker: Marker, pseudo: string): CssBuilder<T>;
4077
+ ifContainer(_props: {
4078
+ name?: string;
4079
+ lt?: number;
4080
+ gt?: number;
4081
+ }): this;
4082
+ /** Apply styles within a pseudo-element (e.g. `"::placeholder"`, `"::selection"`). */
4083
+ element(_pseudoElement: string): CssBuilder<T>;
4050
4084
  get ifPrint(): CssBuilder<T>;
4051
4085
  get ifSm(): CssBuilder<T>;
4052
4086
  get ifMd(): CssBuilder<T>;
@@ -4055,18 +4089,23 @@ declare class CssBuilder<T extends Properties> {
4055
4089
  get ifMdAndDown(): CssBuilder<T>;
4056
4090
  get ifLg(): CssBuilder<T>;
4057
4091
  get ifMdOrLg(): CssBuilder<T>;
4092
+ /** Conditionally apply styles when `cond` is true. */
4093
+ if(cond: boolean): CssBuilder<T>;
4094
+ /** Apply styles within a media query (e.g. `Breakpoints.sm` or a raw `@media` string). */
4095
+ if(mediaQuery: string): CssBuilder<T>;
4058
4096
  get else(): CssBuilder<T>;
4059
- get important(): CssBuilder<T>;
4060
- /** Adds new properties, either a specific key/value or a Properties object, to the current css. */
4061
4097
  add<P extends Properties>(props: P): CssBuilder<T & P>;
4062
4098
  add<K extends keyof Properties>(prop: K, value: Properties[K]): CssBuilder<T & {
4063
4099
  [U in K]: Properties[K];
4064
4100
  }>;
4065
- /** Adds new properties, either a specific key/value or a Properties object, to a nested selector. */
4066
- addIn<P extends Properties>(selector: string, props: P | undefined): CssBuilder<T & P>;
4067
- addIn<K extends keyof Properties>(selector: string, prop: K, value: Properties[K]): CssBuilder<T & {
4068
- [U in K]: Properties[K];
4069
- }>;
4101
+ /** Inline a partial style hash, skipping any undefined values. */
4102
+ addCss<P extends Properties>(props: P): CssBuilder<T & P>;
4103
+ /** Convert a style hash into `{ className, style }` props for manual spreading into non-`css=` contexts. */
4104
+ props(styles: Properties): Record<string, unknown>;
4105
+ private get rules();
4106
+ private get enabled();
4107
+ private get selector();
4108
+ private newCss;
4070
4109
  }
4071
4110
  /** Converts `inc` into pixels value with a `px` suffix. */
4072
4111
  declare function maybeInc(inc: number | string): string;
@@ -4158,32 +4197,14 @@ type Font = "fontSize" | "fontWeight" | "lineHeight";
4158
4197
  type Breakpoint = "print" | "sm" | "md" | "smOrMd" | "mdAndUp" | "mdAndDown" | "lg" | "mdOrLg";
4159
4198
  declare enum Breakpoints {
4160
4199
  print = "@media print",
4161
- sm = "@media screen and (max-width:599px)",
4162
- md = "@media screen and (min-width:600px) and (max-width:1024px)",
4163
- smOrMd = "@media screen and (max-width:1024px)",
4164
- mdAndUp = "@media screen and (min-width:600px)",
4165
- mdAndDown = "@media screen and (max-width:1024px)",
4166
- lg = "@media screen and (min-width:1025px)",
4167
- mdOrLg = "@media screen and (min-width:600px)"
4200
+ sm = "@media screen and (max-width: 599px)",
4201
+ md = "@media screen and (min-width: 600px) and (max-width: 1024px)",
4202
+ smOrMd = "@media screen and (max-width: 1024px)",
4203
+ mdAndUp = "@media screen and (min-width: 600px)",
4204
+ mdAndDown = "@media screen and (max-width: 1024px)",
4205
+ lg = "@media screen and (min-width: 1025px)",
4206
+ mdOrLg = "@media screen and (min-width: 600px)"
4168
4207
  }
4169
- /**
4170
- * Utility to help write `@container` queries
4171
- *
4172
- * @param name - The name of the container.
4173
- * @param lt - The maximum width of the container inclusive.
4174
- * @param gt - The minimum width of the container exclusive.
4175
- */
4176
- type ContainerProps = {
4177
- name?: string;
4178
- } & ({
4179
- lt: number;
4180
- } | {
4181
- gt: number;
4182
- } | {
4183
- lt: number;
4184
- gt: number;
4185
- });
4186
- declare function Container(props: ContainerProps): string;
4187
4208
 
4188
4209
  type HasIdIsh<V = string> = {
4189
4210
  id: V;
@@ -4234,7 +4255,7 @@ type AutoSaveStatusProviderProps = PropsWithChildren<{
4234
4255
  /** After a successful save, reset Status back to `Idle` after this many milliseconds */
4235
4256
  resetToIdleTimeout?: number;
4236
4257
  }>;
4237
- declare function AutoSaveStatusProvider({ children, resetToIdleTimeout }: AutoSaveStatusProviderProps): _emotion_react_jsx_runtime.JSX.Element;
4258
+ declare function AutoSaveStatusProvider({ children, resetToIdleTimeout }: AutoSaveStatusProviderProps): JSX.Element;
4238
4259
 
4239
4260
  /**
4240
4261
  * Provides access to the current auto-save status, i.e. idle/saving/done.
@@ -4260,7 +4281,7 @@ interface IconProps extends AriaAttributes, DOMProps {
4260
4281
  xss?: Xss<Margin | "visibility" | "flexShrink">;
4261
4282
  tooltip?: ReactNode;
4262
4283
  }
4263
- declare const Icon: React__default.MemoExoticComponent<(props: IconProps) => _emotion_react_jsx_runtime.JSX.Element>;
4284
+ declare const Icon: React__default.MemoExoticComponent<(props: IconProps) => JSX.Element>;
4264
4285
  /**
4265
4286
  * Map of icons paths mapped to their respective name.
4266
4287
  *
@@ -4271,165 +4292,165 @@ declare const Icon: React__default.MemoExoticComponent<(props: IconProps) => _em
4271
4292
  * 3. Remove all fill attributes as these will be controlled by the wrapping component
4272
4293
  */
4273
4294
  declare const Icons: {
4274
- kanban: _emotion_react_jsx_runtime.JSX.Element;
4275
- expand: _emotion_react_jsx_runtime.JSX.Element;
4276
- collapse: _emotion_react_jsx_runtime.JSX.Element;
4277
- drag: _emotion_react_jsx_runtime.JSX.Element;
4278
- move: _emotion_react_jsx_runtime.JSX.Element;
4279
- x: _emotion_react_jsx_runtime.JSX.Element;
4280
- loader: _emotion_react_jsx_runtime.JSX.Element;
4281
- link: _emotion_react_jsx_runtime.JSX.Element;
4282
- linkExternal: _emotion_react_jsx_runtime.JSX.Element;
4283
- upload: _emotion_react_jsx_runtime.JSX.Element;
4284
- download: _emotion_react_jsx_runtime.JSX.Element;
4285
- checkboxChecked: _emotion_react_jsx_runtime.JSX.Element;
4286
- checkbox: _emotion_react_jsx_runtime.JSX.Element;
4287
- check: _emotion_react_jsx_runtime.JSX.Element;
4288
- search: _emotion_react_jsx_runtime.JSX.Element;
4289
- comment: _emotion_react_jsx_runtime.JSX.Element;
4290
- commentFilled: _emotion_react_jsx_runtime.JSX.Element;
4291
- plus: _emotion_react_jsx_runtime.JSX.Element;
4292
- minus: _emotion_react_jsx_runtime.JSX.Element;
4293
- pencil: _emotion_react_jsx_runtime.JSX.Element;
4294
- cloudUpload: _emotion_react_jsx_runtime.JSX.Element;
4295
- toggleOn: _emotion_react_jsx_runtime.JSX.Element;
4296
- trash: _emotion_react_jsx_runtime.JSX.Element;
4297
- refresh: _emotion_react_jsx_runtime.JSX.Element;
4298
- eyeball: _emotion_react_jsx_runtime.JSX.Element;
4299
- thumbsUp: _emotion_react_jsx_runtime.JSX.Element;
4300
- verticalDots: _emotion_react_jsx_runtime.JSX.Element;
4301
- star: _emotion_react_jsx_runtime.JSX.Element;
4302
- starFilled: _emotion_react_jsx_runtime.JSX.Element;
4303
- cloudSave: _emotion_react_jsx_runtime.JSX.Element;
4304
- attachment: _emotion_react_jsx_runtime.JSX.Element;
4305
- archive: _emotion_react_jsx_runtime.JSX.Element;
4306
- unarchive: _emotion_react_jsx_runtime.JSX.Element;
4307
- duplicate: _emotion_react_jsx_runtime.JSX.Element;
4308
- filter: _emotion_react_jsx_runtime.JSX.Element;
4309
- errorCircle: _emotion_react_jsx_runtime.JSX.Element;
4310
- checkCircle: _emotion_react_jsx_runtime.JSX.Element;
4311
- infoCircle: _emotion_react_jsx_runtime.JSX.Element;
4312
- helpCircle: _emotion_react_jsx_runtime.JSX.Element;
4313
- error: _emotion_react_jsx_runtime.JSX.Element;
4314
- xCircle: _emotion_react_jsx_runtime.JSX.Element;
4315
- flag: _emotion_react_jsx_runtime.JSX.Element;
4316
- outlineFlag: _emotion_react_jsx_runtime.JSX.Element;
4317
- add: _emotion_react_jsx_runtime.JSX.Element;
4318
- remove: _emotion_react_jsx_runtime.JSX.Element;
4319
- loaderCircle: _emotion_react_jsx_runtime.JSX.Element;
4320
- circleOutline: _emotion_react_jsx_runtime.JSX.Element;
4321
- chevronsDown: _emotion_react_jsx_runtime.JSX.Element;
4322
- chevronsRight: _emotion_react_jsx_runtime.JSX.Element;
4323
- sortUp: _emotion_react_jsx_runtime.JSX.Element;
4324
- sortDown: _emotion_react_jsx_runtime.JSX.Element;
4325
- chevronDown: _emotion_react_jsx_runtime.JSX.Element;
4326
- chevronUp: _emotion_react_jsx_runtime.JSX.Element;
4327
- chevronLeft: _emotion_react_jsx_runtime.JSX.Element;
4328
- chevronRight: _emotion_react_jsx_runtime.JSX.Element;
4329
- arrowBack: _emotion_react_jsx_runtime.JSX.Element;
4330
- arrowLeft: _emotion_react_jsx_runtime.JSX.Element;
4331
- arrowUp: _emotion_react_jsx_runtime.JSX.Element;
4332
- arrowDown: _emotion_react_jsx_runtime.JSX.Element;
4333
- arrowRight: _emotion_react_jsx_runtime.JSX.Element;
4334
- triangleLeft: _emotion_react_jsx_runtime.JSX.Element;
4335
- triangleRight: _emotion_react_jsx_runtime.JSX.Element;
4336
- triangleUp: _emotion_react_jsx_runtime.JSX.Element;
4337
- triangleDown: _emotion_react_jsx_runtime.JSX.Element;
4338
- menuClose: _emotion_react_jsx_runtime.JSX.Element;
4339
- menuOpen: _emotion_react_jsx_runtime.JSX.Element;
4340
- arrowFromLeft: _emotion_react_jsx_runtime.JSX.Element;
4341
- arrowFromBottom: _emotion_react_jsx_runtime.JSX.Element;
4342
- arrowFromRight: _emotion_react_jsx_runtime.JSX.Element;
4343
- arrowFromTop: _emotion_react_jsx_runtime.JSX.Element;
4344
- subDirectoryRight: _emotion_react_jsx_runtime.JSX.Element;
4345
- camera: _emotion_react_jsx_runtime.JSX.Element;
4346
- email: _emotion_react_jsx_runtime.JSX.Element;
4347
- fileBlank: _emotion_react_jsx_runtime.JSX.Element;
4348
- folder: _emotion_react_jsx_runtime.JSX.Element;
4349
- image: _emotion_react_jsx_runtime.JSX.Element;
4350
- file: _emotion_react_jsx_runtime.JSX.Element;
4351
- images: _emotion_react_jsx_runtime.JSX.Element;
4352
- openBook: _emotion_react_jsx_runtime.JSX.Element;
4353
- inbox: _emotion_react_jsx_runtime.JSX.Element;
4354
- criticalPath: _emotion_react_jsx_runtime.JSX.Element;
4355
- nested: _emotion_react_jsx_runtime.JSX.Element;
4356
- estimate: _emotion_react_jsx_runtime.JSX.Element;
4357
- commentItem: _emotion_react_jsx_runtime.JSX.Element;
4358
- todo: _emotion_react_jsx_runtime.JSX.Element;
4359
- projectItem: _emotion_react_jsx_runtime.JSX.Element;
4360
- bill: _emotion_react_jsx_runtime.JSX.Element;
4361
- commitment: _emotion_react_jsx_runtime.JSX.Element;
4362
- document: _emotion_react_jsx_runtime.JSX.Element;
4363
- budgetReallocation: _emotion_react_jsx_runtime.JSX.Element;
4364
- cog: _emotion_react_jsx_runtime.JSX.Element;
4365
- abacus: _emotion_react_jsx_runtime.JSX.Element;
4366
- hardHat: _emotion_react_jsx_runtime.JSX.Element;
4367
- task: _emotion_react_jsx_runtime.JSX.Element;
4368
- dollar: _emotion_react_jsx_runtime.JSX.Element;
4369
- userCircle: _emotion_react_jsx_runtime.JSX.Element;
4370
- calendar: _emotion_react_jsx_runtime.JSX.Element;
4371
- calendarError: _emotion_react_jsx_runtime.JSX.Element;
4372
- calendarX: _emotion_react_jsx_runtime.JSX.Element;
4373
- changeEvent: _emotion_react_jsx_runtime.JSX.Element;
4374
- buildingHouse: _emotion_react_jsx_runtime.JSX.Element;
4375
- house: _emotion_react_jsx_runtime.JSX.Element;
4376
- bell: _emotion_react_jsx_runtime.JSX.Element;
4377
- customize: _emotion_react_jsx_runtime.JSX.Element;
4378
- leaf: _emotion_react_jsx_runtime.JSX.Element;
4379
- floorPlan: _emotion_react_jsx_runtime.JSX.Element;
4380
- chair: _emotion_react_jsx_runtime.JSX.Element;
4381
- bolt: _emotion_react_jsx_runtime.JSX.Element;
4382
- checklistComplete: _emotion_react_jsx_runtime.JSX.Element;
4383
- checklistNotComplete: _emotion_react_jsx_runtime.JSX.Element;
4384
- faucet: _emotion_react_jsx_runtime.JSX.Element;
4385
- bed: _emotion_react_jsx_runtime.JSX.Element;
4386
- sqFeet: _emotion_react_jsx_runtime.JSX.Element;
4387
- ruler: _emotion_react_jsx_runtime.JSX.Element;
4388
- palette: _emotion_react_jsx_runtime.JSX.Element;
4389
- bath: _emotion_react_jsx_runtime.JSX.Element;
4390
- car: _emotion_react_jsx_runtime.JSX.Element;
4391
- basement: _emotion_react_jsx_runtime.JSX.Element;
4392
- cube: _emotion_react_jsx_runtime.JSX.Element;
4393
- history: _emotion_react_jsx_runtime.JSX.Element;
4394
- projects: _emotion_react_jsx_runtime.JSX.Element;
4395
- tasks: _emotion_react_jsx_runtime.JSX.Element;
4396
- finances: _emotion_react_jsx_runtime.JSX.Element;
4397
- templates: _emotion_react_jsx_runtime.JSX.Element;
4398
- tradePartners: _emotion_react_jsx_runtime.JSX.Element;
4399
- menu: _emotion_react_jsx_runtime.JSX.Element;
4400
- tile: _emotion_react_jsx_runtime.JSX.Element;
4401
- list: _emotion_react_jsx_runtime.JSX.Element;
4402
- cloudy: _emotion_react_jsx_runtime.JSX.Element;
4403
- fog: _emotion_react_jsx_runtime.JSX.Element;
4404
- hail: _emotion_react_jsx_runtime.JSX.Element;
4405
- ice: _emotion_react_jsx_runtime.JSX.Element;
4406
- partlyCloudy: _emotion_react_jsx_runtime.JSX.Element;
4407
- rain: _emotion_react_jsx_runtime.JSX.Element;
4408
- snow: _emotion_react_jsx_runtime.JSX.Element;
4409
- sunny: _emotion_react_jsx_runtime.JSX.Element;
4410
- thunderstorms: _emotion_react_jsx_runtime.JSX.Element;
4411
- undoCircle: _emotion_react_jsx_runtime.JSX.Element;
4412
- windy: _emotion_react_jsx_runtime.JSX.Element;
4413
- circle: _emotion_react_jsx_runtime.JSX.Element;
4414
- checkCircleFilled: _emotion_react_jsx_runtime.JSX.Element;
4415
- cart: _emotion_react_jsx_runtime.JSX.Element;
4416
- programChange: _emotion_react_jsx_runtime.JSX.Element;
4417
- architectural: _emotion_react_jsx_runtime.JSX.Element;
4418
- structural: _emotion_react_jsx_runtime.JSX.Element;
4419
- mep: _emotion_react_jsx_runtime.JSX.Element;
4420
- designPackage: _emotion_react_jsx_runtime.JSX.Element;
4421
- updateDesignPackage: _emotion_react_jsx_runtime.JSX.Element;
4422
- exteriorStyle: _emotion_react_jsx_runtime.JSX.Element;
4423
- time: _emotion_react_jsx_runtime.JSX.Element;
4424
- lockOpen: _emotion_react_jsx_runtime.JSX.Element;
4425
- map: _emotion_react_jsx_runtime.JSX.Element;
4426
- pin: _emotion_react_jsx_runtime.JSX.Element;
4427
- mapGlobe: _emotion_react_jsx_runtime.JSX.Element;
4428
- buildings: _emotion_react_jsx_runtime.JSX.Element;
4429
- community: _emotion_react_jsx_runtime.JSX.Element;
4430
- subdivision: _emotion_react_jsx_runtime.JSX.Element;
4431
- lot: _emotion_react_jsx_runtime.JSX.Element;
4432
- houseFilled: _emotion_react_jsx_runtime.JSX.Element;
4295
+ kanban: JSX.Element;
4296
+ expand: JSX.Element;
4297
+ collapse: JSX.Element;
4298
+ drag: JSX.Element;
4299
+ move: JSX.Element;
4300
+ x: JSX.Element;
4301
+ loader: JSX.Element;
4302
+ link: JSX.Element;
4303
+ linkExternal: JSX.Element;
4304
+ upload: JSX.Element;
4305
+ download: JSX.Element;
4306
+ checkboxChecked: JSX.Element;
4307
+ checkbox: JSX.Element;
4308
+ check: JSX.Element;
4309
+ search: JSX.Element;
4310
+ comment: JSX.Element;
4311
+ commentFilled: JSX.Element;
4312
+ plus: JSX.Element;
4313
+ minus: JSX.Element;
4314
+ pencil: JSX.Element;
4315
+ cloudUpload: JSX.Element;
4316
+ toggleOn: JSX.Element;
4317
+ trash: JSX.Element;
4318
+ refresh: JSX.Element;
4319
+ eyeball: JSX.Element;
4320
+ thumbsUp: JSX.Element;
4321
+ verticalDots: JSX.Element;
4322
+ star: JSX.Element;
4323
+ starFilled: JSX.Element;
4324
+ cloudSave: JSX.Element;
4325
+ attachment: JSX.Element;
4326
+ archive: JSX.Element;
4327
+ unarchive: JSX.Element;
4328
+ duplicate: JSX.Element;
4329
+ filter: JSX.Element;
4330
+ errorCircle: JSX.Element;
4331
+ checkCircle: JSX.Element;
4332
+ infoCircle: JSX.Element;
4333
+ helpCircle: JSX.Element;
4334
+ error: JSX.Element;
4335
+ xCircle: JSX.Element;
4336
+ flag: JSX.Element;
4337
+ outlineFlag: JSX.Element;
4338
+ add: JSX.Element;
4339
+ remove: JSX.Element;
4340
+ loaderCircle: JSX.Element;
4341
+ circleOutline: JSX.Element;
4342
+ chevronsDown: JSX.Element;
4343
+ chevronsRight: JSX.Element;
4344
+ sortUp: JSX.Element;
4345
+ sortDown: JSX.Element;
4346
+ chevronDown: JSX.Element;
4347
+ chevronUp: JSX.Element;
4348
+ chevronLeft: JSX.Element;
4349
+ chevronRight: JSX.Element;
4350
+ arrowBack: JSX.Element;
4351
+ arrowLeft: JSX.Element;
4352
+ arrowUp: JSX.Element;
4353
+ arrowDown: JSX.Element;
4354
+ arrowRight: JSX.Element;
4355
+ triangleLeft: JSX.Element;
4356
+ triangleRight: JSX.Element;
4357
+ triangleUp: JSX.Element;
4358
+ triangleDown: JSX.Element;
4359
+ menuClose: JSX.Element;
4360
+ menuOpen: JSX.Element;
4361
+ arrowFromLeft: JSX.Element;
4362
+ arrowFromBottom: JSX.Element;
4363
+ arrowFromRight: JSX.Element;
4364
+ arrowFromTop: JSX.Element;
4365
+ subDirectoryRight: JSX.Element;
4366
+ camera: JSX.Element;
4367
+ email: JSX.Element;
4368
+ fileBlank: JSX.Element;
4369
+ folder: JSX.Element;
4370
+ image: JSX.Element;
4371
+ file: JSX.Element;
4372
+ images: JSX.Element;
4373
+ openBook: JSX.Element;
4374
+ inbox: JSX.Element;
4375
+ criticalPath: JSX.Element;
4376
+ nested: JSX.Element;
4377
+ estimate: JSX.Element;
4378
+ commentItem: JSX.Element;
4379
+ todo: JSX.Element;
4380
+ projectItem: JSX.Element;
4381
+ bill: JSX.Element;
4382
+ commitment: JSX.Element;
4383
+ document: JSX.Element;
4384
+ budgetReallocation: JSX.Element;
4385
+ cog: JSX.Element;
4386
+ abacus: JSX.Element;
4387
+ hardHat: JSX.Element;
4388
+ task: JSX.Element;
4389
+ dollar: JSX.Element;
4390
+ userCircle: JSX.Element;
4391
+ calendar: JSX.Element;
4392
+ calendarError: JSX.Element;
4393
+ calendarX: JSX.Element;
4394
+ changeEvent: JSX.Element;
4395
+ buildingHouse: JSX.Element;
4396
+ house: JSX.Element;
4397
+ bell: JSX.Element;
4398
+ customize: JSX.Element;
4399
+ leaf: JSX.Element;
4400
+ floorPlan: JSX.Element;
4401
+ chair: JSX.Element;
4402
+ bolt: JSX.Element;
4403
+ checklistComplete: JSX.Element;
4404
+ checklistNotComplete: JSX.Element;
4405
+ faucet: JSX.Element;
4406
+ bed: JSX.Element;
4407
+ sqFeet: JSX.Element;
4408
+ ruler: JSX.Element;
4409
+ palette: JSX.Element;
4410
+ bath: JSX.Element;
4411
+ car: JSX.Element;
4412
+ basement: JSX.Element;
4413
+ cube: JSX.Element;
4414
+ history: JSX.Element;
4415
+ projects: JSX.Element;
4416
+ tasks: JSX.Element;
4417
+ finances: JSX.Element;
4418
+ templates: JSX.Element;
4419
+ tradePartners: JSX.Element;
4420
+ menu: JSX.Element;
4421
+ tile: JSX.Element;
4422
+ list: JSX.Element;
4423
+ cloudy: JSX.Element;
4424
+ fog: JSX.Element;
4425
+ hail: JSX.Element;
4426
+ ice: JSX.Element;
4427
+ partlyCloudy: JSX.Element;
4428
+ rain: JSX.Element;
4429
+ snow: JSX.Element;
4430
+ sunny: JSX.Element;
4431
+ thunderstorms: JSX.Element;
4432
+ undoCircle: JSX.Element;
4433
+ windy: JSX.Element;
4434
+ circle: JSX.Element;
4435
+ checkCircleFilled: JSX.Element;
4436
+ cart: JSX.Element;
4437
+ programChange: JSX.Element;
4438
+ architectural: JSX.Element;
4439
+ structural: JSX.Element;
4440
+ mep: JSX.Element;
4441
+ designPackage: JSX.Element;
4442
+ updateDesignPackage: JSX.Element;
4443
+ exteriorStyle: JSX.Element;
4444
+ time: JSX.Element;
4445
+ lockOpen: JSX.Element;
4446
+ map: JSX.Element;
4447
+ pin: JSX.Element;
4448
+ mapGlobe: JSX.Element;
4449
+ buildings: JSX.Element;
4450
+ community: JSX.Element;
4451
+ subdivision: JSX.Element;
4452
+ lot: JSX.Element;
4453
+ houseFilled: JSX.Element;
4433
4454
  };
4434
4455
  type IconKey = keyof typeof Icons;
4435
4456
 
@@ -4444,7 +4465,7 @@ interface ChipProps<X> {
4444
4465
  icon?: IconKey;
4445
4466
  }
4446
4467
  /** Kinda like a chip, but read-only, so no `onClick` or `hover`. */
4447
- declare function Chip<X extends Only<Xss<Margin | "color" | "backgroundColor">, X>>(props: ChipProps<X>): _emotion_react_jsx_runtime.JSX.Element;
4468
+ declare function Chip<X extends Only<Xss<Margin | "color" | "backgroundColor">, X>>(props: ChipProps<X>): JSX.Element;
4448
4469
  declare const chipBaseStyles: (compact?: boolean) => {
4449
4470
  fontWeight: csstype.Property.FontWeight | undefined;
4450
4471
  } & {
@@ -4487,10 +4508,49 @@ interface ChipsProps<X> {
4487
4508
  wrap?: boolean;
4488
4509
  }
4489
4510
  /** Renders a list of `Chip`s, with wrapping & appropriate margin between each `Chip`. */
4490
- declare function Chips<X extends Only<ChipsXss, X>>(props: ChipsProps<X>): _emotion_react_jsx_runtime.JSX.Element;
4511
+ declare function Chips<X extends Only<ChipsXss, X>>(props: ChipsProps<X>): JSX.Element;
4491
4512
 
4492
4513
  type ResizedWidths = Record<string, number>;
4493
4514
 
4515
+ type InputStylePalette = "success" | "warning" | "caution" | "info";
4516
+ interface PresentationFieldProps {
4517
+ numberAlignment?: "left" | "right";
4518
+ /** Sets the label position or visibility. Defaults to "above" */
4519
+ labelStyle?: "inline" | "hidden" | "above" | "left";
4520
+ /** Defines the width property of the input field wrapper when using `labelStyle="left"`. */
4521
+ labelLeftFieldWidth?: number | string;
4522
+ labelSuffix?: LabelSuffixStyle;
4523
+ borderless?: boolean;
4524
+ borderOnHover?: boolean;
4525
+ compact?: boolean;
4526
+ typeScale?: Typography;
4527
+ visuallyDisabled?: false;
4528
+ errorInTooltip?: true;
4529
+ /** Allow the fields to grow to the width of its container. By default, fields will extend up to 550px */
4530
+ fullWidth?: boolean;
4531
+ /** Changes bg and hoverBg; Takes priority over `contrast`; Useful when showing many fields w/in a table that require user attention; In no way should be used as a replacement for error/focus state */
4532
+ inputStylePalette?: InputStylePalette;
4533
+ }
4534
+ type PresentationContextProps = {
4535
+ /** `inputStylePalette` omitted because it is too dependent on the individual field use case to be controlled at this level */
4536
+ fieldProps?: Omit<PresentationFieldProps, "inputStylePalette">;
4537
+ gridTableStyle?: GridStyle;
4538
+ wrap?: boolean;
4539
+ };
4540
+ declare function PresentationProvider(props: PropsWithChildren<PresentationContextProps>): JSX.Element;
4541
+ /**
4542
+ * Label settings for required/optional fields.
4543
+ *
4544
+ * We may want to just hard-code this behavior, so that it's very consistent,
4545
+ * but for now making it configurable.
4546
+ */
4547
+ type LabelSuffixStyle = {
4548
+ /** The suffix to use for required fields. */
4549
+ required?: string;
4550
+ /** The suffix to use for explicitly optional (i.e. `required=false`) fields. */
4551
+ optional?: string;
4552
+ };
4553
+
4494
4554
  type Kinded = {
4495
4555
  kind: string;
4496
4556
  };
@@ -4650,371 +4710,133 @@ declare const rowLinkRenderFn: (as: RenderAs, colSpan: number) => RenderCellFn<a
4650
4710
  /** Renders a cell that will fire the RowStyle.onClick. */
4651
4711
  declare const rowClickRenderFn: (as: RenderAs, api: GridTableApi<any>, colSpan: number) => RenderCellFn<any>;
4652
4712
 
4653
- interface GridTableCollapseToggleProps extends Pick<IconButtonProps, "compact"> {
4654
- row: GridDataRow<any>;
4655
- }
4656
- /** Provides a chevron icons to collapse/un-collapse for parent/child tables. */
4657
- declare function CollapseToggle(props: GridTableCollapseToggleProps): _emotion_react_jsx_runtime.JSX.Element | null;
4658
-
4659
- interface AvatarProps {
4660
- src: string | undefined;
4661
- name?: string;
4662
- size?: AvatarSize;
4663
- showName?: boolean;
4664
- disableTooltip?: boolean;
4665
- }
4666
- declare function Avatar({ src, name, size, showName, disableTooltip, ...others }: AvatarProps): _emotion_react_jsx_runtime.JSX.Element;
4667
- type AvatarSize = "sm" | "md" | "lg" | "xl";
4668
-
4669
- /** Base Interfaced */
4670
- interface BeamFocusableProps {
4671
- /** Whether the element should receive focus on render. */
4672
- autoFocus?: boolean;
4673
- forceFocusStyles?: boolean;
4674
- }
4675
- interface BeamButtonProps {
4713
+ /** Completely static look & feel, i.e. nothing that is based on row kinds/content. */
4714
+ interface GridStyle {
4715
+ /** Applied to the base div element. */
4716
+ rootCss?: Properties;
4717
+ /** Extra bottom padding for the virtual-table footer loader/spacer, in pixels. */
4718
+ virtualFooterPaddingBottomPx?: number;
4676
4719
  /**
4677
- * Whether the interactive element is disabled.
4678
- *
4679
- * If a ReactNode, it's treated as a "disabled reason" that's shown in a tooltip.
4720
+ * Applied as the base body-row cell styling (commonly used for row separators).
4721
+ * This is applied to body rows broadly (including the last body row); use
4722
+ * `lastRowCellCss`/`lastRowCss` to adjust/cancel any final-row treatment.
4680
4723
  */
4681
- disabled?: boolean | ReactNode;
4682
- /** If function, then it is the handler that is called when the press is released over the target. Otherwise if string, it is the URL path for the link */
4683
- onClick: ((e: PressEvent) => void) | ((e: PressEvent) => Promise<void>) | string;
4684
- /** Text to be shown via a tooltip when the user hovers over the button */
4685
- tooltip?: ReactNode;
4686
- /** Whether to open link in a new tab. This only effects the element if the `onClick` is a `string`/URL. */
4687
- openInNew?: boolean;
4688
- }
4689
- type TextFieldXss = Xss<"textAlign" | "justifyContent" | "fontWeight" | "fontSize" | "lineHeight">;
4690
- interface BeamTextFieldProps<X> extends BeamFocusableProps, PresentationFieldProps {
4691
- /** Whether the field is disabled. If a ReactNode, it's treated as a "disabled reason" that's shown in a tooltip. */
4692
- disabled?: boolean | ReactNode;
4693
- errorMsg?: string;
4694
- helperText?: string | ReactNode;
4695
- /** Input label */
4696
- label: string;
4697
- /** Marks the field as required or optional, the default is assumed ambiguous/unknown. */
4698
- required?: boolean;
4699
- value: string | undefined;
4700
- /** Handler called when the interactive element state changes. */
4701
- onChange: (value: string | undefined) => void;
4702
- /** Called when the component loses focus, mostly for BoundTextField to use. */
4703
- onBlur?: VoidFunction;
4704
- onFocus?: VoidFunction;
4705
- onEnter?: VoidFunction;
4706
- /** Whether the field is readOnly. If a ReactNode, it's treated as a "readOnly reason" that's shown in a tooltip. */
4707
- readOnly?: boolean | ReactNode;
4708
- placeholder?: string;
4709
- /** Styles overrides */
4710
- xss?: X;
4711
- }
4712
- interface TextFieldInternalProps {
4724
+ betweenRowsCss?: Properties;
4725
+ /** Applied on the last row of the table, typically to override/cancel `betweenRowsCss`. */
4726
+ lastRowCss?: Properties;
4727
+ /** Applied on the first row of the table (could be the Header or Totals row). */
4728
+ firstRowCss?: Properties;
4729
+ /** Applied to every non-header row of the table */
4730
+ nonHeaderRowCss?: Properties;
4731
+ /** Applied to the first body row, i.e. if you want to cancel out `betweenRowsCss`. */
4732
+ firstBodyRowCss?: Properties;
4733
+ /** Applied to all cell divs (via a selector off the base div). */
4734
+ cellCss?: Properties;
4713
4735
  /**
4714
- * Denoting a field as 'compound' will remove existing borders on the returned field, including the 2px of height added by the borders.
4715
- * It is expected that the caller reintroduces the border to achieve the expected field height and handles the custom border logic of a Compound Field
4716
- * This is explicitly an internal property that is not exposed to any field's API.
4736
+ * Applied to the header row divs.
4737
+ *
4738
+ * NOTE `as=virtual`: When using a virtual table with the goal of adding space
4739
+ * between the header and the first row use `firstBodyRowCss` with a
4740
+ * margin-top instead. Using `headerCellCss` will not work since the header
4741
+ * rows are wrapper with Chrome rows.
4717
4742
  */
4718
- compound?: boolean;
4719
- /** Forces focus styles for storybook purposes */
4720
- forceFocus?: true;
4721
- /** Forces hover styles for storybook purposes */
4722
- forceHover?: boolean;
4743
+ headerCellCss?: Properties;
4744
+ /** Applied to 'kind: "totals"' cells */
4745
+ totalsCellCss?: Properties;
4746
+ /** Applied to 'kind: "expandableHeader"' cells */
4747
+ expandableHeaderCss?: Properties;
4748
+ /** Applied to expandable header cells that are not the last table column. */
4749
+ expandableHeaderNonLastColumnCss?: Properties;
4750
+ /** Applied to the first cell of all rows, i.e. for table-wide padding or left-side borders. */
4751
+ firstCellCss?: Properties;
4752
+ /** Applied to the last cell of all rows, i.e. for table-wide padding or right-side borders. */
4753
+ lastCellCss?: Properties;
4754
+ /** Applied to every cell in the first table-head row (expandableHeader/header/totals). */
4755
+ firstRowCellCss?: Properties;
4756
+ /** Applied to the first cell in the first table-head row. */
4757
+ firstRowFirstCellCss?: Properties;
4758
+ /** Applied to the last cell in the first table-head row. */
4759
+ firstRowLastCellCss?: Properties;
4760
+ /** Applied to every cell in the last table-body row. */
4761
+ lastRowCellCss?: Properties;
4762
+ /** Applied to the first cell in the last table-body row. */
4763
+ lastRowFirstCellCss?: Properties;
4764
+ /** Applied to the last cell in the last table-body row. */
4765
+ lastRowLastCellCss?: Properties;
4766
+ /** Applied if there is a fallback/overflow message showing. */
4767
+ firstRowMessageCss?: Properties;
4768
+ /** Applied on hover if a row has a rowLink/onClick set. */
4769
+ rowHoverColor?: Palette | "none";
4770
+ /** Default content to put into an empty cell */
4771
+ emptyCell?: ReactNode;
4772
+ presentationSettings?: Pick<PresentationFieldProps, "borderless" | "borderOnHover" | "typeScale"> & Pick<PresentationContextProps, "wrap">;
4773
+ /** Minimum table width in pixels. Used when calculating columns sizes */
4774
+ minWidthPx?: number;
4775
+ /** Css to apply at each level of a parent/child nested table. */
4776
+ levels?: Record<number, {
4777
+ /** Number of pixels to indent the row. This value will be subtracted from the "first content column" width. First content column is the first column that is not an 'action' column (i.e. non-checkbox or non-collapse button column) */
4778
+ rowIndent?: number;
4779
+ cellCss?: Properties;
4780
+ firstContentColumn?: Properties;
4781
+ }> | ((level: number) => {
4782
+ rowIndent?: number;
4783
+ cellCss?: Properties;
4784
+ firstContentColumn?: Properties;
4785
+ });
4786
+ /** Allows for customization of the background color used to denote an "active" row */
4787
+ activeBgColor?: Palette;
4788
+ /** Defines styles for the group row which holds the selected rows that have been filtered out */
4789
+ keptGroupRowCss?: Properties;
4790
+ /** Defines styles for the last row `keptGroup` to provide separation from the rest of the table */
4791
+ keptLastRowCss?: Properties;
4723
4792
  }
4724
-
4725
- interface AvatarButtonProps extends AvatarProps, BeamButtonProps, BeamFocusableProps {
4726
- menuTriggerProps?: AriaButtonProps;
4727
- buttonRef?: RefObject<HTMLButtonElement>;
4728
- /** Storybook-only visual state overrides for snapshotting pseudo-interactions. */
4729
- __storyState?: {
4730
- hovered?: boolean;
4731
- focusVisible?: boolean;
4732
- pressed?: boolean;
4733
- };
4793
+ interface GridStyleDef {
4794
+ /** Changes the height of the rows when `rowHeight: fixed` to provide more space between rows for input fields. */
4795
+ inlineEditing?: boolean;
4796
+ /** Adds styling for grouped rows */
4797
+ grouped?: boolean;
4798
+ /** 'fixed' height rows do not allow text to wrap. 'flexible' allows for wrapping. Defaults to `flexible` */
4799
+ rowHeight?: "fixed" | "flexible";
4800
+ /** Enables cells Highlight and hover */
4801
+ cellHighlight?: boolean;
4802
+ /** Applies a white background to the whole table, including header and group rows. */
4803
+ allWhite?: boolean;
4804
+ /** Whether to apply a border around the whole table */
4805
+ bordered?: boolean;
4806
+ /** Whether to show a hover effect on rows. Defaults to true */
4807
+ rowHover?: boolean;
4808
+ /** Defines the vertical alignment of the content of the cells for the whole table (not including the 'header' rows). Defaults to `center` */
4809
+ vAlign?: "top" | "center" | "bottom";
4810
+ /** Defines the Typography for the table body's cells (not the header). This only applies to rows that are not nested/grouped */
4811
+ cellTypography?: Typography;
4812
+ /** Defines if the table should highlight the row on hover. Defaults to true */
4813
+ highlightOnHover?: boolean;
4734
4814
  }
4735
- declare function AvatarButton(props: AvatarButtonProps): _emotion_react_jsx_runtime.JSX.Element;
4736
- declare const hoverStyles: {
4737
- boxShadow: csstype.Property.BoxShadow | undefined;
4815
+ declare const getTableStyles: (props?: GridStyleDef) => GridStyle;
4816
+ /** Defines row-specific styling for each given row `kind` in `R` */
4817
+ type RowStyles<R extends Kinded> = {
4818
+ [P in R["kind"]]?: RowStyle<DiscriminateUnion<R, "kind", P>>;
4738
4819
  };
4739
- declare const pressedOverlayCss: {
4740
- borderRadius: csstype.Property.BorderRadius<string | 0> | undefined;
4741
- } & {
4742
- backgroundColor: csstype.Property.BackgroundColor | undefined;
4743
- } & {
4744
- width: csstype.Property.Width<string | 0> | undefined;
4745
- } & {
4746
- height: csstype.Property.Height<string | 0> | undefined;
4747
- } & {
4748
- position: csstype.Property.Position | undefined;
4749
- } & {
4750
- top: csstype.Property.Top<string | 0> | undefined;
4751
- } & {
4752
- left: csstype.Property.Left<string | 0> | undefined;
4753
- } & {
4754
- opacity: csstype.Property.Opacity | undefined;
4755
- } & {
4756
- pointerEvents: csstype.Property.PointerEvents | undefined;
4757
- };
4758
-
4759
- interface ButtonProps extends BeamButtonProps, BeamFocusableProps {
4760
- label: ReactNode;
4761
- variant?: ButtonVariant;
4762
- size?: ButtonSize;
4763
- icon?: IconProps["icon"] | null;
4764
- /** Displays contents after the Button's label. Will be ignored for Buttons rendered as a link with an absolute URL */
4765
- endAdornment?: ReactNode;
4766
- /** HTML attributes to apply to the button element when it is being used to trigger a menu. */
4767
- menuTriggerProps?: AriaButtonProps;
4768
- buttonRef?: RefObject<HTMLElement>;
4769
- /** Allow for setting "submit" | "button" | "reset" on button element */
4770
- type?: ButtonHTMLAttributes<HTMLButtonElement>["type"];
4771
- /** Denotes if this button is used to download a resource. Uses the anchor tag with the `download` attribute */
4772
- download?: boolean;
4773
- contrast?: boolean;
4774
- /** Additional text to further customize button during an async request is in progress. */
4775
- labelInFlight?: string;
4776
- /** Shows pressed/active styles (useful when a menu is open) */
4777
- active?: boolean;
4778
- }
4779
- declare function Button(props: ButtonProps): _emotion_react_jsx_runtime.JSX.Element;
4780
- type ButtonSize = "sm" | "md" | "lg";
4781
- type ButtonVariant = "primary" | "secondary" | "secondaryBlack" | "tertiary" | "tertiaryDanger" | "caution" | "danger" | "quaternary" | "text" | "textSecondary";
4782
-
4783
- interface IconButtonProps extends BeamButtonProps, BeamFocusableProps {
4784
- /** The icon to use within the button. */
4785
- icon: IconProps["icon"];
4786
- color?: Palette;
4787
- bgColor?: Palette;
4788
- /** The size of the icon, in increments, defaults to 3 which is 24px. */
4789
- inc?: number;
4790
- /** HTML attributes to apply to the button element when it is being used to trigger a menu. */
4791
- menuTriggerProps?: AriaButtonProps;
4792
- buttonRef?: RefObject<HTMLButtonElement>;
4793
- /** Whether to show a 16x16px version of the IconButton */
4794
- compact?: boolean;
4795
- /** Whether to display the contrast variant */
4796
- contrast?: boolean;
4797
- /** Whether to display the circle variant */
4798
- circle?: boolean;
4799
- /** Indicates that the button is active/selected */
4800
- active?: boolean;
4801
- /** Denotes if this button is used to download a resource. Uses the anchor tag with the `download` attribute */
4802
- download?: boolean;
4803
- /** Provides label for screen readers - Will become a required soon */
4804
- label?: string;
4805
- }
4806
- declare function IconButton(props: IconButtonProps): _emotion_react_jsx_runtime.JSX.Element;
4807
- declare const iconButtonStylesHover: {
4808
- backgroundColor: csstype.Property.BackgroundColor | undefined;
4809
- };
4810
- declare const iconButtonContrastStylesHover: {
4811
- backgroundColor: csstype.Property.BackgroundColor | undefined;
4812
- };
4813
- declare const iconButtonCircleStylesHover: {
4814
- backgroundColor: csstype.Property.BackgroundColor | undefined;
4815
- } & {
4816
- borderColor: csstype.Property.BorderColor | undefined;
4817
- };
4818
-
4819
- interface NavLinkProps extends BeamFocusableProps {
4820
- /** active indicates the user is on the current page */
4821
- active?: boolean;
4822
- disabled?: boolean;
4823
- /** if `href` isn't provided, it is treated as a <button> */
4824
- href?: string;
4825
- label: ReactNode;
4826
- icon?: IconKey;
4827
- variant: NavLinkVariant;
4828
- openInNew?: boolean;
4829
- contrast?: boolean;
4830
- /** HTML attributes to apply to the button element when it is being used to trigger a menu. */
4831
- menuTriggerProps?: AriaButtonProps;
4832
- buttonRef?: RefObject<HTMLElement>;
4833
- }
4834
- type NavLinkVariant = "side" | "global";
4835
- declare function NavLink(props: NavLinkProps): JSX.Element;
4836
-
4837
- interface TextButtonTriggerProps extends Pick<ButtonProps, "label" | "variant" | "size" | "icon"> {
4838
- }
4839
- interface IconButtonTriggerProps extends Pick<IconButtonProps, "icon" | "color" | "compact" | "contrast" | "inc"> {
4840
- }
4841
- interface AvatarButtonTriggerProps extends Pick<AvatarButtonProps, "src" | "name" | "size"> {
4842
- }
4843
- interface NavLinkButtonTriggerProps extends Pick<NavLinkProps, "active" | "variant" | "icon"> {
4844
- navLabel: string;
4845
- }
4846
- interface OverlayTriggerProps {
4847
- trigger: TextButtonTriggerProps | IconButtonTriggerProps | AvatarButtonTriggerProps | NavLinkButtonTriggerProps;
4848
- /** Defaults to "left" */
4849
- placement?: "left" | "right";
4850
- /** Whether the Button is disabled. If a ReactNode, it's treated as a "disabled reason" that's shown in a tooltip. */
4851
- disabled?: boolean | ReactNode;
4852
- /** Text to be shown via a tooltip when the user hovers over the button */
4853
- tooltip?: ReactNode;
4854
- /** The component to be shown within the overlay */
4855
- children: ReactElement;
4856
- /** Props returned by the useMenuTrigger hook to be passed to the button element */
4857
- menuTriggerProps: AriaButtonProps;
4858
- /** Ref for the button element */
4859
- buttonRef: MutableRefObject<HTMLButtonElement | null>;
4860
- /** Result of the useMenuTriggerState hook */
4861
- state: MenuTriggerState;
4862
- /** Prop set the style of the button element */
4863
- variant?: ButtonVariant;
4864
- hideEndAdornment?: boolean;
4865
- showActiveBorder?: boolean;
4866
- contrast?: boolean;
4867
- }
4868
-
4869
- type EditColumnsButtonProps<R extends Kinded> = {
4870
- columns: GridColumn<R>[];
4871
- api: GridTableApi<R>;
4872
- defaultOpen?: boolean;
4873
- } & Pick<OverlayTriggerProps, "trigger" | "placement" | "disabled" | "tooltip">;
4874
- declare function EditColumnsButton<R extends Kinded>(props: EditColumnsButtonProps<R>): _emotion_react_jsx_runtime.JSX.Element;
4875
-
4876
- interface SelectToggleProps {
4877
- id: string;
4878
- disabled?: boolean | ReactNode;
4879
- }
4880
- /** Provides a checkbox to show/drive this row's selected state. */
4881
- declare function SelectToggle({ id, disabled }: SelectToggleProps): _emotion_react_jsx_runtime.JSX.Element;
4882
-
4883
- interface SortHeaderProps {
4884
- content: string;
4885
- xss?: Properties;
4886
- iconOnLeft?: boolean;
4887
- sortKey: string;
4888
- tooltipEl?: ReactNode;
4889
- }
4890
- /**
4891
- * Wraps column header names with up/down sorting icons.
4892
- *
4893
- * GridTable will use this automatically if the header content is just a text string.
4894
- *
4895
- * Alternatively, callers can also:
4896
- *
4897
- * - Instantiate this SortHeader directly with some customizations in `xss`, or
4898
- * - Write their own component that uses `GridSortContext` to access the column's
4899
- * current sort state + `toggleSort` function
4900
- */
4901
- declare function SortHeader(props: SortHeaderProps): _emotion_react_jsx_runtime.JSX.Element;
4902
-
4903
- /**
4904
- * Calculates an array of sizes for each of our columns.
4905
- *
4906
- * We originally supported CSS grid-template-column definitions which allowed fancier,
4907
- * dynamic/content-based widths, but have eventually dropped it mainly due to:
4908
- *
4909
- * 1. In virtual tables, a) the table never has all of the rows in DOM at a single time,
4910
- * so any "content-based" widths will change as you scroll the table, which is weird, and
4911
- * b) a sticky header and rows are put in different DOM parent elements by react-virtuoso,
4912
- * so wouldn't arrive at the same "content-based" widths.
4913
- *
4914
- * 2. Using CSS grid but still have a row-level div for hover/focus targeting required
4915
- * a "fake" `display: contents` div that couldn't have actually any styles applied to it.
4916
- *
4917
- * So we've just got with essentially fixed/deterministic widths, i.e. `px` or `percent` or
4918
- * `fr`.
4919
- *
4920
- * Disclaimer that we roll our own `fr` b/c we're not in CSS grid anymore.
4921
- */
4922
- declare function useSetupColumnSizes<R extends Kinded>(style: GridStyle, columns: GridColumnWithId<R>[], resizeRef: MutableRefObject<HTMLElement | null>, expandedColumnIds: string[], visibleColumnsStorageKey: string | undefined, disableColumnResizing: boolean): {
4923
- columnSizes: string[];
4924
- tableWidth: number | undefined;
4925
- resizedWidths: ResizedWidths;
4926
- setResizedWidth: (columnId: string, width: number) => void;
4927
- setResizedWidths: (widths: ResizedWidths | ((prev: ResizedWidths) => ResizedWidths)) => void;
4928
- resetColumnWidths: () => void;
4929
- };
4930
-
4931
- /** Provides default styling for a GridColumn representing a Date. */
4932
- declare function column<T extends Kinded>(columnDef: GridColumn<T>): GridColumn<T>;
4933
- /** Provides default styling for a GridColumn representing a Date. */
4934
- declare function dateColumn<T extends Kinded>(columnDef: GridColumn<T>): GridColumn<T>;
4935
- /**
4936
- * Provides default styling for a GridColumn representing a Numeric value (Price, percentage, PO #, etc.). */
4937
- declare function numericColumn<T extends Kinded>(columnDef: GridColumn<T>): GridColumn<T>;
4938
- /** Provides default styling for a GridColumn representing an Action. */
4939
- declare function actionColumn<T extends Kinded>(columnDef: GridColumn<T>): GridColumn<T>;
4940
- /**
4941
- * Provides default styling for a GridColumn containing a checkbox.
4942
- *
4943
- * We allow either no `columnDef` at all, or a partial column def (i.e. to say a Totals row should
4944
- * not have a `SelectToggle`, b/c we can provide the default behavior a `SelectToggle` for basically
4945
- * all rows.
4946
- */
4947
- declare function selectColumn<T extends Kinded>(columnDef?: Partial<GridColumn<T>>): GridColumn<T>;
4948
- /**
4949
- * Provides default styling for a GridColumn containing a collapse icon.
4950
- *
4951
- * We allow either no `columnDef` at all, or a partial column def (i.e. to say a Totals row should
4952
- * not have a `CollapseToggle`, b/c we can provide the default behavior a `CollapseToggle` for basically
4953
- * all rows.
4954
- */
4955
- declare function collapseColumn<T extends Kinded>(columnDef?: Partial<GridColumn<T>>): GridColumn<T>;
4956
- declare function parseWidthToPx(widthStr: string | undefined, tableWidth: number | undefined): number | null;
4957
- /**
4958
- * Calculates column widths using a flexible `calc()` definition that allows for consistent column alignment without the use of `<table />`, CSS Grid, etc layouts.
4959
- * Enforces only fixed-sized units (% and px)
4960
- */
4961
- declare function calcColumnSizes<R extends Kinded>(columns: GridColumnWithId<R>[], tableWidth: number | undefined, tableMinWidthPx: number | undefined, expandedColumnIds: string[], resizedWidths?: ResizedWidths): string[];
4962
- /** Assign column ids if missing. */
4963
- declare function assignDefaultColumnIds<T extends Kinded>(columns: GridColumn<T>[]): GridColumnWithId<T>[];
4964
- declare const generateColumnId: (columnIndex: number) => string;
4965
- declare function dragHandleColumn<T extends Kinded>(columnDef?: Partial<GridColumn<T>>): GridColumn<T>;
4966
-
4967
- /**
4968
- * Allows a caller to ask for the currently shown rows, given the current sorting/filtering.
4969
- *
4970
- * We will probably end up generalizing this into a GridTableApi that exposes more
4971
- * actions i.e. scrolling to a row and selection state.
4972
- */
4973
- interface GridRowLookup<R extends Kinded> {
4974
- /** Returns both the immediate next/prev rows, as well as `[kind].next/prev` values, ignoring headers. */
4975
- lookup(row: GridDataRow<R>, additionalFilter?: (row: GridDataRow<R>) => boolean): NextPrev<R> & {
4976
- [P in R["kind"]]: NextPrev<DiscriminateUnion<R, "kind", P>>;
4977
- };
4978
- /** Returns the list of currently filtered/sorted rows, without headers. */
4979
- currentList(): readonly GridDataRow<R>[];
4980
- /**
4981
- * Scroll's to the row with the given kind + id. Requires using `as=virtual`.
4982
- * Will skip re-scrolling to a row if it's already visible.
4983
- */
4984
- scrollTo(kind: R["kind"], id: string): void;
4985
- }
4986
- interface NextPrev<R extends Kinded> {
4987
- next: GridDataRow<R> | undefined;
4988
- prev: GridDataRow<R> | undefined;
4820
+ interface RowStyle<R extends Kinded> {
4821
+ /** Applies this css to the wrapper row, i.e. for row-level hovers. */
4822
+ rowCss?: Properties | ((row: R) => Properties);
4823
+ /** Applies this css to each cell in the row. */
4824
+ cellCss?: Properties | ((row: R) => Properties);
4825
+ /** Renders the cell element, i.e. a link to get whole-row links. */
4826
+ renderCell?: RenderCellFn<R>;
4827
+ /** Whether the row should be a link. */
4828
+ rowLink?: (row: R) => string;
4829
+ /** Fired when the row is clicked, similar to rowLink but for actions that aren't 'go to this link'. */
4830
+ onClick?: (row: GridDataRow<R>, api: GridTableApi<R>) => void;
4989
4831
  }
4990
- declare function createRowLookup<R extends Kinded>(api: GridTableApiImpl<R>, virtuosoRef: MutableRefObject<VirtuosoHandle | null>, virtuosoRangeRef: MutableRefObject<ListRange | null>): GridRowLookup<R>;
4991
- /** Optionally takes into consideration if a row is already in view before attempting to scroll to it. */
4992
- declare function shouldSkipScrollTo(index: number, virtuosoRangeRef: MutableRefObject<ListRange | null>): boolean;
4993
-
4994
- /**
4995
- * A helper for making `Row` type aliases of simple/flat tables that are just header + data.
4996
- *
4997
- * Unlike `SimpleHeaderAndDataOf`, we keep `T` in a separate `data`, which is useful
4998
- * when rows are mobx proxies and we need proxy accesses to happen within the column
4999
- * rendering.
5000
- */
5001
- type SimpleHeaderAndData<T> = {
5002
- kind: "header";
5003
- } | {
5004
- kind: "data";
5005
- data: T;
5006
- id: string;
5007
- };
5008
- /** A const for a marker header row. */
5009
- declare const simpleHeader: {
5010
- kind: "header";
5011
- id: string;
5012
- data: undefined;
5013
- };
5014
- /** Like `simpleRows` but for `SimpleHeaderAndData`. */
5015
- declare function simpleDataRows<R extends SimpleHeaderAndData<D>, D>(data?: Array<D & {
5016
- id: string;
5017
- }> | undefined): GridDataRow<R>[];
4832
+ /** Our original table look & feel/style. */
4833
+ declare const defaultStyle: GridStyle;
4834
+ /** Tightens up the padding of rows, great for rows that have form elements in them. */
4835
+ declare const condensedStyle: GridStyle;
4836
+ /** Renders each row as a card.
4837
+ * TODO: Add `cardStyle` option to `getTableStyles` and remove this.
4838
+ * */
4839
+ declare const cardStyle: GridStyle;
5018
4840
 
5019
4841
  /**
5020
4842
  * Manages loading/saving our currently-collapsed rows to session storage.
@@ -5043,165 +4865,6 @@ declare class RowStorage<R extends Kinded> {
5043
4865
  wasCollapsed(id: string): boolean | undefined;
5044
4866
  }
5045
4867
 
5046
- /**
5047
- * Manages our tree of observable RowStates that manage each GridDataRow's behavior.
5048
- */
5049
- declare class RowStates<R extends Kinded> {
5050
- private map;
5051
- readonly table: TableState<R>;
5052
- readonly storage: RowStorage<R>;
5053
- private readonly header;
5054
- private keptGroupRow;
5055
- /** The first level of rows, i.e. not the header (or kept group), but the totals + top-level children. */
5056
- private topRows;
5057
- constructor(table: TableState<R>);
5058
- /** Returns a flat list of all of our RowStates. */
5059
- get allStates(): RowState<R>[];
5060
- /** Returns the `RowState` for the given `id`. We should probably require `kind`. */
5061
- get(id: string): RowState<R>;
5062
- /**
5063
- * Merge a new set of `rows` prop into our state.
5064
- *
5065
- * Any missing rows are marked as `wasRemoved` so we can consider them "kept" if they're also selected.
5066
- */
5067
- setRows(rows: GridDataRow<R>[]): void;
5068
- /** Fully delete `ids`, so they don't show up in kept rows anymore. */
5069
- delete(ids: string[]): void;
5070
- /** Implements special collapse behavior, which is just the header's collapse/uncollapse. */
5071
- toggleCollapsed(id: string): void;
5072
- get visibleRows(): RowState<R>[];
5073
- /** Returns kept rows, i.e. those that were user-selected but then client-side or server-side filtered. */
5074
- get keptRows(): RowState<R>[];
5075
- get collapsedRows(): RowState<R>[];
5076
- private createHeaderRow;
5077
- /** Create our synthetic "group row" for kept rows, that users never pass in, but we self-inject as needed. */
5078
- private createKeptGroupRow;
5079
- maybeSetRowDraggedOver(id: string, draggedOver: DraggedOver, requireSameParentRow?: GridDataRow<R> | undefined): void;
5080
- }
5081
-
5082
- declare enum DraggedOver {
5083
- None = 0,
5084
- Above = 1,// In this case this means higher on the screen which means a lower y value and a lower row index
5085
- Below = 2
5086
- }
5087
- /**
5088
- * A reactive/observable state of each GridDataRow's current behavior.
5089
- *
5090
- * We set up the RowStates in a tree, just like GridDataRow, to make business logic
5091
- * that uses parent/children easier to write, i.e. selected-ness and collapsed-ness.
5092
- */
5093
- declare class RowState<R extends Kinded> {
5094
- private states;
5095
- parent: RowState<R> | undefined;
5096
- /** Our row, not actually observed, b/c each `createRows` calc creates unstable rows. */
5097
- private _row;
5098
- /** Our data, only ref observed, so we don't crawl into GraphQL fragments. */
5099
- private _data;
5100
- /** Our children row states, as of the latest `props.rows`, without any filtering applied. */
5101
- children: RowState<R>[] | undefined;
5102
- /** Whether we are *directly* selected. */
5103
- selected: boolean;
5104
- /** Whether we are collapsed. */
5105
- collapsed: boolean;
5106
- /** Whether we are dragged over. */
5107
- isDraggedOver: DraggedOver;
5108
- /**
5109
- * Whether our `row` had been in `props.rows`, but then removed _while being
5110
- * selected_, i.e. potentially by server-side filters.
5111
- *
5112
- * We have had a large foot-gun where users "select a row", change the filters,
5113
- * the row disappears (filtered out), and the user clicks "Go!", but the table
5114
- * thinks their previously-selected row is gone (b/c it's not in view), and
5115
- * then the row is inappropriately deleted/unassociated/etc. (b/c in the user's
5116
- * head, it is "still selected").
5117
- *
5118
- * To avoid this, we by default keep selected rows, as "kept rows", to make
5119
- * extra sure the user wants them to go away.
5120
- *
5121
- * Soft-deleted rows are rows that were removed from `props.rows` (i.e. we
5122
- * suspect are just hidden by a changed server-side-filter), and hard-deleted
5123
- * rows are rows the page called `api.deleteRow` and confirmed it should be
5124
- * actively removed.
5125
- */
5126
- removed: false | "soft" | "hard";
5127
- private isCalculatingDirectMatch;
5128
- constructor(states: RowStates<R>, parent: RowState<R> | undefined, row: GridDataRow<R>);
5129
- /** Returns a stable-ish row identity that will only change if our `data` changes. */
5130
- get row(): GridDataRow<R>;
5131
- /** Accepts a new unstable row, i.e. each `createRows` creates a new row literal. */
5132
- set row(row: GridDataRow<R>);
5133
- /**
5134
- * Whether we match a client-side filter; true if no filter is in place.
5135
- *
5136
- * We should try and keep this based solely on "does/does not match the filter",
5137
- * and do any overrides for things like pinning/kept rows/etc. elsewhere.
5138
- */
5139
- get isMatched(): boolean;
5140
- /**
5141
- * Whether we are effectively selected, for `GridTableApi.getSelectedRows`.
5142
- *
5143
- * Note that we don't use "I'm selected || my parent is selected" logic here, because whether a child is selected
5144
- * is actually based on whether it was _visible at the time the parent was selected_. So, we can't just assume
5145
- * "a parent being selected means the child is also selected", and instead parents have to push selected-ness down
5146
- * to their visible children explicitly.
5147
- */
5148
- get isSelected(): boolean;
5149
- /** The UI state for checked/unchecked + "partially checked" for parents. */
5150
- get selectedState(): SelectedState;
5151
- /**
5152
- * A special SelectedState that "sees through"/ignores inferSelectedState, so the header works.
5153
- *
5154
- * I.e. a row might have `inferSelectedState: false`, so is showing unchecked, but the header
5155
- * wants to show partial-ness whenever any given child is selected.
5156
- */
5157
- get selectedStateForHeader(): SelectedState;
5158
- /**
5159
- * Called to explicitly select/unselect this row.
5160
- *
5161
- * This could be either because the user clicked directly on us, or because we're a visible
5162
- * child of a selected parent row.
5163
- */
5164
- select(selected: boolean): void;
5165
- /** Marks the row as removed from `props.rows`, to potentially become kept. */
5166
- markRemoved(): void;
5167
- toggleCollapsed(): void;
5168
- /** Whether this is a selected-but-filtered-out row that we should hoist to the top. */
5169
- get isKept(): boolean;
5170
- get isLastKeptRow(): boolean;
5171
- get key(): string;
5172
- get kind(): string;
5173
- get isActive(): boolean;
5174
- get level(): number;
5175
- private get inferSelectedState();
5176
- /** Returns this row and, if we're not collapsed, our children. */
5177
- get selfAndMaybeChildren(): RowState<R>[];
5178
- private get visibleChildren();
5179
- private get visibleDirectlyMatchedChildren();
5180
- /** The `visibleChildren`, but with the current sort config applied. */
5181
- private get visibleSortedChildren();
5182
- private get hasSelectableChildren();
5183
- /**
5184
- * Returns whether this row should act like a parent.
5185
- *
5186
- * This means "has children" and "does not have inferSelectedState: false"
5187
- * set. I.e. `inferSelectedState: false` allows a parent with children to
5188
- * still act as its own selectable identity.
5189
- *
5190
- * We also check `children.length > 0`, because sometimes pages will calc a
5191
- * row's children as `children = someList.map(...)`, and if the list is empty,
5192
- * they want the row to be selectable.
5193
- */
5194
- private get isParent();
5195
- private get isPinned();
5196
- get api(): GridRowApi<R>;
5197
- get isReservedKind(): boolean;
5198
- /** A dedicated method to "looking down" recursively, to avoid loops in `isMatched`. */
5199
- private get hasDirectlyMatchedChildren();
5200
- /** A dedicated method to "looking up" recursively, to avoid loops in `isMatched`. */
5201
- private get hasDirectlyMatchedParent();
5202
- private get isDirectlyMatched();
5203
- }
5204
-
5205
4868
  type SelectedState = "checked" | "unchecked" | "partial";
5206
4869
  /**
5207
4870
  * Stores the collapsed & selected state of rows.
@@ -5278,246 +4941,182 @@ declare class TableState<R extends Kinded> {
5278
4941
  isCollapsed(id: string): boolean;
5279
4942
  toggleCollapsed(id: string): void;
5280
4943
  deleteRows(ids: string[]): void;
5281
- maybeSetRowDraggedOver(id: string, draggedOver: DraggedOver, requireSameParentRow?: GridDataRow<R> | undefined): void;
5282
- }
5283
- /** Provides a context for rows to access their table's `TableState`. */
5284
- declare const TableStateContext: React__default.Context<{
5285
- tableState: TableState<any>;
5286
- tableContainerRef?: React__default.MutableRefObject<HTMLElement | null>;
5287
- }>;
5288
- type ColumnSort = {
5289
- columnId: string;
5290
- direction: Direction;
5291
- };
5292
- type SortState = {
5293
- current?: ColumnSort;
5294
- /** The persistent sort is always applied first, i.e. for schedules, probably. */
5295
- persistent?: ColumnSort;
5296
- };
5297
- type SortOn = "client" | "server" | undefined;
5298
-
5299
- declare function sortRows<R extends Kinded>(columns: GridColumnWithId<R>[], rows: GridDataRow<R>[], sortState: SortState, caseSensitive: boolean): GridDataRow<R>[];
5300
- /** Creates a comparator for two GridDataRows based on the current sortState. */
5301
- declare function sortFn<R extends Kinded>(columns: GridColumnWithId<R>[], sortState: SortState, caseSensitive: boolean): (a: GridDataRow<R>, b: GridDataRow<R>) => number;
5302
- declare function ensureClientSideSortValueIsSortable(sortOn: SortOn, isHeader: boolean, column: GridColumnWithId<any>, idx: number, maybeContent: ReactNode | GridCellContent): void;
5303
-
5304
- /** If a column def return just string text for a given row, apply some default styling. */
5305
- declare function toContent(maybeContent: ReactNode | GridCellContent, isHeader: boolean, canSortColumn: boolean, isClientSideSorting: boolean, style: GridStyle, as: RenderAs, alignment: GridCellAlignment, column: GridColumnWithId<any>, isExpandableHeader: boolean, isExpandable: boolean, minStickyLeftOffset: number, isKeptSelectedRow: boolean): ReactNode;
5306
- declare function isGridCellContent(content: ReactNode | GridCellContent): content is GridCellContent;
5307
- type DragData<R extends Kinded> = {
5308
- rowRenderRef: React.RefObject<HTMLTableRowElement>;
5309
- onDragStart?: (row: GridDataRow<R>, event: React.DragEvent<HTMLElement>) => void;
5310
- onDragEnd?: (row: GridDataRow<R>, event: React.DragEvent<HTMLElement>) => void;
5311
- onDrop?: (row: GridDataRow<R>, event: React.DragEvent<HTMLElement>) => void;
5312
- onDragEnter?: (row: GridDataRow<R>, event: React.DragEvent<HTMLElement>) => void;
5313
- onDragOver?: (row: GridDataRow<R>, event: React.DragEvent<HTMLElement>) => void;
5314
- };
5315
- /** Return the content for a given column def applied to a given row. */
5316
- declare function applyRowFn<R extends Kinded>(column: GridColumnWithId<R>, row: GridDataRow<R>, api: GridRowApi<R>, level: number, expanded: boolean, dragData?: DragData<R>): ReactNode | GridCellContent;
5317
- declare const ASC: "ASC";
5318
- declare const DESC: "DESC";
5319
- declare const emptyCell: GridCellContent;
5320
- declare function getFirstOrLastCellCss<R extends Kinded>(style: GridStyle, columnIndex: number, columns: GridColumnWithId<R>[], colspan?: number): Properties;
5321
- /** A heuristic to detect the result of `React.createElement` / i.e. JSX. */
5322
- declare function isJSX(content: any): boolean;
5323
- declare function getAlignment(column: GridColumnWithId<any>, maybeContent: ReactNode | GridCellContent): GridCellAlignment;
5324
- declare function getJustification(column: GridColumnWithId<any>, maybeContent: ReactNode | GridCellContent, as: RenderAs, alignment: GridCellAlignment): {
5325
- textAlign: csstype.Property.TextAlign | undefined;
5326
- };
5327
- declare function maybeApplyFunction<T>(row: T, maybeFn: Properties | ((row: T) => Properties) | undefined): Properties | undefined;
5328
- declare function matchesFilter(maybeContent: ReactNode | GridCellContent, filter: string): boolean;
5329
- declare const HEADER = "header";
5330
- declare const TOTALS = "totals";
5331
- /** Tables expandable columns get an extra header. */
5332
- declare const EXPANDABLE_HEADER = "expandableHeader";
5333
- declare const KEPT_GROUP = "keptGroup";
5334
- declare const reservedRowKinds: string[];
5335
- declare const zIndices: {
5336
- stickyHeader: number;
5337
- stickyColumns: number;
5338
- expandableHeaderTitle: number;
5339
- expandableHeaderIcon: number;
4944
+ maybeSetRowDraggedOver(id: string, draggedOver: DraggedOver, requireSameParentRow?: GridDataRow<R> | undefined): void;
4945
+ }
4946
+ /** Provides a context for rows to access their table's `TableState`. */
4947
+ declare const TableStateContext: React__default.Context<{
4948
+ tableState: TableState<any>;
4949
+ tableContainerRef?: React__default.MutableRefObject<HTMLElement | null>;
4950
+ }>;
4951
+ type ColumnSort = {
4952
+ columnId: string;
4953
+ direction: Direction;
5340
4954
  };
5341
- /** Loads an array from sessionStorage, if it exists, or `undefined`. */
5342
- declare function loadArrayOrUndefined(key: string): any;
5343
- declare function insertAtIndex<T>(array: Array<T>, element: T, index: number): Array<T>;
5344
- declare function isCursorBelowMidpoint(target: HTMLElement, clientY: number): boolean;
5345
- declare function recursivelyGetContainingRow<R extends Kinded>(rowId: string, rowArray: GridDataRow<R>[], parent?: GridDataRow<R>): {
5346
- array: GridDataRow<R>[];
5347
- parent: GridDataRow<R> | undefined;
5348
- } | undefined;
5349
- declare function getTableRefWidthStyles(isVirtual: boolean): {
5350
- width: csstype.Property.Width<string | 0> | undefined;
4955
+ type SortState = {
4956
+ current?: ColumnSort;
4957
+ /** The persistent sort is always applied first, i.e. for schedules, probably. */
4958
+ persistent?: ColumnSort;
5351
4959
  };
4960
+ type SortOn = "client" | "server" | undefined;
5352
4961
 
5353
- declare function visit(rows: GridDataRow<any>[], fn: (row: GridDataRow<any>) => void): void;
4962
+ /**
4963
+ * Manages our tree of observable RowStates that manage each GridDataRow's behavior.
4964
+ */
4965
+ declare class RowStates<R extends Kinded> {
4966
+ private map;
4967
+ readonly table: TableState<R>;
4968
+ readonly storage: RowStorage<R>;
4969
+ private readonly header;
4970
+ private keptGroupRow;
4971
+ /** The first level of rows, i.e. not the header (or kept group), but the totals + top-level children. */
4972
+ private topRows;
4973
+ constructor(table: TableState<R>);
4974
+ /** Returns a flat list of all of our RowStates. */
4975
+ get allStates(): RowState<R>[];
4976
+ /** Returns the `RowState` for the given `id`. We should probably require `kind`. */
4977
+ get(id: string): RowState<R>;
4978
+ /**
4979
+ * Merge a new set of `rows` prop into our state.
4980
+ *
4981
+ * Any missing rows are marked as `wasRemoved` so we can consider them "kept" if they're also selected.
4982
+ */
4983
+ setRows(rows: GridDataRow<R>[]): void;
4984
+ /** Fully delete `ids`, so they don't show up in kept rows anymore. */
4985
+ delete(ids: string[]): void;
4986
+ /** Implements special collapse behavior, which is just the header's collapse/uncollapse. */
4987
+ toggleCollapsed(id: string): void;
4988
+ get visibleRows(): RowState<R>[];
4989
+ /** Returns kept rows, i.e. those that were user-selected but then client-side or server-side filtered. */
4990
+ get keptRows(): RowState<R>[];
4991
+ get collapsedRows(): RowState<R>[];
4992
+ private createHeaderRow;
4993
+ /** Create our synthetic "group row" for kept rows, that users never pass in, but we self-inject as needed. */
4994
+ private createKeptGroupRow;
4995
+ maybeSetRowDraggedOver(id: string, draggedOver: DraggedOver, requireSameParentRow?: GridDataRow<R> | undefined): void;
4996
+ }
5354
4997
 
5355
- type InputStylePalette = "success" | "warning" | "caution" | "info";
5356
- interface PresentationFieldProps {
5357
- numberAlignment?: "left" | "right";
5358
- /** Sets the label position or visibility. Defaults to "above" */
5359
- labelStyle?: "inline" | "hidden" | "above" | "left";
5360
- /** Defines the width property of the input field wrapper when using `labelStyle="left"`. */
5361
- labelLeftFieldWidth?: number | string;
5362
- labelSuffix?: LabelSuffixStyle;
5363
- borderless?: boolean;
5364
- borderOnHover?: boolean;
5365
- compact?: boolean;
5366
- typeScale?: Typography;
5367
- visuallyDisabled?: false;
5368
- errorInTooltip?: true;
5369
- /** Allow the fields to grow to the width of its container. By default, fields will extend up to 550px */
5370
- fullWidth?: boolean;
5371
- /** Changes bg and hoverBg; Takes priority over `contrast`; Useful when showing many fields w/in a table that require user attention; In no way should be used as a replacement for error/focus state */
5372
- inputStylePalette?: InputStylePalette;
4998
+ declare enum DraggedOver {
4999
+ None = 0,
5000
+ Above = 1,// In this case this means higher on the screen which means a lower y value and a lower row index
5001
+ Below = 2
5373
5002
  }
5374
- type PresentationContextProps = {
5375
- /** `inputStylePalette` omitted because it is too dependent on the individual field use case to be controlled at this level */
5376
- fieldProps?: Omit<PresentationFieldProps, "inputStylePalette">;
5377
- gridTableStyle?: GridStyle;
5378
- wrap?: boolean;
5379
- };
5380
- declare function PresentationProvider(props: PropsWithChildren<PresentationContextProps>): _emotion_react_jsx_runtime.JSX.Element;
5381
5003
  /**
5382
- * Label settings for required/optional fields.
5004
+ * A reactive/observable state of each GridDataRow's current behavior.
5383
5005
  *
5384
- * We may want to just hard-code this behavior, so that it's very consistent,
5385
- * but for now making it configurable.
5006
+ * We set up the RowStates in a tree, just like GridDataRow, to make business logic
5007
+ * that uses parent/children easier to write, i.e. selected-ness and collapsed-ness.
5386
5008
  */
5387
- type LabelSuffixStyle = {
5388
- /** The suffix to use for required fields. */
5389
- required?: string;
5390
- /** The suffix to use for explicitly optional (i.e. `required=false`) fields. */
5391
- optional?: string;
5392
- };
5393
-
5394
- /** Completely static look & feel, i.e. nothing that is based on row kinds/content. */
5395
- interface GridStyle {
5396
- /** Applied to the base div element. */
5397
- rootCss?: Properties;
5009
+ declare class RowState<R extends Kinded> {
5010
+ private states;
5011
+ parent: RowState<R> | undefined;
5012
+ /** Our row, not actually observed, b/c each `createRows` calc creates unstable rows. */
5013
+ private _row;
5014
+ /** Our data, only ref observed, so we don't crawl into GraphQL fragments. */
5015
+ private _data;
5016
+ /** Our children row states, as of the latest `props.rows`, without any filtering applied. */
5017
+ children: RowState<R>[] | undefined;
5018
+ /** Whether we are *directly* selected. */
5019
+ selected: boolean;
5020
+ /** Whether we are collapsed. */
5021
+ collapsed: boolean;
5022
+ /** Whether we are dragged over. */
5023
+ isDraggedOver: DraggedOver;
5398
5024
  /**
5399
- * Applied as the base body-row cell styling (commonly used for row separators).
5400
- * This is applied to body rows broadly (including the last body row); use
5401
- * `lastRowCellCss`/`lastRowCss` to adjust/cancel any final-row treatment.
5025
+ * Whether our `row` had been in `props.rows`, but then removed _while being
5026
+ * selected_, i.e. potentially by server-side filters.
5027
+ *
5028
+ * We have had a large foot-gun where users "select a row", change the filters,
5029
+ * the row disappears (filtered out), and the user clicks "Go!", but the table
5030
+ * thinks their previously-selected row is gone (b/c it's not in view), and
5031
+ * then the row is inappropriately deleted/unassociated/etc. (b/c in the user's
5032
+ * head, it is "still selected").
5033
+ *
5034
+ * To avoid this, we by default keep selected rows, as "kept rows", to make
5035
+ * extra sure the user wants them to go away.
5036
+ *
5037
+ * Soft-deleted rows are rows that were removed from `props.rows` (i.e. we
5038
+ * suspect are just hidden by a changed server-side-filter), and hard-deleted
5039
+ * rows are rows the page called `api.deleteRow` and confirmed it should be
5040
+ * actively removed.
5402
5041
  */
5403
- betweenRowsCss?: Properties;
5404
- /** Applied on the last row of the table, typically to override/cancel `betweenRowsCss`. */
5405
- lastRowCss?: Properties;
5406
- /** Applied on the first row of the table (could be the Header or Totals row). */
5407
- firstRowCss?: Properties;
5408
- /** Applied to every non-header row of the table */
5409
- nonHeaderRowCss?: Properties;
5410
- /** Applied to the first body row, i.e. if you want to cancel out `betweenRowsCss`. */
5411
- firstBodyRowCss?: Properties;
5412
- /** Applied to all cell divs (via a selector off the base div). */
5413
- cellCss?: Properties;
5042
+ removed: false | "soft" | "hard";
5043
+ private isCalculatingDirectMatch;
5044
+ constructor(states: RowStates<R>, parent: RowState<R> | undefined, row: GridDataRow<R>);
5045
+ /** Returns a stable-ish row identity that will only change if our `data` changes. */
5046
+ get row(): GridDataRow<R>;
5047
+ /** Accepts a new unstable row, i.e. each `createRows` creates a new row literal. */
5048
+ set row(row: GridDataRow<R>);
5414
5049
  /**
5415
- * Applied to the header row divs.
5050
+ * Whether we match a client-side filter; true if no filter is in place.
5416
5051
  *
5417
- * NOTE `as=virtual`: When using a virtual table with the goal of adding space
5418
- * between the header and the first row use `firstBodyRowCss` with a
5419
- * margin-top instead. Using `headerCellCss` will not work since the header
5420
- * rows are wrapper with Chrome rows.
5052
+ * We should try and keep this based solely on "does/does not match the filter",
5053
+ * and do any overrides for things like pinning/kept rows/etc. elsewhere.
5421
5054
  */
5422
- headerCellCss?: Properties;
5423
- /** Applied to 'kind: "totals"' cells */
5424
- totalsCellCss?: Properties;
5425
- /** Applied to 'kind: "expandableHeader"' cells */
5426
- expandableHeaderCss?: Properties;
5427
- /** Applied to expandable header cells that are not the last table column. */
5428
- expandableHeaderNonLastColumnCss?: Properties;
5429
- /** Applied to the first cell of all rows, i.e. for table-wide padding or left-side borders. */
5430
- firstCellCss?: Properties;
5431
- /** Applied to the last cell of all rows, i.e. for table-wide padding or right-side borders. */
5432
- lastCellCss?: Properties;
5433
- /** Applied to every cell in the first table-head row (expandableHeader/header/totals). */
5434
- firstRowCellCss?: Properties;
5435
- /** Applied to the first cell in the first table-head row. */
5436
- firstRowFirstCellCss?: Properties;
5437
- /** Applied to the last cell in the first table-head row. */
5438
- firstRowLastCellCss?: Properties;
5439
- /** Applied to every cell in the last table-body row. */
5440
- lastRowCellCss?: Properties;
5441
- /** Applied to the first cell in the last table-body row. */
5442
- lastRowFirstCellCss?: Properties;
5443
- /** Applied to the last cell in the last table-body row. */
5444
- lastRowLastCellCss?: Properties;
5445
- /** Applied if there is a fallback/overflow message showing. */
5446
- firstRowMessageCss?: Properties;
5447
- /** Applied on hover if a row has a rowLink/onClick set. */
5448
- rowHoverColor?: Palette | "none";
5449
- /** Applied on hover of a row */
5450
- nonHeaderRowHoverCss?: Properties;
5451
- /** Default content to put into an empty cell */
5452
- emptyCell?: ReactNode;
5453
- presentationSettings?: Pick<PresentationFieldProps, "borderless" | "borderOnHover" | "typeScale"> & Pick<PresentationContextProps, "wrap">;
5454
- /** Minimum table width in pixels. Used when calculating columns sizes */
5455
- minWidthPx?: number;
5456
- /** Css to apply at each level of a parent/child nested table. */
5457
- levels?: Record<number, {
5458
- /** Number of pixels to indent the row. This value will be subtracted from the "first content column" width. First content column is the first column that is not an 'action' column (i.e. non-checkbox or non-collapse button column) */
5459
- rowIndent?: number;
5460
- cellCss?: Properties;
5461
- firstContentColumn?: Properties;
5462
- }> | ((level: number) => {
5463
- rowIndent?: number;
5464
- cellCss?: Properties;
5465
- firstContentColumn?: Properties;
5466
- });
5467
- /** Allows for customization of the background color used to denote an "active" row */
5468
- activeBgColor?: Palette;
5469
- /** Defines styles for the group row which holds the selected rows that have been filtered out */
5470
- keptGroupRowCss?: Properties;
5471
- /** Defines styles for the last row `keptGroup` to provide separation from the rest of the table */
5472
- keptLastRowCss?: Properties;
5473
- }
5474
- interface GridStyleDef {
5475
- /** Changes the height of the rows when `rowHeight: fixed` to provide more space between rows for input fields. */
5476
- inlineEditing?: boolean;
5477
- /** Adds styling for grouped rows */
5478
- grouped?: boolean;
5479
- /** 'fixed' height rows do not allow text to wrap. 'flexible' allows for wrapping. Defaults to `flexible` */
5480
- rowHeight?: "fixed" | "flexible";
5481
- /** Enables cells Highlight and hover */
5482
- cellHighlight?: boolean;
5483
- /** Applies a white background to the whole table, including header and group rows. */
5484
- allWhite?: boolean;
5485
- /** Whether to apply a border around the whole table */
5486
- bordered?: boolean;
5487
- /** Whether to show a hover effect on rows. Defaults to true */
5488
- rowHover?: boolean;
5489
- /** Defines the vertical alignment of the content of the cells for the whole table (not including the 'header' rows). Defaults to `center` */
5490
- vAlign?: "top" | "center" | "bottom";
5491
- /** Defines the Typography for the table body's cells (not the header). This only applies to rows that are not nested/grouped */
5492
- cellTypography?: Typography;
5493
- /** Defines if the table should highlight the row on hover. Defaults to true */
5494
- highlightOnHover?: boolean;
5495
- }
5496
- declare const getTableStyles: (props?: GridStyleDef) => GridStyle;
5497
- /** Defines row-specific styling for each given row `kind` in `R` */
5498
- type RowStyles<R extends Kinded> = {
5499
- [P in R["kind"]]?: RowStyle<DiscriminateUnion<R, "kind", P>>;
5500
- };
5501
- interface RowStyle<R extends Kinded> {
5502
- /** Applies this css to the wrapper row, i.e. for row-level hovers. */
5503
- rowCss?: Properties | ((row: R) => Properties);
5504
- /** Applies this css to each cell in the row. */
5505
- cellCss?: Properties | ((row: R) => Properties);
5506
- /** Renders the cell element, i.e. a link to get whole-row links. */
5507
- renderCell?: RenderCellFn<R>;
5508
- /** Whether the row should be a link. */
5509
- rowLink?: (row: R) => string;
5510
- /** Fired when the row is clicked, similar to rowLink but for actions that aren't 'go to this link'. */
5511
- onClick?: (row: GridDataRow<R>, api: GridTableApi<R>) => void;
5055
+ get isMatched(): boolean;
5056
+ /**
5057
+ * Whether we are effectively selected, for `GridTableApi.getSelectedRows`.
5058
+ *
5059
+ * Note that we don't use "I'm selected || my parent is selected" logic here, because whether a child is selected
5060
+ * is actually based on whether it was _visible at the time the parent was selected_. So, we can't just assume
5061
+ * "a parent being selected means the child is also selected", and instead parents have to push selected-ness down
5062
+ * to their visible children explicitly.
5063
+ */
5064
+ get isSelected(): boolean;
5065
+ /** The UI state for checked/unchecked + "partially checked" for parents. */
5066
+ get selectedState(): SelectedState;
5067
+ /**
5068
+ * A special SelectedState that "sees through"/ignores inferSelectedState, so the header works.
5069
+ *
5070
+ * I.e. a row might have `inferSelectedState: false`, so is showing unchecked, but the header
5071
+ * wants to show partial-ness whenever any given child is selected.
5072
+ */
5073
+ get selectedStateForHeader(): SelectedState;
5074
+ /**
5075
+ * Called to explicitly select/unselect this row.
5076
+ *
5077
+ * This could be either because the user clicked directly on us, or because we're a visible
5078
+ * child of a selected parent row.
5079
+ */
5080
+ select(selected: boolean): void;
5081
+ /** Marks the row as removed from `props.rows`, to potentially become kept. */
5082
+ markRemoved(): void;
5083
+ toggleCollapsed(): void;
5084
+ /** Whether this is a selected-but-filtered-out row that we should hoist to the top. */
5085
+ get isKept(): boolean;
5086
+ get isLastKeptRow(): boolean;
5087
+ get key(): string;
5088
+ get kind(): string;
5089
+ get isActive(): boolean;
5090
+ get level(): number;
5091
+ private get inferSelectedState();
5092
+ /** Returns this row and, if we're not collapsed, our children. */
5093
+ get selfAndMaybeChildren(): RowState<R>[];
5094
+ private get visibleChildren();
5095
+ private get visibleDirectlyMatchedChildren();
5096
+ /** The `visibleChildren`, but with the current sort config applied. */
5097
+ private get visibleSortedChildren();
5098
+ private get hasSelectableChildren();
5099
+ /**
5100
+ * Returns whether this row should act like a parent.
5101
+ *
5102
+ * This means "has children" and "does not have inferSelectedState: false"
5103
+ * set. I.e. `inferSelectedState: false` allows a parent with children to
5104
+ * still act as its own selectable identity.
5105
+ *
5106
+ * We also check `children.length > 0`, because sometimes pages will calc a
5107
+ * row's children as `children = someList.map(...)`, and if the list is empty,
5108
+ * they want the row to be selectable.
5109
+ */
5110
+ private get isParent();
5111
+ private get isPinned();
5112
+ get api(): GridRowApi<R>;
5113
+ get isReservedKind(): boolean;
5114
+ /** A dedicated method to "looking down" recursively, to avoid loops in `isMatched`. */
5115
+ private get hasDirectlyMatchedChildren();
5116
+ /** A dedicated method to "looking up" recursively, to avoid loops in `isMatched`. */
5117
+ private get hasDirectlyMatchedParent();
5118
+ private get isDirectlyMatched();
5512
5119
  }
5513
- /** Our original table look & feel/style. */
5514
- declare const defaultStyle: GridStyle;
5515
- /** Tightens up the padding of rows, great for rows that have form elements in them. */
5516
- declare const condensedStyle: GridStyle;
5517
- /** Renders each row as a card.
5518
- * TODO: Add `cardStyle` option to `getTableStyles` and remove this.
5519
- * */
5520
- declare const cardStyle: GridStyle;
5521
5120
 
5522
5121
  interface RowProps<R extends Kinded> {
5523
5122
  as: RenderAs;
@@ -5596,6 +5195,33 @@ type GridDataRow<R extends Kinded> = {
5596
5195
  draggable?: boolean;
5597
5196
  } & IfAny<R, AnyObject, DiscriminateUnion<R, "kind", R["kind"]>>;
5598
5197
 
5198
+ /**
5199
+ * Allows a caller to ask for the currently shown rows, given the current sorting/filtering.
5200
+ *
5201
+ * We will probably end up generalizing this into a GridTableApi that exposes more
5202
+ * actions i.e. scrolling to a row and selection state.
5203
+ */
5204
+ interface GridRowLookup<R extends Kinded> {
5205
+ /** Returns both the immediate next/prev rows, as well as `[kind].next/prev` values, ignoring headers. */
5206
+ lookup(row: GridDataRow<R>, additionalFilter?: (row: GridDataRow<R>) => boolean): NextPrev<R> & {
5207
+ [P in R["kind"]]: NextPrev<DiscriminateUnion<R, "kind", P>>;
5208
+ };
5209
+ /** Returns the list of currently filtered/sorted rows, without headers. */
5210
+ currentList(): readonly GridDataRow<R>[];
5211
+ /**
5212
+ * Scroll's to the row with the given kind + id. Requires using `as=virtual`.
5213
+ * Will skip re-scrolling to a row if it's already visible.
5214
+ */
5215
+ scrollTo(kind: R["kind"], id: string): void;
5216
+ }
5217
+ interface NextPrev<R extends Kinded> {
5218
+ next: GridDataRow<R> | undefined;
5219
+ prev: GridDataRow<R> | undefined;
5220
+ }
5221
+ declare function createRowLookup<R extends Kinded>(api: GridTableApiImpl<R>, virtuosoRef: MutableRefObject<VirtuosoHandle | null>, virtuosoRangeRef: MutableRefObject<ListRange | null>): GridRowLookup<R>;
5222
+ /** Optionally takes into consideration if a row is already in view before attempting to scroll to it. */
5223
+ declare function shouldSkipScrollTo(index: number, virtuosoRangeRef: MutableRefObject<ListRange | null>): boolean;
5224
+
5599
5225
  /**
5600
5226
  * Creates an `api` handle to drive a `GridTable`.
5601
5227
  *
@@ -5863,7 +5489,7 @@ interface GridTableProps<R extends Kinded, X> {
5863
5489
  *
5864
5490
  * https://docs.google.com/document/d/1DFnlkDubK4nG_GLf_hB8yp0flnSNt_3IBh5iOicuaFM/edit#heading=h.9m9cpwgeqfc9
5865
5491
  */
5866
- declare function GridTable<R extends Kinded, X extends Only<GridTableXss, X> = any>(props: GridTableProps<R, X>): _emotion_react_jsx_runtime.JSX.Element;
5492
+ declare function GridTable<R extends Kinded, X extends Only<GridTableXss, X> = any>(props: GridTableProps<R, X>): JSX.Element;
5867
5493
 
5868
5494
  type ToggleChipXss$2 = Xss<Margin>;
5869
5495
  interface ToggleChipProps<X> {
@@ -5873,10 +5499,13 @@ interface ToggleChipProps<X> {
5873
5499
  disabled?: boolean;
5874
5500
  icon?: IconKey;
5875
5501
  }
5876
- declare function ToggleChip<X extends Only<ToggleChipXss$2, X>>(props: ToggleChipProps<X>): _emotion_react_jsx_runtime.JSX.Element;
5502
+ declare function ToggleChip<X extends Only<ToggleChipXss$2, X>>(props: ToggleChipProps<X>): JSX.Element;
5877
5503
  declare const chipHoverStyles: {
5878
5504
  backgroundColor: csstype.Property.BackgroundColor | undefined;
5879
5505
  };
5506
+ declare const chipHoverOnlyStyles: {
5507
+ backgroundColor: csstype.Property.BackgroundColor | undefined;
5508
+ };
5880
5509
  declare const chipDisabledStyles: {
5881
5510
  color: csstype.Property.Color | undefined;
5882
5511
  } & {
@@ -5891,7 +5520,7 @@ interface ToggleChipsProps<T, X> {
5891
5520
  xss?: X;
5892
5521
  }
5893
5522
  /** Renders a list of `Chip`s, with wrapping & appropriate margin between each `Chip`. */
5894
- declare function ToggleChips<T, X extends Only<ToggleChipXss$1, X>>(props: ToggleChipsProps<T, X>): _emotion_react_jsx_runtime.JSX.Element;
5523
+ declare function ToggleChips<T, X extends Only<ToggleChipXss$1, X>>(props: ToggleChipsProps<T, X>): JSX.Element;
5895
5524
 
5896
5525
  type AccordionXss = Xss<Padding>;
5897
5526
  interface AccordionProps<X = AccordionXss> {
@@ -5920,7 +5549,7 @@ interface AccordionProps<X = AccordionXss> {
5920
5549
  /** Modifies the typography, padding, icon size and background color of the accordion header */
5921
5550
  compact?: boolean;
5922
5551
  }
5923
- declare function Accordion<X extends Only<AccordionXss, X>>(props: AccordionProps<X>): _emotion_react_jsx_runtime.JSX.Element;
5552
+ declare function Accordion<X extends Only<AccordionXss, X>>(props: AccordionProps<X>): JSX.Element;
5924
5553
  type AccordionSize = "xs" | "sm" | "md" | "lg";
5925
5554
 
5926
5555
  interface AccordionListProps {
@@ -5931,13 +5560,113 @@ interface AccordionListProps {
5931
5560
  /** Modifies the typography, padding, icon size and background color of the accordion header */
5932
5561
  compact?: boolean;
5933
5562
  }
5934
- declare function AccordionList(props: AccordionListProps): _emotion_react_jsx_runtime.JSX.Element;
5563
+ declare function AccordionList(props: AccordionListProps): JSX.Element;
5935
5564
 
5936
5565
  interface AutoSaveIndicatorProps {
5937
5566
  hideOnIdle?: boolean;
5938
5567
  doNotReset?: boolean;
5939
5568
  }
5940
- declare function AutoSaveIndicator({ hideOnIdle, doNotReset }: AutoSaveIndicatorProps): _emotion_react_jsx_runtime.JSX.Element | null;
5569
+ declare function AutoSaveIndicator({ hideOnIdle, doNotReset }: AutoSaveIndicatorProps): JSX.Element | null;
5570
+
5571
+ interface AvatarProps {
5572
+ src: string | undefined;
5573
+ name?: string;
5574
+ size?: AvatarSize;
5575
+ showName?: boolean;
5576
+ disableTooltip?: boolean;
5577
+ }
5578
+ declare function Avatar({ src, name, size, showName, disableTooltip, ...others }: AvatarProps): JSX.Element;
5579
+ type AvatarSize = "sm" | "md" | "lg" | "xl";
5580
+
5581
+ /** Base Interfaced */
5582
+ interface BeamFocusableProps {
5583
+ /** Whether the element should receive focus on render. */
5584
+ autoFocus?: boolean;
5585
+ forceFocusStyles?: boolean;
5586
+ }
5587
+ interface BeamButtonProps {
5588
+ /**
5589
+ * Whether the interactive element is disabled.
5590
+ *
5591
+ * If a ReactNode, it's treated as a "disabled reason" that's shown in a tooltip.
5592
+ */
5593
+ disabled?: boolean | ReactNode;
5594
+ /** If function, then it is the handler that is called when the press is released over the target. Otherwise if string, it is the URL path for the link */
5595
+ onClick: ((e: PressEvent) => void) | ((e: PressEvent) => Promise<void>) | string;
5596
+ /** Text to be shown via a tooltip when the user hovers over the button */
5597
+ tooltip?: ReactNode;
5598
+ /** Whether to open link in a new tab. This only effects the element if the `onClick` is a `string`/URL. */
5599
+ openInNew?: boolean;
5600
+ }
5601
+ type TextFieldXss = Xss<"textAlign" | "justifyContent" | "fontWeight" | "fontSize" | "lineHeight">;
5602
+ interface BeamTextFieldProps<X> extends BeamFocusableProps, PresentationFieldProps {
5603
+ /** Whether the field is disabled. If a ReactNode, it's treated as a "disabled reason" that's shown in a tooltip. */
5604
+ disabled?: boolean | ReactNode;
5605
+ errorMsg?: string;
5606
+ helperText?: string | ReactNode;
5607
+ /** Input label */
5608
+ label: string;
5609
+ /** Marks the field as required or optional, the default is assumed ambiguous/unknown. */
5610
+ required?: boolean;
5611
+ value: string | undefined;
5612
+ /** Handler called when the interactive element state changes. */
5613
+ onChange: (value: string | undefined) => void;
5614
+ /** Called when the component loses focus, mostly for BoundTextField to use. */
5615
+ onBlur?: VoidFunction;
5616
+ onFocus?: VoidFunction;
5617
+ onEnter?: VoidFunction;
5618
+ /** Whether the field is readOnly. If a ReactNode, it's treated as a "readOnly reason" that's shown in a tooltip. */
5619
+ readOnly?: boolean | ReactNode;
5620
+ placeholder?: string;
5621
+ /** Styles overrides */
5622
+ xss?: X;
5623
+ }
5624
+ interface TextFieldInternalProps {
5625
+ /**
5626
+ * Denoting a field as 'compound' will remove existing borders on the returned field, including the 2px of height added by the borders.
5627
+ * It is expected that the caller reintroduces the border to achieve the expected field height and handles the custom border logic of a Compound Field
5628
+ * This is explicitly an internal property that is not exposed to any field's API.
5629
+ */
5630
+ compound?: boolean;
5631
+ /** Forces focus styles for storybook purposes */
5632
+ forceFocus?: true;
5633
+ /** Forces hover styles for storybook purposes */
5634
+ forceHover?: boolean;
5635
+ }
5636
+
5637
+ interface AvatarButtonProps extends AvatarProps, BeamButtonProps, BeamFocusableProps {
5638
+ menuTriggerProps?: AriaButtonProps;
5639
+ buttonRef?: RefObject<HTMLButtonElement>;
5640
+ /** Storybook-only visual state overrides for snapshotting pseudo-interactions. */
5641
+ __storyState?: {
5642
+ hovered?: boolean;
5643
+ focusVisible?: boolean;
5644
+ pressed?: boolean;
5645
+ };
5646
+ }
5647
+ declare function AvatarButton(props: AvatarButtonProps): JSX.Element;
5648
+ declare const hoverStyles: {
5649
+ boxShadow: csstype.Property.BoxShadow | undefined;
5650
+ };
5651
+ declare const pressedOverlayCss: {
5652
+ borderRadius: csstype.Property.BorderRadius<string | 0> | undefined;
5653
+ } & {
5654
+ backgroundColor: csstype.Property.BackgroundColor | undefined;
5655
+ } & {
5656
+ width: csstype.Property.Width<string | 0> | undefined;
5657
+ } & {
5658
+ height: csstype.Property.Height<string | 0> | undefined;
5659
+ } & {
5660
+ position: csstype.Property.Position | undefined;
5661
+ } & {
5662
+ top: csstype.Property.Top<string | 0> | undefined;
5663
+ } & {
5664
+ left: csstype.Property.Left<string | 0> | undefined;
5665
+ } & {
5666
+ opacity: csstype.Property.Opacity | undefined;
5667
+ } & {
5668
+ pointerEvents: csstype.Property.PointerEvents | undefined;
5669
+ };
5941
5670
 
5942
5671
  interface AvatarGroupProps {
5943
5672
  avatars: {
@@ -5946,7 +5675,7 @@ interface AvatarGroupProps {
5946
5675
  }[];
5947
5676
  size?: AvatarSize;
5948
5677
  }
5949
- declare function AvatarGroup(props: AvatarGroupProps): _emotion_react_jsx_runtime.JSX.Element;
5678
+ declare function AvatarGroup(props: AvatarGroupProps): JSX.Element;
5950
5679
 
5951
5680
  interface BannerProps {
5952
5681
  type: BannerTypes;
@@ -5954,7 +5683,7 @@ interface BannerProps {
5954
5683
  onClose?: VoidFunction;
5955
5684
  showIcon?: boolean;
5956
5685
  }
5957
- declare function Banner(props: BannerProps): _emotion_react_jsx_runtime.JSX.Element;
5686
+ declare function Banner(props: BannerProps): JSX.Element;
5958
5687
  type BannerTypes = "error" | "warning" | "success" | "info" | "alert";
5959
5688
 
5960
5689
  type ModalSize = "sm" | "md" | "lg" | "xl" | "xxl";
@@ -6058,24 +5787,134 @@ interface UseSuperDrawerHook {
6058
5787
  */
6059
5788
  addCanCloseDrawerDetailCheck: (canCloseCheck: CanCloseCheck) => void;
6060
5789
  }
6061
- declare function useSuperDrawer(): UseSuperDrawerHook;
5790
+ declare function useSuperDrawer(): UseSuperDrawerHook;
5791
+
5792
+ interface BeamProviderProps extends PropsWithChildren<PresentationContextProps> {
5793
+ }
5794
+ declare function BeamProvider({ children, ...presentationProps }: BeamProviderProps): JSX.Element;
5795
+
5796
+ interface ButtonProps extends BeamButtonProps, BeamFocusableProps {
5797
+ label: ReactNode;
5798
+ variant?: ButtonVariant;
5799
+ size?: ButtonSize;
5800
+ icon?: IconProps["icon"] | null;
5801
+ /** Displays contents after the Button's label. Will be ignored for Buttons rendered as a link with an absolute URL */
5802
+ endAdornment?: ReactNode;
5803
+ /** HTML attributes to apply to the button element when it is being used to trigger a menu. */
5804
+ menuTriggerProps?: AriaButtonProps;
5805
+ buttonRef?: RefObject<HTMLElement>;
5806
+ /** Allow for setting "submit" | "button" | "reset" on button element */
5807
+ type?: ButtonHTMLAttributes<HTMLButtonElement>["type"];
5808
+ /** Denotes if this button is used to download a resource. Uses the anchor tag with the `download` attribute */
5809
+ download?: boolean;
5810
+ contrast?: boolean;
5811
+ /** Additional text to further customize button during an async request is in progress. */
5812
+ labelInFlight?: string;
5813
+ /** Shows pressed/active styles (useful when a menu is open) */
5814
+ active?: boolean;
5815
+ }
5816
+ declare function Button(props: ButtonProps): JSX.Element;
5817
+ type ButtonSize = "sm" | "md" | "lg";
5818
+ type ButtonVariant = "primary" | "secondary" | "secondaryBlack" | "tertiary" | "tertiaryDanger" | "caution" | "danger" | "quaternary" | "text" | "textSecondary";
5819
+
5820
+ interface DatePickerProps {
5821
+ value?: Date;
5822
+ onSelect: (value: Date) => void;
5823
+ disabledDays?: Matcher | Matcher[];
5824
+ dottedDays?: Matcher[];
5825
+ useYearPicker?: boolean;
5826
+ }
5827
+
5828
+ interface IconButtonProps extends BeamButtonProps, BeamFocusableProps {
5829
+ /** The icon to use within the button. */
5830
+ icon: IconProps["icon"];
5831
+ color?: Palette;
5832
+ bgColor?: Palette;
5833
+ /** The size of the icon, in increments, defaults to 3 which is 24px. */
5834
+ inc?: number;
5835
+ /** HTML attributes to apply to the button element when it is being used to trigger a menu. */
5836
+ menuTriggerProps?: AriaButtonProps;
5837
+ buttonRef?: RefObject<HTMLButtonElement>;
5838
+ /** Whether to show a 16x16px version of the IconButton */
5839
+ compact?: boolean;
5840
+ /** Whether to display the contrast variant */
5841
+ contrast?: boolean;
5842
+ /** Whether to display the circle variant */
5843
+ circle?: boolean;
5844
+ /** Indicates that the button is active/selected */
5845
+ active?: boolean;
5846
+ /** Denotes if this button is used to download a resource. Uses the anchor tag with the `download` attribute */
5847
+ download?: boolean;
5848
+ /** Provides label for screen readers - Will become a required soon */
5849
+ label?: string;
5850
+ }
5851
+ declare function IconButton(props: IconButtonProps): JSX.Element;
5852
+ declare const iconButtonStylesHover: {
5853
+ backgroundColor: csstype.Property.BackgroundColor | undefined;
5854
+ };
5855
+ declare const iconButtonContrastStylesHover: {
5856
+ backgroundColor: csstype.Property.BackgroundColor | undefined;
5857
+ };
5858
+ declare const iconButtonCircleStylesHover: {
5859
+ backgroundColor: csstype.Property.BackgroundColor | undefined;
5860
+ } & {
5861
+ borderColor: csstype.Property.BorderColor | undefined;
5862
+ };
6062
5863
 
6063
- interface BeamProviderProps extends PropsWithChildren<PresentationContextProps> {
5864
+ interface NavLinkProps extends BeamFocusableProps {
5865
+ /** active indicates the user is on the current page */
5866
+ active?: boolean;
5867
+ disabled?: boolean;
5868
+ /** if `href` isn't provided, it is treated as a <button> */
5869
+ href?: string;
5870
+ label: ReactNode;
5871
+ icon?: IconKey;
5872
+ variant: NavLinkVariant;
5873
+ openInNew?: boolean;
5874
+ contrast?: boolean;
5875
+ /** HTML attributes to apply to the button element when it is being used to trigger a menu. */
5876
+ menuTriggerProps?: AriaButtonProps;
5877
+ buttonRef?: RefObject<HTMLElement>;
6064
5878
  }
6065
- declare function BeamProvider({ children, ...presentationProps }: BeamProviderProps): _emotion_react_jsx_runtime.JSX.Element;
5879
+ type NavLinkVariant = "side" | "global";
5880
+ declare function NavLink(props: NavLinkProps): JSX.Element;
6066
5881
 
6067
- interface DatePickerProps {
6068
- value?: Date;
6069
- onSelect: (value: Date) => void;
6070
- disabledDays?: Matcher | Matcher[];
6071
- dottedDays?: Matcher[];
6072
- useYearPicker?: boolean;
5882
+ interface TextButtonTriggerProps extends Pick<ButtonProps, "label" | "variant" | "size" | "icon"> {
5883
+ }
5884
+ interface IconButtonTriggerProps extends Pick<IconButtonProps, "icon" | "color" | "compact" | "contrast" | "inc"> {
5885
+ }
5886
+ interface AvatarButtonTriggerProps extends Pick<AvatarButtonProps, "src" | "name" | "size"> {
5887
+ }
5888
+ interface NavLinkButtonTriggerProps extends Pick<NavLinkProps, "active" | "variant" | "icon"> {
5889
+ navLabel: string;
5890
+ }
5891
+ interface OverlayTriggerProps {
5892
+ trigger: TextButtonTriggerProps | IconButtonTriggerProps | AvatarButtonTriggerProps | NavLinkButtonTriggerProps;
5893
+ /** Defaults to "left" */
5894
+ placement?: "left" | "right";
5895
+ /** Whether the Button is disabled. If a ReactNode, it's treated as a "disabled reason" that's shown in a tooltip. */
5896
+ disabled?: boolean | ReactNode;
5897
+ /** Text to be shown via a tooltip when the user hovers over the button */
5898
+ tooltip?: ReactNode;
5899
+ /** The component to be shown within the overlay */
5900
+ children: ReactElement;
5901
+ /** Props returned by the useMenuTrigger hook to be passed to the button element */
5902
+ menuTriggerProps: AriaButtonProps;
5903
+ /** Ref for the button element */
5904
+ buttonRef: MutableRefObject<HTMLButtonElement | null>;
5905
+ /** Result of the useMenuTriggerState hook */
5906
+ state: MenuTriggerState;
5907
+ /** Prop set the style of the button element */
5908
+ variant?: ButtonVariant;
5909
+ hideEndAdornment?: boolean;
5910
+ showActiveBorder?: boolean;
5911
+ contrast?: boolean;
6073
5912
  }
6074
5913
 
6075
5914
  type ButtonDatePickerProps = {
6076
5915
  defaultOpen?: boolean;
6077
5916
  } & DatePickerProps & Pick<OverlayTriggerProps, "trigger" | "placement" | "disabled" | "tooltip">;
6078
- declare function ButtonDatePicker(props: ButtonDatePickerProps): _emotion_react_jsx_runtime.JSX.Element;
5917
+ declare function ButtonDatePicker(props: ButtonDatePickerProps): JSX.Element;
6079
5918
 
6080
5919
  interface ButtonGroupProps {
6081
5920
  buttons: ButtonGroupButton[];
@@ -6096,7 +5935,7 @@ type ButtonGroupButton = {
6096
5935
  /** Adds tooltip to the button */
6097
5936
  tooltip?: ReactNode;
6098
5937
  };
6099
- declare function ButtonGroup(props: ButtonGroupProps): _emotion_react_jsx_runtime.JSX.Element;
5938
+ declare function ButtonGroup(props: ButtonGroupProps): JSX.Element;
6100
5939
  type ButtonGroupSize = "xs" | "sm" | "md";
6101
5940
 
6102
5941
  type ButtonMenuBaseProps = {
@@ -6112,7 +5951,7 @@ type SelectionButtonMenuProps = {
6112
5951
  onChange: (key: string) => void;
6113
5952
  } & ButtonMenuBaseProps;
6114
5953
  type ButtonMenuProps = ButtonMenuBaseProps | SelectionButtonMenuProps;
6115
- declare function ButtonMenu(props: ButtonMenuProps): _emotion_react_jsx_runtime.JSX.Element;
5954
+ declare function ButtonMenu(props: ButtonMenuProps): JSX.Element;
6116
5955
  type MenuItemBase = {
6117
5956
  label: string;
6118
5957
  /** If the `onClick` property is set as a string, then the menu item will be rendered as a link with the `onClick` value being the href */
@@ -6145,7 +5984,7 @@ type ButtonModalProps = {
6145
5984
  storybookDefaultOpen?: boolean;
6146
5985
  hideEndAdornment?: boolean;
6147
5986
  } & Pick<OverlayTriggerProps, "trigger" | "placement" | "disabled" | "tooltip" | "showActiveBorder">;
6148
- declare function ButtonModal(props: ButtonModalProps): _emotion_react_jsx_runtime.JSX.Element;
5987
+ declare function ButtonModal(props: ButtonModalProps): JSX.Element;
6149
5988
 
6150
5989
  type TagXss = Margin | "backgroundColor" | "color";
6151
5990
  type TagType = "info" | "caution" | "warning" | "success" | "neutral";
@@ -6159,7 +5998,7 @@ interface TagProps<X> {
6159
5998
  preventTooltip?: boolean;
6160
5999
  }
6161
6000
  /** Tag used for indicating a status */
6162
- declare function Tag<X extends Only<Xss<TagXss>, X>>(props: TagProps<X>): _emotion_react_jsx_runtime.JSX.Element;
6001
+ declare function Tag<X extends Only<Xss<TagXss>, X>>(props: TagProps<X>): JSX.Element;
6163
6002
 
6164
6003
  type CardType = "card" | "list";
6165
6004
  type ImageFitType = "contain" | "cover";
@@ -6179,11 +6018,11 @@ interface CardProps {
6179
6018
  buttonMenuItems?: MenuItem[];
6180
6019
  tag?: CardTag;
6181
6020
  }
6182
- declare function Card(props: CardProps): _emotion_react_jsx_runtime.JSX.Element;
6021
+ declare function Card(props: CardProps): JSX.Element;
6183
6022
 
6184
6023
  declare function Copy(props: {
6185
6024
  children: string | ReactNode;
6186
- }): _emotion_react_jsx_runtime.JSX.Element;
6025
+ }): JSX.Element;
6187
6026
 
6188
6027
  type CountBadgeXss = "color";
6189
6028
  interface CountBadgeProps<X> {
@@ -6197,13 +6036,17 @@ interface CountBadgeProps<X> {
6197
6036
  * CountBadge displays a numeric count in a circular badge.
6198
6037
  * Automatically adjusts size for counts > 100 (increases from 16px to 18px).
6199
6038
  */
6200
- declare function CountBadge<X extends Only<Xss<CountBadgeXss>, X>>(props: CountBadgeProps<X>): _emotion_react_jsx_runtime.JSX.Element | null;
6039
+ declare function CountBadge<X extends Only<Xss<CountBadgeXss>, X>>(props: CountBadgeProps<X>): JSX.Element | null;
6201
6040
 
6041
+ declare const navLink = "navLink";
6202
6042
  /**
6203
6043
  * Applies a CSS Reset that is based on modern-normalize + TW customizations.
6044
+ *
6045
+ * The reset styles are now in CssReset.css and are loaded via a side-effect
6046
+ * import. This component is kept for API compatibility — render it at the top
6047
+ * of your app to ensure the CSS file is included in the bundle.
6204
6048
  */
6205
- declare function CssReset(): _emotion_react_jsx_runtime.JSX.Element;
6206
- declare const navLink = "navLink";
6049
+ declare function CssReset(): null;
6207
6050
 
6208
6051
  interface DnDGridProps {
6209
6052
  children: ReactNode;
@@ -6214,7 +6057,7 @@ interface DnDGridProps {
6214
6057
  /** Returns the new order of the GridItems. */
6215
6058
  onReorder: (items: string[]) => void;
6216
6059
  }
6217
- declare function DnDGrid(props: DnDGridProps): _emotion_react_jsx_runtime.JSX.Element;
6060
+ declare function DnDGrid(props: DnDGridProps): JSX.Element;
6218
6061
  type GridStyles = Pick<Properties, "gridTemplate" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gap" | "columnGap" | "rowGap">;
6219
6062
 
6220
6063
  interface useDnDGridItemProps {
@@ -6241,7 +6084,7 @@ interface DnDGridItemHandleProps {
6241
6084
  color?: Palette;
6242
6085
  }
6243
6086
  /** Provides a specific handle element for dragging a GridItem. Includes handling behaviors and interactions */
6244
- declare function DnDGridItemHandle(props: DnDGridItemHandleProps): _emotion_react_jsx_runtime.JSX.Element;
6087
+ declare function DnDGridItemHandle(props: DnDGridItemHandleProps): JSX.Element;
6245
6088
 
6246
6089
  type TestIds = Record<string, object>;
6247
6090
  /**
@@ -6363,7 +6206,7 @@ type AutocompleteProps<T> = {
6363
6206
  reason: string;
6364
6207
  })[];
6365
6208
  } & Pick<PresentationFieldProps, "labelStyle"> & Pick<TextFieldBaseProps<any>, "label" | "clearable" | "startAdornment" | "fullWidth">;
6366
- declare function Autocomplete<T extends object>(props: AutocompleteProps<T>): _emotion_react_jsx_runtime.JSX.Element;
6209
+ declare function Autocomplete<T extends object>(props: AutocompleteProps<T>): JSX.Element;
6367
6210
 
6368
6211
  interface CheckboxProps {
6369
6212
  label: string;
@@ -6393,7 +6236,7 @@ interface CheckboxProps {
6393
6236
  /** Callback fired when focus is set to the component */
6394
6237
  onFocus?: () => void;
6395
6238
  }
6396
- declare function Checkbox(props: CheckboxProps): _emotion_react_jsx_runtime.JSX.Element;
6239
+ declare function Checkbox(props: CheckboxProps): JSX.Element;
6397
6240
 
6398
6241
  interface CheckboxGroupItemOption {
6399
6242
  /** Additional text displayed below label */
@@ -6421,7 +6264,7 @@ interface CheckboxGroupProps extends Pick<PresentationFieldProps, "labelStyle">
6421
6264
  /** Number of columns to display checkboxes */
6422
6265
  columns?: number;
6423
6266
  }
6424
- declare function CheckboxGroup(props: CheckboxGroupProps): _emotion_react_jsx_runtime.JSX.Element;
6267
+ declare function CheckboxGroup(props: CheckboxGroupProps): JSX.Element;
6425
6268
 
6426
6269
  interface ChipSelectFieldProps<O, V extends Value> {
6427
6270
  label: string;
@@ -6512,11 +6355,11 @@ interface DateRangeFieldBaseProps extends DateFieldBaseProps {
6512
6355
 
6513
6356
  interface DateFieldProps extends Omit<DateSingleFieldBaseProps, "mode"> {
6514
6357
  }
6515
- declare const DateField: (props: DateFieldProps) => _emotion_react_jsx_runtime.JSX.Element;
6358
+ declare const DateField: (props: DateFieldProps) => JSX.Element;
6516
6359
 
6517
6360
  interface DateRangeFieldProps extends Omit<DateRangeFieldBaseProps, "mode"> {
6518
6361
  }
6519
- declare function DateRangeField(props: DateRangeFieldProps): _emotion_react_jsx_runtime.JSX.Element;
6362
+ declare function DateRangeField(props: DateRangeFieldProps): JSX.Element;
6520
6363
 
6521
6364
  interface ErrorMessageProps {
6522
6365
  /** The dom id for `aria-errormessage` to point to us. */
@@ -6530,7 +6373,7 @@ interface ErrorMessageProps {
6530
6373
  *
6531
6374
  * Not currently exported as part of our public API.
6532
6375
  */
6533
- declare function ErrorMessage(props: ErrorMessageProps): _emotion_react_jsx_runtime.JSX.Element;
6376
+ declare function ErrorMessage(props: ErrorMessageProps): JSX.Element;
6534
6377
 
6535
6378
  interface IconCardProps {
6536
6379
  /** The icon to use within the card. */
@@ -6543,7 +6386,7 @@ interface IconCardProps {
6543
6386
  disabled?: boolean;
6544
6387
  tooltip?: string;
6545
6388
  }
6546
- declare function IconCard(props: IconCardProps): _emotion_react_jsx_runtime.JSX.Element;
6389
+ declare function IconCard(props: IconCardProps): JSX.Element;
6547
6390
  declare const selectedStyles: {
6548
6391
  borderWidth: csstype.Property.BorderWidth<string | 0> | undefined;
6549
6392
  } & {
@@ -6686,7 +6529,7 @@ interface NumberFieldProps extends Pick<PresentationFieldProps, "labelStyle" | "
6686
6529
  alwaysShowHelperText?: boolean;
6687
6530
  positiveOnly?: boolean;
6688
6531
  }
6689
- declare function NumberField(props: NumberFieldProps): _emotion_react_jsx_runtime.JSX.Element;
6532
+ declare function NumberField(props: NumberFieldProps): JSX.Element;
6690
6533
  declare function formatValue(value: number, factor: number, numFractionDigits: number | undefined, numIntegerDigits: number | undefined, positiveOnly?: boolean): number | undefined;
6691
6534
 
6692
6535
  type RadioFieldOption<K extends string> = {
@@ -6721,7 +6564,7 @@ type RadioGroupFieldProps<K extends string> = {
6721
6564
  *
6722
6565
  * TODO: Add hover (non selected and selected) styles
6723
6566
  */
6724
- declare function RadioGroupField<K extends string>(props: RadioGroupFieldProps<K>): _emotion_react_jsx_runtime.JSX.Element;
6567
+ declare function RadioGroupField<K extends string>(props: RadioGroupFieldProps<K>): JSX.Element;
6725
6568
 
6726
6569
  interface RichTextFieldProps extends Pick<PresentationFieldProps, "fullWidth"> {
6727
6570
  /** The initial html value to show in the trix editor. */
@@ -6743,7 +6586,7 @@ interface RichTextFieldProps extends Pick<PresentationFieldProps, "fullWidth"> {
6743
6586
  /** For rendering formatted text */
6744
6587
  readOnly?: boolean;
6745
6588
  }
6746
- declare const RichTextField: (props: RichTextFieldProps) => _emotion_react_jsx_runtime.JSX.Element;
6589
+ declare const RichTextField: (props: RichTextFieldProps) => JSX.Element;
6747
6590
  /**
6748
6591
  * Provides a simple rich text editor based on trix.
6749
6592
  *
@@ -6751,7 +6594,7 @@ declare const RichTextField: (props: RichTextFieldProps) => _emotion_react_jsx_r
6751
6594
  *
6752
6595
  * We also integrate [tributejs]{@link https://github.com/zurb/tribute} for @ mentions.
6753
6596
  */
6754
- declare function RichTextFieldImpl(props: RichTextFieldProps): _emotion_react_jsx_runtime.JSX.Element;
6597
+ declare function RichTextFieldImpl(props: RichTextFieldProps): JSX.Element;
6755
6598
 
6756
6599
  type SelectFieldProps<O, V extends Value> = {
6757
6600
  /** The current value; it can be `undefined`, even if `V` cannot be. */
@@ -6801,7 +6644,7 @@ interface SwitchProps {
6801
6644
  focusVisible?: boolean;
6802
6645
  };
6803
6646
  }
6804
- declare function Switch(props: SwitchProps): _emotion_react_jsx_runtime.JSX.Element;
6647
+ declare function Switch(props: SwitchProps): JSX.Element;
6805
6648
  declare const switchHoverStyles: {
6806
6649
  backgroundColor: csstype.Property.BackgroundColor | undefined;
6807
6650
  };
@@ -6818,7 +6661,7 @@ interface TextAreaFieldProps<X> extends BeamTextFieldProps<X> {
6818
6661
  maxLines?: number;
6819
6662
  }
6820
6663
  /** Returns a <textarea /> element that auto-adjusts height based on the field's value */
6821
- declare function TextAreaField<X extends Only<TextFieldXss, X>>(props: TextAreaFieldProps<X>): _emotion_react_jsx_runtime.JSX.Element;
6664
+ declare function TextAreaField<X extends Only<TextFieldXss, X>>(props: TextAreaFieldProps<X>): JSX.Element;
6822
6665
 
6823
6666
  interface TextFieldProps<X> extends BeamTextFieldProps<X> {
6824
6667
  compact?: boolean;
@@ -6841,7 +6684,7 @@ interface TextFieldProps<X> extends BeamTextFieldProps<X> {
6841
6684
  /** Allow focusing without selecting, i.e. to let the user keep typing after we've pre-filled text + called focus, like the Add New component. */
6842
6685
  selectOnFocus?: boolean;
6843
6686
  }
6844
- declare function TextField<X extends Only<TextFieldXss, X>>(props: TextFieldProps<X>): _emotion_react_jsx_runtime.JSX.Element;
6687
+ declare function TextField<X extends Only<TextFieldXss, X>>(props: TextFieldProps<X>): JSX.Element;
6845
6688
  type TextFieldApi = {
6846
6689
  focus: VoidFunction;
6847
6690
  };
@@ -6863,7 +6706,7 @@ interface ToggleButtonProps {
6863
6706
  focusVisible?: boolean;
6864
6707
  };
6865
6708
  }
6866
- declare function ToggleButton(props: ToggleButtonProps): _emotion_react_jsx_runtime.JSX.Element;
6709
+ declare function ToggleButton(props: ToggleButtonProps): JSX.Element;
6867
6710
  /** Styles */
6868
6711
  declare const toggleHoverStyles: {
6869
6712
  backgroundColor: csstype.Property.BackgroundColor | undefined;
@@ -6897,7 +6740,7 @@ interface ToggleChipGroupProps extends Pick<PresentationFieldProps, "labelStyle"
6897
6740
  onChange: (values: string[]) => void;
6898
6741
  xss?: ToggleChipXss;
6899
6742
  }
6900
- declare function ToggleChipGroup(props: ToggleChipGroupProps): _emotion_react_jsx_runtime.JSX.Element;
6743
+ declare function ToggleChipGroup(props: ToggleChipGroupProps): JSX.Element;
6901
6744
 
6902
6745
  type NestedOption<O> = O & {
6903
6746
  children?: NestedOption<O>[];
@@ -7107,7 +6950,7 @@ interface FilterDropdownMenuProps<F extends Record<string, unknown>, G extends V
7107
6950
  }>;
7108
6951
  };
7109
6952
  }
7110
- declare function FilterDropdownMenu<F extends Record<string, unknown>, G extends Value = string>(props: FilterDropdownMenuProps<F, G>): _emotion_react_jsx_runtime.JSX.Element;
6953
+ declare function FilterDropdownMenu<F extends Record<string, unknown>, G extends Value = string>(props: FilterDropdownMenuProps<F, G>): JSX.Element;
7111
6954
  declare const _FilterDropdownMenu: typeof FilterDropdownMenu;
7112
6955
 
7113
6956
  interface FilterModalProps<F> {
@@ -7115,11 +6958,11 @@ interface FilterModalProps<F> {
7115
6958
  filters: FilterImpls<F>;
7116
6959
  onApply: (f: F) => void;
7117
6960
  }
7118
- declare function FilterModal<F>(props: FilterModalProps<F>): _emotion_react_jsx_runtime.JSX.Element;
6961
+ declare function FilterModal<F>(props: FilterModalProps<F>): JSX.Element;
7119
6962
  declare function ModalFilterItem({ label, children }: {
7120
6963
  label?: string;
7121
6964
  children: ReactNode;
7122
- }): _emotion_react_jsx_runtime.JSX.Element;
6965
+ }): JSX.Element;
7123
6966
 
7124
6967
  interface FilterProps<F extends Record<string, unknown>, G extends Value = string> {
7125
6968
  /** List of filters */
@@ -7144,7 +6987,7 @@ interface FilterProps<F extends Record<string, unknown>, G extends Value = strin
7144
6987
  /** Specifies the number of in line filters before more filters modal */
7145
6988
  numberOfInlineFilters?: number;
7146
6989
  }
7147
- declare function Filters<F extends Record<string, unknown>, G extends Value = string>(props: FilterProps<F, G>): _emotion_react_jsx_runtime.JSX.Element;
6990
+ declare function Filters<F extends Record<string, unknown>, G extends Value = string>(props: FilterProps<F, G>): JSX.Element;
7148
6991
  declare const _Filters: typeof Filters;
7149
6992
 
7150
6993
  type ToggleFilterProps<V> = {
@@ -7172,13 +7015,13 @@ declare const filterTestIdPrefix = "filter";
7172
7015
  interface ResponsiveGridProps extends PropsWithChildren<useResponsiveGridProps> {
7173
7016
  }
7174
7017
  /** Helper component for generating a responsive grid */
7175
- declare function ResponsiveGrid(props: ResponsiveGridProps): _emotion_react_jsx_runtime.JSX.Element;
7018
+ declare function ResponsiveGrid(props: ResponsiveGridProps): JSX.Element;
7176
7019
 
7177
7020
  type ResponsiveGridItemProps = PropsWithChildren<{
7178
7021
  colSpan: number;
7179
7022
  }>;
7180
7023
  /** Helper component for generating grid items with the ResponsiveGrid */
7181
- declare function ResponsiveGridItem(props: ResponsiveGridItemProps): _emotion_react_jsx_runtime.JSX.Element;
7024
+ declare function ResponsiveGridItem(props: ResponsiveGridItemProps): JSX.Element;
7182
7025
 
7183
7026
  interface useResponsiveGridProps {
7184
7027
  minColumnWidth: number;
@@ -7286,7 +7129,7 @@ interface UseResponsiveGridItemProps {
7286
7129
  * config is unavailable, `gridItemStyles` will be an empty object.
7287
7130
  */
7288
7131
  declare function useResponsiveGridItem(props: UseResponsiveGridItemProps): {
7289
- gridItemProps: Record<string, number>;
7132
+ gridItemProps: Record<string, string | number>;
7290
7133
  gridItemStyles: Properties;
7291
7134
  };
7292
7135
 
@@ -7299,7 +7142,7 @@ interface HbLoadingSpinnerProps {
7299
7142
  /** No text at all */
7300
7143
  iconOnly?: boolean;
7301
7144
  }
7302
- declare function HbLoadingSpinner({ noQuips, extraQuips, extraQuipsOnly, iconOnly }: HbLoadingSpinnerProps): _emotion_react_jsx_runtime.JSX.Element;
7145
+ declare function HbLoadingSpinner({ noQuips, extraQuips, extraQuipsOnly, iconOnly }: HbLoadingSpinnerProps): JSX.Element;
7303
7146
  /** Quips for Homebound's Mission Statement. Internal. */
7304
7147
  declare const HB_QUIPS_MISSION: ReadonlyArray<string>;
7305
7148
  /** Fun quips internal employees should recognize. Internal. */
@@ -7313,7 +7156,7 @@ interface HbSpinnerProviderProps {
7313
7156
  quips?: string[];
7314
7157
  children: ReactNode;
7315
7158
  }
7316
- declare function HbSpinnerProvider({ quips, children }: HbSpinnerProviderProps): _emotion_react_jsx_runtime.JSX.Element;
7159
+ declare function HbSpinnerProvider({ quips, children }: HbSpinnerProviderProps): JSX.Element;
7317
7160
 
7318
7161
  /**
7319
7162
  * A helper component for consistently showing helper text below form fields.
@@ -7321,7 +7164,7 @@ declare function HbSpinnerProvider({ quips, children }: HbSpinnerProviderProps):
7321
7164
  declare function HelperText(props: {
7322
7165
  helperText: string | ReactNode;
7323
7166
  contrast?: boolean;
7324
- }): _emotion_react_jsx_runtime.JSX.Element;
7167
+ }): JSX.Element;
7325
7168
 
7326
7169
  type BoundCheckboxFieldProps = Omit<CheckboxProps, "selected" | "onChange" | "label"> & {
7327
7170
  field: FieldState<boolean | null | undefined>;
@@ -7330,7 +7173,7 @@ type BoundCheckboxFieldProps = Omit<CheckboxProps, "selected" | "onChange" | "la
7330
7173
  label?: string;
7331
7174
  };
7332
7175
  /** Wraps `Checkbox` and binds it to a form field. */
7333
- declare function BoundCheckboxField(props: BoundCheckboxFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7176
+ declare function BoundCheckboxField(props: BoundCheckboxFieldProps): JSX.Element;
7334
7177
 
7335
7178
  type BoundCheckboxGroupFieldProps = Omit<CheckboxGroupProps, "values" | "onChange" | "label"> & {
7336
7179
  field: FieldState<string[] | null | undefined>;
@@ -7340,7 +7183,7 @@ type BoundCheckboxGroupFieldProps = Omit<CheckboxGroupProps, "values" | "onChang
7340
7183
  };
7341
7184
  /** Wraps `CheckboxGroup` and binds it to a form field.
7342
7185
  * To make the field agnostic to the order of selected values, add `strictOrder: false` to the field's ObjectConfig */
7343
- declare function BoundCheckboxGroupField(props: BoundCheckboxGroupFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7186
+ declare function BoundCheckboxGroupField(props: BoundCheckboxGroupFieldProps): JSX.Element;
7344
7187
 
7345
7188
  type BoundChipSelectFieldProps<O, V extends Value> = {
7346
7189
  onSelect?: (option: V | undefined) => void;
@@ -7356,7 +7199,7 @@ type BoundDateFieldProps = Omit<DateFieldProps, "label" | "value" | "onChange">
7356
7199
  onChange?: (value: Date | undefined) => void;
7357
7200
  };
7358
7201
  /** Wraps `TextField` and binds it to a form field. */
7359
- declare function BoundDateField(props: BoundDateFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7202
+ declare function BoundDateField(props: BoundDateFieldProps): JSX.Element;
7360
7203
 
7361
7204
  type BoundDateRangeFieldProps = Omit<DateRangeFieldProps, "label" | "value" | "onChange"> & {
7362
7205
  field: FieldState<DateRange | null | undefined>;
@@ -7364,7 +7207,7 @@ type BoundDateRangeFieldProps = Omit<DateRangeFieldProps, "label" | "value" | "o
7364
7207
  onChange?: (value: DateRange | undefined) => void;
7365
7208
  };
7366
7209
  /** Wraps `TextField` and binds it to a form field. */
7367
- declare function BoundDateRangeField(props: BoundDateRangeFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7210
+ declare function BoundDateRangeField(props: BoundDateRangeFieldProps): JSX.Element;
7368
7211
 
7369
7212
  type BoundIconCardFieldProps = Omit<IconCardProps, "label" | "selected" | "onChange"> & {
7370
7213
  field: FieldState<boolean | null | undefined>;
@@ -7374,7 +7217,7 @@ type BoundIconCardFieldProps = Omit<IconCardProps, "label" | "selected" | "onCha
7374
7217
  label?: string;
7375
7218
  };
7376
7219
  /** Wraps `IconCard` and binds it to a form field. */
7377
- declare function BoundIconCardField(props: BoundIconCardFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7220
+ declare function BoundIconCardField(props: BoundIconCardFieldProps): JSX.Element;
7378
7221
 
7379
7222
  interface IconCardGroupItemOption<V extends Value> {
7380
7223
  icon: IconProps["icon"];
@@ -7405,7 +7248,7 @@ type BoundIconCardGroupFieldProps<V extends Value> = Omit<IconCardGroupProps<V>,
7405
7248
  label?: string;
7406
7249
  };
7407
7250
  /** Wraps `IconCardGroup` and binds it to a form field. */
7408
- declare function BoundIconCardGroupField<V extends Value>(props: BoundIconCardGroupFieldProps<V>): _emotion_react_jsx_runtime.JSX.Element;
7251
+ declare function BoundIconCardGroupField<V extends Value>(props: BoundIconCardGroupFieldProps<V>): JSX.Element;
7409
7252
 
7410
7253
  type ListFieldKey<F> = {
7411
7254
  [K in keyof F]: F[K] extends (infer T)[] | null | undefined ? (T extends object ? K : never) : never;
@@ -7457,7 +7300,7 @@ type BoundNumberFieldProps = Omit<NumberFieldProps, "value" | "onChange" | "labe
7457
7300
  onChange?: (value: number | undefined) => void;
7458
7301
  };
7459
7302
  /** Wraps `NumberField` and binds it to a form field. */
7460
- declare function BoundNumberField(props: BoundNumberFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7303
+ declare function BoundNumberField(props: BoundNumberFieldProps): JSX.Element;
7461
7304
 
7462
7305
  type BoundRadioGroupFieldProps<K extends string> = Omit<RadioGroupFieldProps<K>, "value" | "onChange" | "label"> & {
7463
7306
  field: FieldState<K | null | undefined>;
@@ -7466,14 +7309,14 @@ type BoundRadioGroupFieldProps<K extends string> = Omit<RadioGroupFieldProps<K>,
7466
7309
  label?: string;
7467
7310
  };
7468
7311
  /** Wraps `TextField` and binds it to a form field. */
7469
- declare function BoundRadioGroupField<K extends string>(props: BoundRadioGroupFieldProps<K>): _emotion_react_jsx_runtime.JSX.Element;
7312
+ declare function BoundRadioGroupField<K extends string>(props: BoundRadioGroupFieldProps<K>): JSX.Element;
7470
7313
 
7471
7314
  type BoundRichTextFieldProps = Omit<RichTextFieldProps, "value" | "onChange"> & {
7472
7315
  field: FieldState<string | null | undefined>;
7473
7316
  onChange?: (value: string | undefined) => void;
7474
7317
  };
7475
7318
  /** Wraps `RichTextField` and binds it to a form field. */
7476
- declare function BoundRichTextField(props: BoundRichTextFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7319
+ declare function BoundRichTextField(props: BoundRichTextFieldProps): JSX.Element;
7477
7320
 
7478
7321
  type BoundSelectFieldProps<O, V extends Value> = Omit<SelectFieldProps<O, V>, "value" | "onSelect" | "label"> & {
7479
7322
  /** Optional, to allow `onSelect` to be overridden to do more than just `field.set`. */
@@ -7509,7 +7352,7 @@ type BoundSwitchFieldProps = Omit<SwitchProps, "selected" | "onChange" | "label"
7509
7352
  label?: string;
7510
7353
  };
7511
7354
  /** Wraps `Switch` and binds it to a form field. */
7512
- declare function BoundSwitchField(props: BoundSwitchFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7355
+ declare function BoundSwitchField(props: BoundSwitchFieldProps): JSX.Element;
7513
7356
 
7514
7357
  type BoundTextAreaFieldProps<X> = Omit<TextAreaFieldProps<X>, "value" | "onChange" | "label"> & {
7515
7358
  label?: string;
@@ -7517,7 +7360,7 @@ type BoundTextAreaFieldProps<X> = Omit<TextAreaFieldProps<X>, "value" | "onChang
7517
7360
  onChange?: (value: string | undefined) => void;
7518
7361
  };
7519
7362
  /** Wraps `TextAreaField` and binds it to a form field. */
7520
- declare function BoundTextAreaField<X extends Only<TextFieldXss, X>>(props: BoundTextAreaFieldProps<X>): _emotion_react_jsx_runtime.JSX.Element;
7363
+ declare function BoundTextAreaField<X extends Only<TextFieldXss, X>>(props: BoundTextAreaFieldProps<X>): JSX.Element;
7521
7364
 
7522
7365
  type BoundTextFieldProps<X> = Omit<TextFieldProps<X>, "value" | "onChange" | "label"> & {
7523
7366
  label?: string;
@@ -7525,7 +7368,7 @@ type BoundTextFieldProps<X> = Omit<TextFieldProps<X>, "value" | "onChange" | "la
7525
7368
  onChange?: (value: string | undefined) => void;
7526
7369
  };
7527
7370
  /** Wraps `TextField` and binds it to a form field. */
7528
- declare function BoundTextField<X extends Only<TextFieldXss, X>>(props: BoundTextFieldProps<X>): _emotion_react_jsx_runtime.JSX.Element;
7371
+ declare function BoundTextField<X extends Only<TextFieldXss, X>>(props: BoundTextFieldProps<X>): JSX.Element;
7529
7372
 
7530
7373
  type BoundToggleChipGroupFieldProps = Omit<ToggleChipGroupProps, "values" | "onChange" | "label"> & {
7531
7374
  field: FieldState<string[] | null | undefined>;
@@ -7534,7 +7377,7 @@ type BoundToggleChipGroupFieldProps = Omit<ToggleChipGroupProps, "values" | "onC
7534
7377
  label?: string;
7535
7378
  };
7536
7379
  /** Wraps `ToggleChipGroup` and binds it to a form field. */
7537
- declare function BoundToggleChipGroupField(props: BoundToggleChipGroupFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7380
+ declare function BoundToggleChipGroupField(props: BoundToggleChipGroupFieldProps): JSX.Element;
7538
7381
 
7539
7382
  type BoundTreeSelectFieldProps<O, V extends Value> = Omit<TreeSelectFieldProps<O, V>, "values" | "onSelect" | "label"> & {
7540
7383
  onSelect?: (options: TreeSelectResponse<O, V>) => void;
@@ -7596,11 +7439,11 @@ type BoundFormProps<F> = {
7596
7439
  />
7597
7440
  * ```
7598
7441
  */
7599
- declare function BoundForm<F>(props: BoundFormProps<F>): _emotion_react_jsx_runtime.JSX.Element;
7442
+ declare function BoundForm<F>(props: BoundFormProps<F>): JSX.Element;
7600
7443
  declare function FormRow<F>({ row, formState }: {
7601
7444
  row: BoundFormRowInputs<F>;
7602
7445
  formState: ObjectState<F>;
7603
- }): _emotion_react_jsx_runtime.JSX.Element;
7446
+ }): JSX.Element;
7604
7447
  /**
7605
7448
  * These field component functions are thin wrappers around the `BoundFoo` components which omit
7606
7449
  * certain props that the caller doesn't need to pass or we specifically want to restrict to drive UX consistency.
@@ -7641,7 +7484,7 @@ interface FormHeadingProps {
7641
7484
  xss?: Xss<Margin>;
7642
7485
  isFirst?: boolean;
7643
7486
  }
7644
- declare function FormHeading(props: FormHeadingProps): _emotion_react_jsx_runtime.JSX.Element;
7487
+ declare function FormHeading(props: FormHeadingProps): JSX.Element;
7645
7488
  declare namespace FormHeading {
7646
7489
  var isFormHeading: boolean;
7647
7490
  }
@@ -7668,9 +7511,9 @@ type FormLinesProps = {
7668
7511
  * Lines can either be individual form fields, or a group of form fields
7669
7512
  * (see the `FieldGroup` component), where they will be laid out side-by-side.
7670
7513
  */
7671
- declare function FormLines(props: FormLinesProps): _emotion_react_jsx_runtime.JSX.Element;
7514
+ declare function FormLines(props: FormLinesProps): JSX.Element;
7672
7515
  /** Draws a line between form lines. */
7673
- declare function FormDivider(): _emotion_react_jsx_runtime.JSX.Element;
7516
+ declare function FormDivider(): JSX.Element;
7674
7517
  /** Groups multiple fields side-by-side. */
7675
7518
  declare function FieldGroup(props: {
7676
7519
  /** The legend/title for this group. */
@@ -7678,7 +7521,7 @@ declare function FieldGroup(props: {
7678
7521
  children: JSX.Element[];
7679
7522
  /** An array of widths for each child, if a number we use `fr` units. */
7680
7523
  widths?: Array<number | string>;
7681
- }): _emotion_react_jsx_runtime.JSX.Element;
7524
+ }): JSX.Element;
7682
7525
 
7683
7526
  interface StaticFieldProps {
7684
7527
  label: ReactNode;
@@ -7686,14 +7529,14 @@ interface StaticFieldProps {
7686
7529
  children?: ReactNode;
7687
7530
  labelStyle?: PresentationFieldProps["labelStyle"];
7688
7531
  }
7689
- declare function StaticField(props: StaticFieldProps): _emotion_react_jsx_runtime.JSX.Element;
7532
+ declare function StaticField(props: StaticFieldProps): JSX.Element;
7690
7533
 
7691
7534
  type SubmitButtonProps<T> = Omit<ButtonProps, "label"> & {
7692
7535
  label?: ButtonProps["label"];
7693
7536
  form: ObjectState<T>;
7694
7537
  };
7695
7538
  /** Provides a Button that will auto-disable if `formState` is invalid. */
7696
- declare function SubmitButton<T>(props: SubmitButtonProps<T>): _emotion_react_jsx_runtime.JSX.Element;
7539
+ declare function SubmitButton<T>(props: SubmitButtonProps<T>): JSX.Element;
7697
7540
 
7698
7541
  type SidebarContentProps = {
7699
7542
  icon: IconKey;
@@ -7706,7 +7549,7 @@ type RightSidebarProps = {
7706
7549
  /** Exporting this value allows layout components to coordinate responsive column sizing
7707
7550
  * while avoiding layout shift when the sidebar is opened */
7708
7551
  declare const RIGHT_SIDEBAR_MIN_WIDTH = "250px";
7709
- declare function RightSidebar({ content, headerHeightPx }: RightSidebarProps): _emotion_react_jsx_runtime.JSX.Element;
7552
+ declare function RightSidebar({ content, headerHeightPx }: RightSidebarProps): JSX.Element;
7710
7553
 
7711
7554
  type HeaderBreadcrumb = {
7712
7555
  href: string;
@@ -7731,7 +7574,7 @@ type FormPageLayoutProps<F> = {
7731
7574
  tertiaryAction?: ActionButtonProps$1;
7732
7575
  rightSideBar?: SidebarContentProps[];
7733
7576
  };
7734
- declare function FormPageLayoutComponent<F>(props: FormPageLayoutProps<F>): _emotion_react_jsx_runtime.JSX.Element;
7577
+ declare function FormPageLayoutComponent<F>(props: FormPageLayoutProps<F>): JSX.Element;
7735
7578
  declare const FormPageLayout: typeof FormPageLayoutComponent;
7736
7579
 
7737
7580
  /** Provides a way to extend the full width of the ScrollableParent */
@@ -7877,10 +7720,194 @@ interface PaginationProps {
7877
7720
  totalCount: number;
7878
7721
  pageSizes?: number[];
7879
7722
  }
7880
- declare function Pagination(props: PaginationProps): _emotion_react_jsx_runtime.JSX.Element;
7723
+ declare function Pagination(props: PaginationProps): JSX.Element;
7881
7724
  declare function toLimitAndOffset(page: PageSettings): OffsetAndLimit;
7882
7725
  declare function toPageNumberSize(page: PageSettings): PageNumberAndSize;
7883
7726
 
7727
+ interface GridTableCollapseToggleProps extends Pick<IconButtonProps, "compact"> {
7728
+ row: GridDataRow<any>;
7729
+ }
7730
+ /** Provides a chevron icons to collapse/un-collapse for parent/child tables. */
7731
+ declare function CollapseToggle(props: GridTableCollapseToggleProps): JSX.Element | null;
7732
+
7733
+ type EditColumnsButtonProps<R extends Kinded> = {
7734
+ columns: GridColumn<R>[];
7735
+ api: GridTableApi<R>;
7736
+ defaultOpen?: boolean;
7737
+ } & Pick<OverlayTriggerProps, "trigger" | "placement" | "disabled" | "tooltip">;
7738
+ declare function EditColumnsButton<R extends Kinded>(props: EditColumnsButtonProps<R>): JSX.Element;
7739
+
7740
+ interface SelectToggleProps {
7741
+ id: string;
7742
+ disabled?: boolean | ReactNode;
7743
+ }
7744
+ /** Provides a checkbox to show/drive this row's selected state. */
7745
+ declare function SelectToggle({ id, disabled }: SelectToggleProps): JSX.Element;
7746
+
7747
+ interface SortHeaderProps {
7748
+ content: string;
7749
+ xss?: Properties;
7750
+ iconOnLeft?: boolean;
7751
+ sortKey: string;
7752
+ tooltipEl?: ReactNode;
7753
+ }
7754
+ /**
7755
+ * Wraps column header names with up/down sorting icons.
7756
+ *
7757
+ * GridTable will use this automatically if the header content is just a text string.
7758
+ *
7759
+ * Alternatively, callers can also:
7760
+ *
7761
+ * - Instantiate this SortHeader directly with some customizations in `xss`, or
7762
+ * - Write their own component that uses `GridSortContext` to access the column's
7763
+ * current sort state + `toggleSort` function
7764
+ */
7765
+ declare function SortHeader(props: SortHeaderProps): JSX.Element;
7766
+
7767
+ /**
7768
+ * Calculates an array of sizes for each of our columns.
7769
+ *
7770
+ * We originally supported CSS grid-template-column definitions which allowed fancier,
7771
+ * dynamic/content-based widths, but have eventually dropped it mainly due to:
7772
+ *
7773
+ * 1. In virtual tables, a) the table never has all of the rows in DOM at a single time,
7774
+ * so any "content-based" widths will change as you scroll the table, which is weird, and
7775
+ * b) a sticky header and rows are put in different DOM parent elements by react-virtuoso,
7776
+ * so wouldn't arrive at the same "content-based" widths.
7777
+ *
7778
+ * 2. Using CSS grid but still have a row-level div for hover/focus targeting required
7779
+ * a "fake" `display: contents` div that couldn't have actually any styles applied to it.
7780
+ *
7781
+ * So we've just got with essentially fixed/deterministic widths, i.e. `px` or `percent` or
7782
+ * `fr`.
7783
+ *
7784
+ * Disclaimer that we roll our own `fr` b/c we're not in CSS grid anymore.
7785
+ */
7786
+ declare function useSetupColumnSizes<R extends Kinded>(style: GridStyle, columns: GridColumnWithId<R>[], resizeRef: MutableRefObject<HTMLElement | null>, expandedColumnIds: string[], visibleColumnsStorageKey: string | undefined, disableColumnResizing: boolean): {
7787
+ columnSizes: string[];
7788
+ tableWidth: number | undefined;
7789
+ resizedWidths: ResizedWidths;
7790
+ setResizedWidth: (columnId: string, width: number) => void;
7791
+ setResizedWidths: (widths: ResizedWidths | ((prev: ResizedWidths) => ResizedWidths)) => void;
7792
+ resetColumnWidths: () => void;
7793
+ };
7794
+
7795
+ /** Provides default styling for a GridColumn representing a Date. */
7796
+ declare function column<T extends Kinded>(columnDef: GridColumn<T>): GridColumn<T>;
7797
+ /** Provides default styling for a GridColumn representing a Date. */
7798
+ declare function dateColumn<T extends Kinded>(columnDef: GridColumn<T>): GridColumn<T>;
7799
+ /**
7800
+ * Provides default styling for a GridColumn representing a Numeric value (Price, percentage, PO #, etc.). */
7801
+ declare function numericColumn<T extends Kinded>(columnDef: GridColumn<T>): GridColumn<T>;
7802
+ /** Provides default styling for a GridColumn representing an Action. */
7803
+ declare function actionColumn<T extends Kinded>(columnDef: GridColumn<T>): GridColumn<T>;
7804
+ /**
7805
+ * Provides default styling for a GridColumn containing a checkbox.
7806
+ *
7807
+ * We allow either no `columnDef` at all, or a partial column def (i.e. to say a Totals row should
7808
+ * not have a `SelectToggle`, b/c we can provide the default behavior a `SelectToggle` for basically
7809
+ * all rows.
7810
+ */
7811
+ declare function selectColumn<T extends Kinded>(columnDef?: Partial<GridColumn<T>>): GridColumn<T>;
7812
+ /**
7813
+ * Provides default styling for a GridColumn containing a collapse icon.
7814
+ *
7815
+ * We allow either no `columnDef` at all, or a partial column def (i.e. to say a Totals row should
7816
+ * not have a `CollapseToggle`, b/c we can provide the default behavior a `CollapseToggle` for basically
7817
+ * all rows.
7818
+ */
7819
+ declare function collapseColumn<T extends Kinded>(columnDef?: Partial<GridColumn<T>>): GridColumn<T>;
7820
+ declare function parseWidthToPx(widthStr: string | undefined, tableWidth: number | undefined): number | null;
7821
+ /**
7822
+ * Calculates column widths using a flexible `calc()` definition that allows for consistent column alignment without the use of `<table />`, CSS Grid, etc layouts.
7823
+ * Enforces only fixed-sized units (% and px)
7824
+ */
7825
+ declare function calcColumnSizes<R extends Kinded>(columns: GridColumnWithId<R>[], tableWidth: number | undefined, tableMinWidthPx: number | undefined, expandedColumnIds: string[], resizedWidths?: ResizedWidths): string[];
7826
+ /** Assign column ids if missing. */
7827
+ declare function assignDefaultColumnIds<T extends Kinded>(columns: GridColumn<T>[]): GridColumnWithId<T>[];
7828
+ declare const generateColumnId: (columnIndex: number) => string;
7829
+ declare function dragHandleColumn<T extends Kinded>(columnDef?: Partial<GridColumn<T>>): GridColumn<T>;
7830
+
7831
+ /**
7832
+ * A helper for making `Row` type aliases of simple/flat tables that are just header + data.
7833
+ *
7834
+ * Unlike `SimpleHeaderAndDataOf`, we keep `T` in a separate `data`, which is useful
7835
+ * when rows are mobx proxies and we need proxy accesses to happen within the column
7836
+ * rendering.
7837
+ */
7838
+ type SimpleHeaderAndData<T> = {
7839
+ kind: "header";
7840
+ } | {
7841
+ kind: "data";
7842
+ data: T;
7843
+ id: string;
7844
+ };
7845
+ /** A const for a marker header row. */
7846
+ declare const simpleHeader: {
7847
+ kind: "header";
7848
+ id: string;
7849
+ data: undefined;
7850
+ };
7851
+ /** Like `simpleRows` but for `SimpleHeaderAndData`. */
7852
+ declare function simpleDataRows<R extends SimpleHeaderAndData<D>, D>(data?: Array<D & {
7853
+ id: string;
7854
+ }> | undefined): GridDataRow<R>[];
7855
+
7856
+ declare function sortRows<R extends Kinded>(columns: GridColumnWithId<R>[], rows: GridDataRow<R>[], sortState: SortState, caseSensitive: boolean): GridDataRow<R>[];
7857
+ /** Creates a comparator for two GridDataRows based on the current sortState. */
7858
+ declare function sortFn<R extends Kinded>(columns: GridColumnWithId<R>[], sortState: SortState, caseSensitive: boolean): (a: GridDataRow<R>, b: GridDataRow<R>) => number;
7859
+ declare function ensureClientSideSortValueIsSortable(sortOn: SortOn, isHeader: boolean, column: GridColumnWithId<any>, idx: number, maybeContent: ReactNode | GridCellContent): void;
7860
+
7861
+ /** If a column def return just string text for a given row, apply some default styling. */
7862
+ declare function toContent(maybeContent: ReactNode | GridCellContent, isHeader: boolean, canSortColumn: boolean, isClientSideSorting: boolean, style: GridStyle, as: RenderAs, alignment: GridCellAlignment, column: GridColumnWithId<any>, isExpandableHeader: boolean, isExpandable: boolean, minStickyLeftOffset: number, isKeptSelectedRow: boolean): ReactNode;
7863
+ declare function isGridCellContent(content: ReactNode | GridCellContent): content is GridCellContent;
7864
+ type DragData<R extends Kinded> = {
7865
+ rowRenderRef: React.RefObject<HTMLTableRowElement>;
7866
+ onDragStart?: (row: GridDataRow<R>, event: React.DragEvent<HTMLElement>) => void;
7867
+ onDragEnd?: (row: GridDataRow<R>, event: React.DragEvent<HTMLElement>) => void;
7868
+ onDrop?: (row: GridDataRow<R>, event: React.DragEvent<HTMLElement>) => void;
7869
+ onDragEnter?: (row: GridDataRow<R>, event: React.DragEvent<HTMLElement>) => void;
7870
+ onDragOver?: (row: GridDataRow<R>, event: React.DragEvent<HTMLElement>) => void;
7871
+ };
7872
+ /** Return the content for a given column def applied to a given row. */
7873
+ declare function applyRowFn<R extends Kinded>(column: GridColumnWithId<R>, row: GridDataRow<R>, api: GridRowApi<R>, level: number, expanded: boolean, dragData?: DragData<R>): ReactNode | GridCellContent;
7874
+ declare const ASC: "ASC";
7875
+ declare const DESC: "DESC";
7876
+ declare const emptyCell: GridCellContent;
7877
+ declare function getFirstOrLastCellCss<R extends Kinded>(style: GridStyle, columnIndex: number, columns: GridColumnWithId<R>[], colspan?: number): Properties;
7878
+ /** A heuristic to detect the result of `React.createElement` / i.e. JSX. */
7879
+ declare function isJSX(content: any): boolean;
7880
+ declare function getAlignment(column: GridColumnWithId<any>, maybeContent: ReactNode | GridCellContent): GridCellAlignment;
7881
+ declare function getJustification(column: GridColumnWithId<any>, maybeContent: ReactNode | GridCellContent, as: RenderAs, alignment: GridCellAlignment): {
7882
+ textAlign: csstype.Property.TextAlign | undefined;
7883
+ };
7884
+ declare function matchesFilter(maybeContent: ReactNode | GridCellContent, filter: string): boolean;
7885
+ declare const HEADER = "header";
7886
+ declare const TOTALS = "totals";
7887
+ /** Tables expandable columns get an extra header. */
7888
+ declare const EXPANDABLE_HEADER = "expandableHeader";
7889
+ declare const KEPT_GROUP = "keptGroup";
7890
+ declare const reservedRowKinds: string[];
7891
+ declare const zIndices: {
7892
+ stickyHeader: number;
7893
+ stickyColumns: number;
7894
+ expandableHeaderTitle: number;
7895
+ expandableHeaderIcon: number;
7896
+ };
7897
+ /** Loads an array from sessionStorage, if it exists, or `undefined`. */
7898
+ declare function loadArrayOrUndefined(key: string): any;
7899
+ declare function insertAtIndex<T>(array: Array<T>, element: T, index: number): Array<T>;
7900
+ declare function isCursorBelowMidpoint(target: HTMLElement, clientY: number): boolean;
7901
+ declare function recursivelyGetContainingRow<R extends Kinded>(rowId: string, rowArray: GridDataRow<R>[], parent?: GridDataRow<R>): {
7902
+ array: GridDataRow<R>[];
7903
+ parent: GridDataRow<R> | undefined;
7904
+ } | undefined;
7905
+ declare function getTableRefWidthStyles(isVirtual: boolean): {
7906
+ width: csstype.Property.Width<string | 0> | undefined;
7907
+ };
7908
+
7909
+ declare function visit(rows: GridDataRow<any>[], fn: (row: GridDataRow<any>) => void): void;
7910
+
7884
7911
  type Sizes = "sm" | "md" | "lg";
7885
7912
  type LoadingSkeletonProps = {
7886
7913
  rows?: number;
@@ -7889,7 +7916,7 @@ type LoadingSkeletonProps = {
7889
7916
  randomizeWidths?: boolean;
7890
7917
  contrast?: boolean;
7891
7918
  };
7892
- declare function LoadingSkeleton({ rows, columns, size, randomizeWidths, contrast, }: LoadingSkeletonProps): _emotion_react_jsx_runtime.JSX.Element;
7919
+ declare function LoadingSkeleton({ rows, columns, size, randomizeWidths, contrast, }: LoadingSkeletonProps): JSX.Element;
7893
7920
 
7894
7921
  type QueryResult<QData> = {
7895
7922
  loading: boolean;
@@ -7959,7 +7986,7 @@ type GridTableLayoutProps<F extends Record<string, unknown>, R extends Kinded, X
7959
7986
  *
7960
7987
  * Pagination is rendered when `totalCount` is provided. Use `layoutState.page` for server query variables.
7961
7988
  */
7962
- declare function GridTableLayoutComponent<F extends Record<string, unknown>, R extends Kinded, X extends Only<GridTableXss, X>, QData>(props: GridTableLayoutProps<F, R, X, QData>): _emotion_react_jsx_runtime.JSX.Element;
7989
+ declare function GridTableLayoutComponent<F extends Record<string, unknown>, R extends Kinded, X extends Only<GridTableXss, X>, QData>(props: GridTableLayoutProps<F, R, X, QData>): JSX.Element;
7963
7990
  declare const GridTableLayout: typeof GridTableLayoutComponent;
7964
7991
  /** Configuration for pagination in GridTableLayout */
7965
7992
  type PaginationConfig = {
@@ -8004,7 +8031,7 @@ declare function useGridTableLayoutState<F extends Record<string, unknown>>({ pe
8004
8031
  };
8005
8032
 
8006
8033
  /** Intended to wrap the whole application to prevent the browser's native scrolling behavior while also taking the full height of the viewport */
8007
- declare function PreventBrowserScroll({ children }: ChildrenOnly): _emotion_react_jsx_runtime.JSX.Element;
8034
+ declare function PreventBrowserScroll({ children }: ChildrenOnly): JSX.Element;
8008
8035
 
8009
8036
  interface OpenRightPaneOpts {
8010
8037
  content: ReactNode;
@@ -8019,7 +8046,7 @@ type RightPaneLayoutContextProps = {
8019
8046
  declare const RightPaneContext: React__default.Context<RightPaneLayoutContextProps>;
8020
8047
  declare function RightPaneProvider({ children }: {
8021
8048
  children: ReactNode;
8022
- }): _emotion_react_jsx_runtime.JSX.Element;
8049
+ }): JSX.Element;
8023
8050
  declare function useRightPaneContext(): RightPaneLayoutContextProps;
8024
8051
 
8025
8052
  declare function RightPaneLayout(props: {
@@ -8027,7 +8054,7 @@ declare function RightPaneLayout(props: {
8027
8054
  paneBgColor?: Palette;
8028
8055
  paneWidth?: number;
8029
8056
  defaultPaneContent?: ReactElement;
8030
- }): _emotion_react_jsx_runtime.JSX.Element;
8057
+ }): JSX.Element;
8031
8058
 
8032
8059
  interface UseRightPaneHook {
8033
8060
  /** Opens a right pane */
@@ -8056,12 +8083,15 @@ declare function ScrollableContent(props: ScrollableContentProps): ReactPortal |
8056
8083
 
8057
8084
  interface ScrollableParentContextProps {
8058
8085
  scrollableEl: HTMLElement | null;
8059
- pr: string | number;
8060
- pl: string | number;
8086
+ paddingRight: string;
8087
+ paddingLeft: string;
8061
8088
  setPortalTick: Dispatch<SetStateAction<number>>;
8062
8089
  }
8063
8090
  interface ScrollableParentContextProviderProps {
8064
8091
  xss?: Properties;
8092
+ px?: string | number;
8093
+ pl?: string | number;
8094
+ pr?: string | number;
8065
8095
  tagName?: keyof JSX.IntrinsicElements;
8066
8096
  }
8067
8097
  /**
@@ -8088,19 +8118,19 @@ interface ScrollableParentContextProviderProps {
8088
8118
  *
8089
8119
  * See [this miro](https://miro.com/app/board/o9J_l-FQ-RU=/) and how we need to "cut the component in half".
8090
8120
  */
8091
- declare function ScrollableParent(props: PropsWithChildren<ScrollableParentContextProviderProps>): _emotion_react_jsx_runtime.JSX.Element;
8121
+ declare function ScrollableParent(props: PropsWithChildren<ScrollableParentContextProviderProps>): JSX.Element;
8092
8122
  declare function useScrollableParent(): ScrollableParentContextProps;
8093
8123
 
8094
8124
  interface LoaderProps {
8095
8125
  size?: "xs" | "sm" | "md" | "lg";
8096
8126
  contrast?: boolean;
8097
8127
  }
8098
- declare function Loader({ size, contrast }: LoaderProps): _emotion_react_jsx_runtime.JSX.Element;
8128
+ declare function Loader({ size, contrast }: LoaderProps): JSX.Element;
8099
8129
 
8100
8130
  type MaxLinesProps = PropsWithChildren<{
8101
8131
  maxLines: number;
8102
8132
  }>;
8103
- declare function MaxLines({ maxLines, children }: MaxLinesProps): _emotion_react_jsx_runtime.JSX.Element;
8133
+ declare function MaxLines({ maxLines, children }: MaxLinesProps): JSX.Element;
8104
8134
 
8105
8135
  interface OpenModalProps {
8106
8136
  /** The custom modal content to show. */
@@ -8149,7 +8179,7 @@ interface ScrollShadowsProps {
8149
8179
  /** Defines the background color for the shadows */
8150
8180
  bgColor?: Palette;
8151
8181
  }
8152
- declare function ScrollShadows(props: ScrollShadowsProps): _emotion_react_jsx_runtime.JSX.Element;
8182
+ declare function ScrollShadows(props: ScrollShadowsProps): JSX.Element;
8153
8183
 
8154
8184
  type SnackbarNoticeTypes = "error" | "warning" | "success" | "info" | "alert";
8155
8185
  interface SnackbarNoticeProps {
@@ -8203,7 +8233,7 @@ interface StepperProps {
8203
8233
  currentStep: Step["value"];
8204
8234
  onChange: (stepValue: string) => void;
8205
8235
  }
8206
- declare function Stepper(props: StepperProps): _emotion_react_jsx_runtime.JSX.Element;
8236
+ declare function Stepper(props: StepperProps): JSX.Element;
8207
8237
 
8208
8238
  interface SuperDrawerHeaderProps {
8209
8239
  children: ReactNode;
@@ -8223,7 +8253,7 @@ interface ConfirmCloseModalProps {
8223
8253
  continueText?: string;
8224
8254
  }
8225
8255
  /** Modal content to appear when a close checks fails */
8226
- declare function ConfirmCloseModal(props: ConfirmCloseModalProps): _emotion_react_jsx_runtime.JSX.Element;
8256
+ declare function ConfirmCloseModal(props: ConfirmCloseModalProps): JSX.Element;
8227
8257
 
8228
8258
  interface SuperDrawerContentProps {
8229
8259
  children: ReactNode;
@@ -8242,7 +8272,7 @@ interface SuperDrawerContentProps {
8242
8272
  * NOTE: This does not include the header props since the caller will be the one
8243
8273
  * that knows how to handle the title, prev/next link and the onClose handler.
8244
8274
  */
8245
- declare const SuperDrawerContent: ({ children, actions }: SuperDrawerContentProps) => _emotion_react_jsx_runtime.JSX.Element;
8275
+ declare const SuperDrawerContent: ({ children, actions }: SuperDrawerContentProps) => JSX.Element;
8246
8276
 
8247
8277
  interface Tab<V extends string = string> {
8248
8278
  name: string;
@@ -8259,6 +8289,8 @@ interface TabsProps<V extends string, X> {
8259
8289
  tabs: Tab<V>[];
8260
8290
  onChange: (value: V) => void;
8261
8291
  contentXss?: X;
8292
+ /** If you want to set your own padding in `contentXss`, you can disable the default FullBleed padding here. */
8293
+ omitFullBleedPadding?: boolean;
8262
8294
  alwaysShowAllTabs?: boolean;
8263
8295
  includeBottomBorder?: boolean;
8264
8296
  right?: ReactNode;
@@ -8291,12 +8323,12 @@ interface RequiredRenderRouteTabs<V extends string, X> extends Omit<RouteTabsPro
8291
8323
  * If you want to tease apart Tabs from their TabContent, you can use the `Tab`
8292
8324
  * and `TabContent` components directly.
8293
8325
  */
8294
- declare function TabsWithContent<V extends string, X extends Only<TabsContentXss, X>>(props: RequiredRenderTabs<V, X> | RequiredRenderRouteTabs<V, X>): _emotion_react_jsx_runtime.JSX.Element;
8295
- declare function TabContent<V extends string>(props: Omit<RequiredRenderTabs<V, AnyObject>, "onChange"> | RequiredRenderRouteTabs<V, AnyObject>): _emotion_react_jsx_runtime.JSX.Element;
8326
+ declare function TabsWithContent<V extends string, X extends Only<TabsContentXss, X>>(props: RequiredRenderTabs<V, X> | RequiredRenderRouteTabs<V, X>): JSX.Element;
8327
+ declare function TabContent<V extends string>(props: Omit<RequiredRenderTabs<V, AnyObject>, "onChange"> | RequiredRenderRouteTabs<V, AnyObject>): JSX.Element;
8296
8328
  /** The top list of tabs. */
8297
- declare function Tabs<V extends string>(props: TabsProps<V, AnyObject> | RouteTabsProps<V, AnyObject>): _emotion_react_jsx_runtime.JSX.Element;
8329
+ declare function Tabs<V extends string>(props: TabsProps<V, AnyObject> | RouteTabsProps<V, AnyObject>): JSX.Element;
8298
8330
 
8299
- declare function Toast(): _emotion_react_jsx_runtime.JSX.Element;
8331
+ declare function Toast(): JSX.Element;
8300
8332
 
8301
8333
  interface ToastNoticeProps extends Omit<BannerProps, "onClose"> {
8302
8334
  }
@@ -8325,11 +8357,11 @@ interface TooltipProps {
8325
8357
  bgColor?: Palette;
8326
8358
  xss?: TooltipXss;
8327
8359
  }
8328
- declare function Tooltip(props: TooltipProps): _emotion_react_jsx_runtime.JSX.Element;
8360
+ declare function Tooltip(props: TooltipProps): JSX.Element;
8329
8361
  type Placement = "top" | "bottom" | "left" | "right" | "auto";
8330
8362
  declare function maybeTooltip(props: Omit<TooltipProps, "children"> & {
8331
8363
  children: ReactNode;
8332
- }): _emotion_react_jsx_runtime.JSX.Element;
8364
+ }): JSX.Element;
8333
8365
  declare function resolveTooltip(disabled?: boolean | ReactNode, tooltip?: ReactNode, readOnly?: boolean | ReactNode): ReactNode | undefined;
8334
8366
 
8335
8367
  /**
@@ -8343,4 +8375,4 @@ declare function resolveTooltip(disabled?: boolean | ReactNode, tooltip?: ReactN
8343
8375
  */
8344
8376
  declare function defaultTestId(label: string): string;
8345
8377
 
8346
- 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, type BoundFormRowInputs, 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, type ButtonMenuProps, ButtonModal, type ButtonModalProps, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardProps, type CardTag, type CardType, 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, CountBadge, type CountBadgeProps, 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, _FilterDropdownMenu as FilterDropdownMenu, type FilterImpls, FilterModal, _Filters as Filters, type Font, FormDivider, FormHeading, type FormHeadingProps, FormLines, type FormLinesProps, FormPageLayout, FormRow, 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, GridTableLayout, type GridTableLayoutProps, 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 ImageFitType, 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, type PaginationConfig, Palette, type Pin, type Placement, type PresentationFieldProps, PresentationProvider, PreventBrowserScroll, type Properties, RIGHT_SIDEBAR_MIN_WIDTH, type RadioFieldOption, RadioGroupField, type RadioGroupFieldProps, type RenderAs, type RenderCellFn, ResponsiveGrid, type ResponsiveGridConfig, ResponsiveGridContext, ResponsiveGridItem, type ResponsiveGridItemProps, type ResponsiveGridProps, RichTextField, RichTextFieldImpl, type RichTextFieldProps, RightPaneContext, RightPaneLayout, type RightPaneLayoutContextProps, RightPaneProvider, RightSidebar, type RightSidebarProps, type RouteTab, type RouteTabWithContent, Row, type RowStyle, type RowStyles, ScrollShadows, ScrollableContent, ScrollableParent, SelectField, type SelectFieldProps, SelectToggle, type SelectedState, type SidebarContentProps, 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 UsePersistedFilterProps, 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, chipBaseStyles, chipDisabledStyles, chipHoverStyles, 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, iconButtonCircleStylesHover, iconButtonContrastStylesHover, iconButtonStylesHover, iconCardStylesHover, increment, insertAtIndex, isCursorBelowMidpoint, isGridCellContent, isJSX, isListBoxSection, isPersistentItem, isPersistentKey, isValidDate, listFieldPrefix, loadArrayOrUndefined, matchesFilter, maybeApplyFunction, maybeInc, maybeTooltip, multiFilter, navLink, newMethodMissingProxy, nonKindGridColumnKeys, numberRangeFilter, numericColumn, parseDate, parseDateRange, parseWidthToPx, persistentItemPrefix, pressedOverlayCss, px, recursivelyGetContainingRow, reservedRowKinds, resolveTooltip, rowClickRenderFn, rowLinkRenderFn, 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, useGridTableLayoutState, useGroupBy, useHover, useModal, usePersistedFilter, useQueryState, useResponsiveGrid, useResponsiveGridItem, type useResponsiveGridProps, useRightPane, useRightPaneContext, useScrollableParent, useSessionStorage, useSetupColumnSizes, useSnackbar, useSuperDrawer, useTestIds, useToast, useTreeSelectFieldProvider, visit, zIndices };
8378
+ 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, type BoundFormRowInputs, 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, type ButtonMenuProps, ButtonModal, type ButtonModalProps, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardProps, type CardTag, type CardType, 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, type ContentStack, Copy, CountBadge, type CountBadgeProps, 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, _FilterDropdownMenu as FilterDropdownMenu, type FilterImpls, FilterModal, _Filters as Filters, type Font, FormDivider, FormHeading, type FormHeadingProps, FormLines, type FormLinesProps, FormPageLayout, FormRow, 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, GridTableLayout, type GridTableLayoutProps, 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 ImageFitType, type ImageMenuItemType, type InfiniteScroll, type InputStylePalette, KEPT_GROUP, type Kinded, Loader, LoadingSkeleton, type LoadingSkeletonProps, type Margin, type Marker, 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, type PaginationConfig, Palette, type Pin, type Placement, type PresentationFieldProps, PresentationProvider, PreventBrowserScroll, type Properties, RIGHT_SIDEBAR_MIN_WIDTH, type RadioFieldOption, RadioGroupField, type RadioGroupFieldProps, type RenderAs, type RenderCellFn, ResponsiveGrid, type ResponsiveGridConfig, ResponsiveGridContext, ResponsiveGridItem, type ResponsiveGridItemProps, type ResponsiveGridProps, RichTextField, RichTextFieldImpl, type RichTextFieldProps, RightPaneContext, RightPaneLayout, type RightPaneLayoutContextProps, RightPaneProvider, RightSidebar, type RightSidebarProps, type RouteTab, type RouteTabWithContent, Row, type RowStyle, type RowStyles, ScrollShadows, ScrollableContent, ScrollableParent, SelectField, type SelectFieldProps, SelectToggle, type SelectedState, type SidebarContentProps, 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 UsePersistedFilterProps, 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, chipBaseStyles, chipDisabledStyles, chipHoverOnlyStyles, chipHoverStyles, 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, iconButtonCircleStylesHover, iconButtonContrastStylesHover, iconButtonStylesHover, iconCardStylesHover, increment, insertAtIndex, isCursorBelowMidpoint, isGridCellContent, isJSX, isListBoxSection, isPersistentItem, isPersistentKey, isValidDate, listFieldPrefix, loadArrayOrUndefined, matchesFilter, maybeInc, maybeTooltip, multiFilter, navLink, newMethodMissingProxy, nonKindGridColumnKeys, numberRangeFilter, numericColumn, parseDate, parseDateRange, parseWidthToPx, persistentItemPrefix, pressedOverlayCss, px, recursivelyGetContainingRow, reservedRowKinds, resolveTooltip, rowClickRenderFn, rowLinkRenderFn, 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, useGridTableLayoutState, useGroupBy, useHover, useModal, usePersistedFilter, useQueryState, useResponsiveGrid, useResponsiveGridItem, type useResponsiveGridProps, useRightPane, useRightPaneContext, useScrollableParent, useSessionStorage, useSetupColumnSizes, useSnackbar, useSuperDrawer, useTestIds, useToast, useTreeSelectFieldProvider, visit, zIndices };