@homebound/beam 2.226.0 → 2.227.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.
Files changed (232) hide show
  1. package/dist/Css.d.ts +9 -9
  2. package/dist/components/Accordion.d.ts +1 -1
  3. package/dist/components/Accordion.js +4 -4
  4. package/dist/components/AccordionList.js +1 -1
  5. package/dist/components/AutoSaveIndicator.js +5 -5
  6. package/dist/components/Avatar.d.ts +1 -1
  7. package/dist/components/Avatar.js +2 -2
  8. package/dist/components/AvatarButton.js +1 -1
  9. package/dist/components/BeamContext.js +1 -1
  10. package/dist/components/Button.d.ts +2 -2
  11. package/dist/components/Button.js +1 -1
  12. package/dist/components/ButtonDatePicker.js +2 -2
  13. package/dist/components/ButtonGroup.d.ts +2 -2
  14. package/dist/components/ButtonGroup.js +6 -6
  15. package/dist/components/ButtonMenu.d.ts +5 -5
  16. package/dist/components/ButtonMenu.js +1 -1
  17. package/dist/components/ButtonModal.js +1 -1
  18. package/dist/components/Chip.d.ts +1 -1
  19. package/dist/components/Chip.js +2 -2
  20. package/dist/components/Chips.d.ts +1 -1
  21. package/dist/components/Chips.js +3 -3
  22. package/dist/components/Copy.js +2 -2
  23. package/dist/components/CssReset.js +1 -1
  24. package/dist/components/Filters/BooleanFilter.d.ts +1 -1
  25. package/dist/components/Filters/BooleanFilter.js +2 -2
  26. package/dist/components/Filters/DateFilter.d.ts +2 -2
  27. package/dist/components/Filters/DateFilter.js +2 -2
  28. package/dist/components/Filters/DateRangeFilter.d.ts +2 -2
  29. package/dist/components/Filters/DateRangeFilter.js +2 -2
  30. package/dist/components/Filters/FilterModal.js +4 -4
  31. package/dist/components/Filters/Filters.d.ts +4 -2
  32. package/dist/components/Filters/Filters.js +12 -13
  33. package/dist/components/Filters/MultiFilter.d.ts +1 -1
  34. package/dist/components/Filters/MultiFilter.js +4 -4
  35. package/dist/components/Filters/NumberRangeFilter.d.ts +2 -2
  36. package/dist/components/Filters/NumberRangeFilter.js +5 -5
  37. package/dist/components/Filters/SingleFilter.d.ts +1 -1
  38. package/dist/components/Filters/SingleFilter.js +1 -1
  39. package/dist/components/Filters/ToggleFilter.d.ts +1 -1
  40. package/dist/components/Filters/ToggleFilter.js +2 -2
  41. package/dist/components/Filters/index.js +5 -1
  42. package/dist/components/Filters/testDomain.d.ts +9 -9
  43. package/dist/components/Filters/types.d.ts +2 -2
  44. package/dist/components/HbLoadingSpinner.js +9 -5
  45. package/dist/components/HelperText.js +1 -1
  46. package/dist/components/Icon.d.ts +1 -1
  47. package/dist/components/Icon.js +97 -97
  48. package/dist/components/IconButton.js +1 -1
  49. package/dist/components/Label.js +3 -3
  50. package/dist/components/Layout/PreventBrowserScroll.js +1 -1
  51. package/dist/components/Layout/RightPaneLayout/RightPaneContext.d.ts +1 -1
  52. package/dist/components/Layout/RightPaneLayout/RightPaneContext.js +6 -2
  53. package/dist/components/Layout/RightPaneLayout/RightPaneLayout.js +3 -3
  54. package/dist/components/Layout/RightPaneLayout/index.js +5 -1
  55. package/dist/components/Layout/ScrollableContent.js +3 -3
  56. package/dist/components/Layout/ScrollableParent.js +2 -2
  57. package/dist/components/Layout/index.js +5 -1
  58. package/dist/components/Loader.js +1 -1
  59. package/dist/components/LoadingSkeleton.d.ts +2 -2
  60. package/dist/components/LoadingSkeleton.js +1 -1
  61. package/dist/components/Modal/Modal.d.ts +3 -3
  62. package/dist/components/Modal/Modal.js +5 -5
  63. package/dist/components/Modal/OpenModal.js +2 -2
  64. package/dist/components/Modal/TestModalContent.js +3 -3
  65. package/dist/components/Modal/index.js +5 -1
  66. package/dist/components/NavLink.d.ts +1 -1
  67. package/dist/components/NavLink.js +2 -2
  68. package/dist/components/PresentationContext.d.ts +2 -2
  69. package/dist/components/PresentationContext.js +1 -1
  70. package/dist/components/Snackbar/Snackbar.d.ts +1 -1
  71. package/dist/components/Snackbar/Snackbar.js +1 -1
  72. package/dist/components/Snackbar/SnackbarContext.d.ts +1 -1
  73. package/dist/components/Snackbar/SnackbarContext.js +1 -1
  74. package/dist/components/Snackbar/SnackbarNotice.d.ts +1 -1
  75. package/dist/components/Snackbar/SnackbarNotice.js +1 -1
  76. package/dist/components/Stepper.js +11 -11
  77. package/dist/components/SuperDrawer/ConfirmCloseModal.js +2 -2
  78. package/dist/components/SuperDrawer/SuperDrawer.js +3 -3
  79. package/dist/components/SuperDrawer/SuperDrawerContent.js +3 -3
  80. package/dist/components/SuperDrawer/components/SuperDrawerHeader.js +2 -2
  81. package/dist/components/SuperDrawer/index.js +5 -1
  82. package/dist/components/SuperDrawer/useSuperDrawer.d.ts +1 -1
  83. package/dist/components/SuperDrawer/useSuperDrawer.js +2 -2
  84. package/dist/components/Table/GridTable.d.ts +1 -1
  85. package/dist/components/Table/GridTable.js +33 -29
  86. package/dist/components/Table/GridTableApi.d.ts +1 -1
  87. package/dist/components/Table/TableActions.d.ts +1 -1
  88. package/dist/components/Table/TableActions.js +1 -1
  89. package/dist/components/Table/TableStyles.d.ts +1 -1
  90. package/dist/components/Table/components/CollapseToggle.js +1 -1
  91. package/dist/components/Table/components/EditColumnsButton.js +2 -2
  92. package/dist/components/Table/components/ExpandableHeader.js +2 -2
  93. package/dist/components/Table/components/Row.d.ts +2 -2
  94. package/dist/components/Table/components/Row.js +7 -3
  95. package/dist/components/Table/components/SelectToggle.js +1 -1
  96. package/dist/components/Table/components/SortHeader.js +3 -3
  97. package/dist/components/Table/components/cell.d.ts +2 -2
  98. package/dist/components/Table/components/cell.js +6 -6
  99. package/dist/components/Table/index.js +5 -1
  100. package/dist/components/Table/types.d.ts +13 -13
  101. package/dist/components/Table/utils/TableState.d.ts +4 -4
  102. package/dist/components/Table/utils/columns.js +2 -2
  103. package/dist/components/Table/utils/simpleHelpers.d.ts +1 -1
  104. package/dist/components/Table/utils/utils.js +5 -5
  105. package/dist/components/Tabs.d.ts +1 -1
  106. package/dist/components/Tabs.js +7 -7
  107. package/dist/components/Tag.d.ts +2 -2
  108. package/dist/components/Tag.js +1 -1
  109. package/dist/components/Toast/Toast.d.ts +1 -1
  110. package/dist/components/Toast/Toast.js +1 -1
  111. package/dist/components/Toast/ToastContext.d.ts +1 -1
  112. package/dist/components/Toast/ToastContext.js +1 -1
  113. package/dist/components/ToggleChip.d.ts +1 -1
  114. package/dist/components/ToggleChip.js +2 -2
  115. package/dist/components/ToggleChips.d.ts +1 -1
  116. package/dist/components/ToggleChips.js +1 -1
  117. package/dist/components/Tooltip.d.ts +1 -1
  118. package/dist/components/Tooltip.js +9 -5
  119. package/dist/components/index.js +5 -1
  120. package/dist/components/internal/CompoundField.js +6 -6
  121. package/dist/components/internal/ContextualModal.js +1 -1
  122. package/dist/components/internal/DatePicker/DatePicker.js +2 -2
  123. package/dist/components/internal/DatePicker/DatePickerOverlay.js +1 -1
  124. package/dist/components/internal/DatePicker/DateRangePicker.js +2 -2
  125. package/dist/components/internal/DatePicker/Day.js +6 -6
  126. package/dist/components/internal/DatePicker/Header.js +2 -2
  127. package/dist/components/internal/DatePicker/WeekHeader.js +1 -1
  128. package/dist/components/internal/DatePicker/index.js +5 -1
  129. package/dist/components/internal/Menu.js +3 -3
  130. package/dist/components/internal/MenuItem.js +6 -6
  131. package/dist/components/internal/MenuSection.js +1 -1
  132. package/dist/components/internal/OverlayTrigger.js +1 -1
  133. package/dist/components/internal/Popover.js +1 -1
  134. package/dist/components/internal/index.js +5 -1
  135. package/dist/components/testData.d.ts +1 -1
  136. package/dist/components/testData.js +5 -5
  137. package/dist/forms/BoundCheckboxField.d.ts +1 -1
  138. package/dist/forms/BoundCheckboxField.js +3 -3
  139. package/dist/forms/BoundCheckboxGroupField.d.ts +1 -1
  140. package/dist/forms/BoundCheckboxGroupField.js +2 -2
  141. package/dist/forms/BoundChipSelectField.js +3 -3
  142. package/dist/forms/BoundDateField.d.ts +1 -1
  143. package/dist/forms/BoundDateField.js +2 -2
  144. package/dist/forms/BoundDateRangeField.d.ts +1 -1
  145. package/dist/forms/BoundDateRangeField.js +2 -2
  146. package/dist/forms/BoundMultiSelectField.d.ts +1 -1
  147. package/dist/forms/BoundMultiSelectField.js +3 -3
  148. package/dist/forms/BoundNumberField.d.ts +1 -1
  149. package/dist/forms/BoundNumberField.js +2 -2
  150. package/dist/forms/BoundRadioGroupField.d.ts +1 -1
  151. package/dist/forms/BoundRadioGroupField.js +2 -2
  152. package/dist/forms/BoundRichTextField.d.ts +1 -1
  153. package/dist/forms/BoundRichTextField.js +2 -2
  154. package/dist/forms/BoundSelectAndTextField.d.ts +2 -2
  155. package/dist/forms/BoundSelectAndTextField.js +1 -1
  156. package/dist/forms/BoundSelectField.d.ts +1 -1
  157. package/dist/forms/BoundSelectField.js +3 -3
  158. package/dist/forms/BoundSwitchField.d.ts +1 -1
  159. package/dist/forms/BoundSwitchField.js +3 -3
  160. package/dist/forms/BoundTextAreaField.d.ts +1 -1
  161. package/dist/forms/BoundTextAreaField.js +2 -2
  162. package/dist/forms/BoundTextField.d.ts +1 -1
  163. package/dist/forms/BoundTextField.js +2 -2
  164. package/dist/forms/BoundToggleChipGroupField.d.ts +1 -1
  165. package/dist/forms/BoundToggleChipGroupField.js +1 -1
  166. package/dist/forms/FormHeading.js +2 -2
  167. package/dist/forms/FormLines.d.ts +1 -1
  168. package/dist/forms/FormLines.js +5 -5
  169. package/dist/forms/FormStateApp.js +5 -5
  170. package/dist/forms/StaticField.js +1 -1
  171. package/dist/forms/StepperFormApp.js +10 -10
  172. package/dist/forms/index.js +5 -1
  173. package/dist/hooks/index.js +5 -1
  174. package/dist/hooks/useBreakpoint.d.ts +1 -1
  175. package/dist/hooks/useQueryState.d.ts +1 -1
  176. package/dist/hooks/useSessionStorage.d.ts +1 -1
  177. package/dist/index.js +5 -1
  178. package/dist/inputs/Checkbox.js +1 -1
  179. package/dist/inputs/CheckboxBase.js +6 -6
  180. package/dist/inputs/CheckboxGroup.js +2 -2
  181. package/dist/inputs/ChipSelectField.d.ts +2 -2
  182. package/dist/inputs/ChipSelectField.js +14 -14
  183. package/dist/inputs/ChipTextField.js +3 -3
  184. package/dist/inputs/DateFields/DateField.js +1 -1
  185. package/dist/inputs/DateFields/DateField.mock.js +2 -2
  186. package/dist/inputs/DateFields/DateFieldBase.js +7 -7
  187. package/dist/inputs/DateFields/DateRangeField.js +1 -1
  188. package/dist/inputs/DateFields/index.js +5 -1
  189. package/dist/inputs/DateFields/utils.d.ts +2 -2
  190. package/dist/inputs/ErrorMessage.js +2 -2
  191. package/dist/inputs/MultiSelectField.js +2 -2
  192. package/dist/inputs/MultiSelectField.mock.js +4 -4
  193. package/dist/inputs/NumberField.d.ts +1 -1
  194. package/dist/inputs/NumberField.js +4 -4
  195. package/dist/inputs/RadioGroupField.js +3 -3
  196. package/dist/inputs/RichTextField.js +3 -3
  197. package/dist/inputs/RichTextField.mock.js +2 -2
  198. package/dist/inputs/SelectField.js +2 -2
  199. package/dist/inputs/SelectField.mock.js +4 -4
  200. package/dist/inputs/Switch.js +5 -5
  201. package/dist/inputs/SwitchGroup.d.ts +1 -1
  202. package/dist/inputs/SwitchGroup.js +1 -1
  203. package/dist/inputs/TextAreaField.js +1 -1
  204. package/dist/inputs/TextField.d.ts +1 -1
  205. package/dist/inputs/TextField.js +1 -1
  206. package/dist/inputs/TextFieldBase.js +10 -10
  207. package/dist/inputs/ToggleButton.js +1 -1
  208. package/dist/inputs/ToggleChipGroup.d.ts +1 -1
  209. package/dist/inputs/ToggleChipGroup.js +3 -3
  210. package/dist/inputs/Value.d.ts +1 -1
  211. package/dist/inputs/index.js +5 -1
  212. package/dist/inputs/internal/ListBox.js +3 -3
  213. package/dist/inputs/internal/ListBoxChip.js +1 -1
  214. package/dist/inputs/internal/ListBoxSection.js +1 -1
  215. package/dist/inputs/internal/ListBoxToggleChip.js +2 -2
  216. package/dist/inputs/internal/LoadingDots.js +2 -2
  217. package/dist/inputs/internal/MenuSearchField.js +1 -1
  218. package/dist/inputs/internal/Option.js +3 -3
  219. package/dist/inputs/internal/SelectFieldBase.d.ts +1 -1
  220. package/dist/inputs/internal/SelectFieldBase.js +2 -2
  221. package/dist/inputs/internal/SelectFieldInput.js +4 -4
  222. package/dist/inputs/internal/VirtualizedOptions.js +2 -2
  223. package/dist/interfaces.d.ts +1 -1
  224. package/dist/types.d.ts +4 -4
  225. package/dist/utils/getInteractiveElement.js +2 -2
  226. package/dist/utils/index.d.ts +2 -2
  227. package/dist/utils/index.js +5 -1
  228. package/dist/utils/rtl.js +1 -1
  229. package/dist/utils/sb.d.ts +2 -2
  230. package/dist/utils/sb.js +4 -4
  231. package/dist/utils/useTestIds.d.ts +1 -1
  232. package/package.json +4 -4
package/dist/Css.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { Properties as Properties1 } from "csstype";
2
2
  /** Given a type X, and the user's proposed type T, only allow keys in X and nothing else. */
3
- export declare type Only<X, T> = X & Record<Exclude<keyof T, keyof X>, never>;
4
- export declare type Properties = Properties1<string | 0, string>;
5
- export declare type Typography = "tiny" | "tinyMd" | "tinySb" | "tinyBd" | "xs" | "xsMd" | "xsSb" | "xsBd" | "sm" | "smMd" | "smSb" | "smBd" | "base" | "baseMd" | "baseSb" | "baseBd" | "lg" | "lgMd" | "lgSb" | "lgBd" | "xl" | "xlMd" | "xlSb" | "xlBd" | "xl2" | "xl2Md" | "xl2Sb" | "xl2Bd" | "xl3" | "xl3Md" | "xl3Sb" | "xl3Bd" | "xl4" | "xl4Md" | "xl4Sb" | "xl4Bd" | "xl5" | "xl5Md" | "xl5Sb" | "xl5Bd";
6
- declare type Opts<T> = {
3
+ export type Only<X, T> = X & Record<Exclude<keyof T, keyof X>, never>;
4
+ export type Properties = Properties1<string | 0, string>;
5
+ export type Typography = "tiny" | "tinyMd" | "tinySb" | "tinyBd" | "xs" | "xsMd" | "xsSb" | "xsBd" | "sm" | "smMd" | "smSb" | "smBd" | "base" | "baseMd" | "baseSb" | "baseBd" | "lg" | "lgMd" | "lgSb" | "lgBd" | "xl" | "xlMd" | "xlSb" | "xlBd" | "xl2" | "xl2Md" | "xl2Sb" | "xl2Bd" | "xl3" | "xl3Md" | "xl3Sb" | "xl3Bd" | "xl4" | "xl4Md" | "xl4Sb" | "xl4Bd" | "xl5" | "xl5Md" | "xl5Sb" | "xl5Bd";
6
+ type Opts<T> = {
7
7
  rules: T;
8
8
  enabled: boolean;
9
9
  important: boolean;
@@ -3838,13 +3838,13 @@ export declare enum Palette {
3838
3838
  Violet900 = "rgba(100,78,116,1)"
3839
3839
  }
3840
3840
  /** A shortcut for defining Xss types. */
3841
- export declare type Xss<P extends keyof Properties> = Pick<Properties, P>;
3841
+ export type Xss<P extends keyof Properties> = Pick<Properties, P>;
3842
3842
  /** An entry point for Css expressions. CssBuilder is immutable so this is safe to share. */
3843
3843
  export declare const Css: CssBuilder<{}>;
3844
- export declare type Margin = "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft";
3845
- export declare type Padding = "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft";
3846
- export declare type Font = "fontSize" | "fontWeight" | "lineHeight";
3847
- export declare type Breakpoint = "print" | "sm" | "md" | "smOrMd" | "mdAndUp" | "mdAndDown" | "lg" | "mdOrLg";
3844
+ export type Margin = "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft";
3845
+ export type Padding = "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft";
3846
+ export type Font = "fontSize" | "fontWeight" | "lineHeight";
3847
+ export type Breakpoint = "print" | "sm" | "md" | "smOrMd" | "mdAndUp" | "mdAndDown" | "lg" | "mdOrLg";
3848
3848
  export declare enum Breakpoints {
3849
3849
  print = "@media print",
3850
3850
  sm = "@media screen and (max-width:599px)",
@@ -17,4 +17,4 @@ export interface AccordionProps {
17
17
  setExpandedIndex?: Dispatch<SetStateAction<number | undefined>>;
18
18
  }
19
19
  export declare function Accordion(props: AccordionProps): import("@emotion/react/jsx-runtime").JSX.Element;
20
- export declare type AccordionSize = "xs" | "sm" | "md" | "lg";
20
+ export type AccordionSize = "xs" | "sm" | "md" | "lg";
@@ -36,10 +36,10 @@ function Accordion(props) {
36
36
  }
37
37
  }, [expanded, setContentHeight]);
38
38
  (0, utils_1.useResizeObserver)({ ref: contentRef, onResize });
39
- return ((0, jsx_runtime_1.jsxs)("div", Object.assign({}, testIds.container, { css: {
39
+ return ((0, jsx_runtime_1.jsxs)("div", { ...testIds.container, css: {
40
40
  ...Css_1.Css.bGray300.if(topBorder).bt.if(bottomBorder).bb.$,
41
41
  ...(size ? Css_1.Css.wPx(accordionSizes[size]).$ : {}),
42
- } }, { children: [(0, jsx_runtime_1.jsxs)("button", Object.assign({}, testIds.title, focusProps, { "aria-controls": id, "aria-expanded": expanded, disabled: disabled, css: {
42
+ }, children: [(0, jsx_runtime_1.jsxs)("button", { ...testIds.title, ...focusProps, "aria-controls": id, "aria-expanded": expanded, disabled: disabled, css: {
43
43
  ...Css_1.Css.df.jcsb.gap2.aic.w100.p2.baseMd.outline("none").addIn(":hover", Css_1.Css.bgGray100.$).$,
44
44
  ...(disabled && Css_1.Css.gray500.$),
45
45
  ...(isFocusVisible && Css_1.Css.boxShadow(`inset 0 0 0 2px ${Css_1.Palette.LightBlue700}`).$),
@@ -47,10 +47,10 @@ function Accordion(props) {
47
47
  setExpanded(!expanded);
48
48
  if (setExpandedIndex)
49
49
  setExpandedIndex(index);
50
- } }, { children: [(0, jsx_runtime_1.jsx)("span", { children: title }, void 0), (0, jsx_runtime_1.jsx)("span", Object.assign({ css: {
50
+ }, children: [(0, jsx_runtime_1.jsx)("span", { children: title }), (0, jsx_runtime_1.jsx)("span", { css: {
51
51
  transition: "transform 250ms linear",
52
52
  transform: expanded ? "rotate(180deg)" : "rotate(0deg)",
53
- } }, { children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { icon: "chevronDown" }, void 0) }), void 0)] }), void 0), (0, jsx_runtime_1.jsx)("div", Object.assign({}, testIds.details, { id: id, "aria-hidden": !expanded, css: Css_1.Css.overflowHidden.h(contentHeight).add("transition", "height 250ms ease-in-out").$ }, { children: expanded && ((0, jsx_runtime_1.jsx)("div", Object.assign({ css: Css_1.Css.px2.pb2.pt1.$, ref: contentRef }, testIds.content, { children: children }), void 0)) }), void 0)] }), void 0));
53
+ }, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { icon: "chevronDown" }) })] }), (0, jsx_runtime_1.jsx)("div", { ...testIds.details, id: id, "aria-hidden": !expanded, css: Css_1.Css.overflowHidden.h(contentHeight).add("transition", "height 250ms ease-in-out").$, children: expanded && ((0, jsx_runtime_1.jsx)("div", { css: Css_1.Css.px2.pb2.pt1.$, ref: contentRef, ...testIds.content, children: children })) })] }));
54
54
  }
55
55
  exports.Accordion = Accordion;
56
56
  const accordionSizes = {
@@ -10,6 +10,6 @@ function AccordionList(props) {
10
10
  const { accordions, size, allowMultipleExpanded = true } = props;
11
11
  const [expandedIndex, setExpandedIndex] = (0, react_2.useState)(accordions.findIndex((a) => a.defaultExpanded));
12
12
  const tid = (0, __1.useTestIds)(props, "accordionList");
13
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: accordions.map((accordionProps, index, arr) => ((0, react_1.createElement)(Accordion_1.Accordion, { ...accordionProps, ...tid, key: index, size: size, bottomBorder: index === arr.length - 1, defaultExpanded: !allowMultipleExpanded && expandedIndex === index, index: index, setExpandedIndex: setExpandedIndex }))) }, void 0));
13
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: accordions.map((accordionProps, index, arr) => ((0, react_1.createElement)(Accordion_1.Accordion, { ...accordionProps, ...tid, key: index, size: size, bottomBorder: index === arr.length - 1, defaultExpanded: !allowMultipleExpanded && expandedIndex === index, index: index, setExpandedIndex: setExpandedIndex }))) }));
14
14
  }
15
15
  exports.AccordionList = AccordionList;
@@ -21,11 +21,11 @@ function AutoSaveIndicator({ hideOnIdle, doNotReset }) {
21
21
  }, []);
22
22
  switch (status) {
23
23
  case form_state_1.AutoSaveStatus.IDLE:
24
- return hideOnIdle ? null : (0, jsx_runtime_1.jsx)(Indicator, { icon: "cloudSave" }, void 0);
24
+ return hideOnIdle ? null : (0, jsx_runtime_1.jsx)(Indicator, { icon: "cloudSave" });
25
25
  case form_state_1.AutoSaveStatus.SAVING:
26
- return (0, jsx_runtime_1.jsx)(Indicator, { icon: "refresh", text: "Saving..." }, void 0);
26
+ return (0, jsx_runtime_1.jsx)(Indicator, { icon: "refresh", text: "Saving..." });
27
27
  case form_state_1.AutoSaveStatus.DONE:
28
- return (0, jsx_runtime_1.jsx)(Indicator, { icon: "cloudSave", text: "Saved" }, void 0);
28
+ return (0, jsx_runtime_1.jsx)(Indicator, { icon: "cloudSave", text: "Saved" });
29
29
  case form_state_1.AutoSaveStatus.ERROR:
30
30
  return (
31
31
  /**
@@ -33,12 +33,12 @@ function AutoSaveIndicator({ hideOnIdle, doNotReset }) {
33
33
  * rendering it far away from the Icon/Text. Wrap it with a div to constrain
34
34
  * it.
35
35
  */
36
- (0, jsx_runtime_1.jsx)("div", Object.assign({ css: Css_1.Css.dif.$ }, { children: (0, jsx_runtime_1.jsx)(_1.Tooltip, Object.assign({ title: String(errors), placement: "bottom" }, { children: (0, jsx_runtime_1.jsx)(Indicator, { icon: "error", color: Css_1.Palette.Red500, text: "Error saving" }, void 0) }), void 0) }), void 0));
36
+ (0, jsx_runtime_1.jsx)("div", { css: Css_1.Css.dif.$, children: (0, jsx_runtime_1.jsx)(_1.Tooltip, { title: String(errors), placement: "bottom", children: (0, jsx_runtime_1.jsx)(Indicator, { icon: "error", color: Css_1.Palette.Red500, text: "Error saving" }) }) }));
37
37
  default:
38
38
  (0, types_1.assertNever)(status);
39
39
  }
40
40
  }
41
41
  exports.AutoSaveIndicator = AutoSaveIndicator;
42
42
  function Indicator({ text, icon, color }) {
43
- return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ "data-testid": "autoSave", css: Css_1.Css.df.gap1.aic.gray700.smMd.$ }, { children: [(0, jsx_runtime_1.jsx)(Icon_1.Icon, { icon: icon, color: color }, void 0), text] }), void 0));
43
+ return ((0, jsx_runtime_1.jsxs)("div", { "data-testid": "autoSave", css: Css_1.Css.df.gap1.aic.gray700.smMd.$, children: [(0, jsx_runtime_1.jsx)(Icon_1.Icon, { icon: icon, color: color }), text] }));
44
44
  }
@@ -5,4 +5,4 @@ export interface AvatarProps {
5
5
  showName?: boolean;
6
6
  }
7
7
  export declare function Avatar({ src, name, size, showName, ...others }: AvatarProps): import("@emotion/react/jsx-runtime").JSX.Element;
8
- export declare type AvatarSize = "sm" | "md" | "lg" | "xl";
8
+ export type AvatarSize = "sm" | "md" | "lg" | "xl";
@@ -11,8 +11,8 @@ function Avatar({ src, name, size = "md", showName = false, ...others }) {
11
11
  const px = sizeToPixel[size];
12
12
  const [showFallback, setShowFallback] = (0, react_1.useState)(src === undefined);
13
13
  const styles = Css_1.Css.br100.wPx(px).hPx(px).overflowHidden.$;
14
- const img = showFallback ? ((0, jsx_runtime_1.jsx)("div", Object.assign({ css: { ...styles, ...Css_1.Css[sizeToFallbackTypeScale[size]].bgGray400.gray100.df.aic.jcc.$ } }, tid, { children: name ? nameToInitials(name) : (0, jsx_runtime_1.jsx)(Icon_1.Icon, { icon: "userCircle", inc: sizeToIconInc[size] }, void 0) }), void 0)) : ((0, jsx_runtime_1.jsx)("img", Object.assign({ src: src, alt: name, css: { ...styles, ...Css_1.Css.objectCover.$ }, onError: () => setShowFallback(true), loading: "lazy" }, tid), void 0));
15
- return showName && name ? ((0, jsx_runtime_1.jsxs)("div", Object.assign({ css: Css_1.Css.dif.aic.gap1.if(size === "lg" || size === "xl").fdc.$ }, { children: [img, (0, jsx_runtime_1.jsx)("span", Object.assign({ css: Css_1.Css[sizeToTypeScale[size]].$ }, { children: name }), void 0)] }), void 0)) : (img);
14
+ const img = showFallback ? ((0, jsx_runtime_1.jsx)("div", { css: { ...styles, ...Css_1.Css[sizeToFallbackTypeScale[size]].bgGray400.gray100.df.aic.jcc.$ }, ...tid, children: name ? nameToInitials(name) : (0, jsx_runtime_1.jsx)(Icon_1.Icon, { icon: "userCircle", inc: sizeToIconInc[size] }) })) : ((0, jsx_runtime_1.jsx)("img", { src: src, alt: name, css: { ...styles, ...Css_1.Css.objectCover.$ }, onError: () => setShowFallback(true), loading: "lazy", ...tid }));
15
+ return showName && name ? ((0, jsx_runtime_1.jsxs)("div", { css: Css_1.Css.dif.aic.gap1.if(size === "lg" || size === "xl").fdc.$, children: [img, (0, jsx_runtime_1.jsx)("span", { css: Css_1.Css[sizeToTypeScale[size]].$, children: name })] })) : (img);
16
16
  }
17
17
  exports.Avatar = Avatar;
18
18
  const sizeToPixel = {
@@ -44,7 +44,7 @@ function AvatarButton(props) {
44
44
  return (0, components_1.maybeTooltip)({
45
45
  title: (0, components_1.resolveTooltip)(disabled, tooltip),
46
46
  placement: "top",
47
- children: (0, getInteractiveElement_1.getButtonOrLink)((0, jsx_runtime_1.jsx)(Avatar_1.Avatar, Object.assign({}, avatarProps, tid), void 0), onPress, buttonAttrs, openInNew),
47
+ children: (0, getInteractiveElement_1.getButtonOrLink)((0, jsx_runtime_1.jsx)(Avatar_1.Avatar, { ...avatarProps, ...tid }), onPress, buttonAttrs, openInNew),
48
48
  });
49
49
  }
50
50
  exports.AvatarButton = AvatarButton;
@@ -61,7 +61,7 @@ function BeamProvider({ children, ...presentationProps }) {
61
61
  sdHeaderDiv,
62
62
  };
63
63
  }, [modalBodyDiv, modalFooterDiv]);
64
- return ((0, jsx_runtime_1.jsx)(exports.BeamContext.Provider, Object.assign({ value: { ...context } }, { children: (0, jsx_runtime_1.jsx)(PresentationContext_1.PresentationProvider, Object.assign({}, presentationProps, { children: (0, jsx_runtime_1.jsx)(Layout_1.RightPaneProvider, { children: (0, jsx_runtime_1.jsx)(form_state_1.AutoSaveStatusProvider, { children: (0, jsx_runtime_1.jsx)(SnackbarContext_1.SnackbarProvider, { children: (0, jsx_runtime_1.jsxs)(ToastContext_1.ToastProvider, { children: [(0, jsx_runtime_1.jsxs)(react_aria_1.OverlayProvider, { children: [children, modalRef.current && (0, jsx_runtime_1.jsx)(Modal_1.Modal, Object.assign({}, modalRef.current), void 0)] }, void 0), (0, jsx_runtime_1.jsx)(SuperDrawer_1.SuperDrawer, {}, void 0)] }, void 0) }, void 0) }, void 0) }, void 0) }), void 0) }), void 0));
64
+ return ((0, jsx_runtime_1.jsx)(exports.BeamContext.Provider, { value: { ...context }, children: (0, jsx_runtime_1.jsx)(PresentationContext_1.PresentationProvider, { ...presentationProps, children: (0, jsx_runtime_1.jsx)(Layout_1.RightPaneProvider, { children: (0, jsx_runtime_1.jsx)(form_state_1.AutoSaveStatusProvider, { children: (0, jsx_runtime_1.jsx)(SnackbarContext_1.SnackbarProvider, { children: (0, jsx_runtime_1.jsxs)(ToastContext_1.ToastProvider, { children: [(0, jsx_runtime_1.jsxs)(react_aria_1.OverlayProvider, { children: [children, modalRef.current && (0, jsx_runtime_1.jsx)(Modal_1.Modal, { ...modalRef.current })] }), (0, jsx_runtime_1.jsx)(SuperDrawer_1.SuperDrawer, {})] }) }) }) }) }) }));
65
65
  }
66
66
  exports.BeamProvider = BeamProvider;
67
67
  /** Looks like a ref, but invokes a re-render on set (w/o changing the setter identity). */
@@ -21,5 +21,5 @@ export interface ButtonProps extends BeamButtonProps, BeamFocusableProps {
21
21
  labelInFlight?: string;
22
22
  }
23
23
  export declare function Button(props: ButtonProps): import("@emotion/react/jsx-runtime").JSX.Element;
24
- export declare type ButtonSize = "sm" | "md" | "lg";
25
- export declare type ButtonVariant = "primary" | "secondary" | "tertiary" | "tertiaryDanger" | "danger" | "text";
24
+ export type ButtonSize = "sm" | "md" | "lg";
25
+ export type ButtonVariant = "primary" | "secondary" | "tertiary" | "tertiaryDanger" | "danger" | "text";
@@ -38,7 +38,7 @@ function Button(props) {
38
38
  const { isFocusVisible, focusProps } = (0, react_aria_1.useFocusRing)(ariaProps);
39
39
  const { hoverProps, isHovered } = (0, react_aria_1.useHover)(ariaProps);
40
40
  const { baseStyles, hoverStyles, disabledStyles, pressedStyles, focusStyles } = (0, react_1.useMemo)(() => getButtonStyles(variant, size, contrast), [variant, size, contrast]);
41
- const buttonContent = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [icon && (0, jsx_runtime_1.jsx)(components_1.Icon, { xss: iconStyles[size], icon: icon }, void 0), labelInFlight && asyncInProgress ? labelInFlight : label, (endAdornment || asyncInProgress) && ((0, jsx_runtime_1.jsx)("span", Object.assign({ css: Css_1.Css.ml1.$ }, { children: asyncInProgress ? (0, jsx_runtime_1.jsx)(components_1.Loader, { size: "xs", contrast: contrast }, void 0) : endAdornment }), void 0))] }, void 0));
41
+ const buttonContent = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [icon && (0, jsx_runtime_1.jsx)(components_1.Icon, { xss: iconStyles[size], icon: icon }), labelInFlight && asyncInProgress ? labelInFlight : label, (endAdornment || asyncInProgress) && ((0, jsx_runtime_1.jsx)("span", { css: Css_1.Css.ml1.$, children: asyncInProgress ? (0, jsx_runtime_1.jsx)(components_1.Loader, { size: "xs", contrast: contrast }) : endAdornment }))] }));
42
42
  const buttonAttrs = {
43
43
  ref: ref,
44
44
  ...buttonProps,
@@ -16,9 +16,9 @@ function ButtonDatePicker(props) {
16
16
  const buttonRef = (0, react_1.useRef)(null);
17
17
  const { menuTriggerProps, menuProps } = (0, react_aria_1.useMenuTrigger)({ isDisabled: !!disabled }, state, buttonRef);
18
18
  const tid = (0, utils_1.useTestIds)(props, (0, OverlayTrigger_1.isTextButton)(trigger) ? (0, defaultTestId_1.defaultTestId)(trigger.label) : (0, OverlayTrigger_1.isIconButton)(trigger) ? trigger.icon : trigger.name);
19
- return ((0, jsx_runtime_1.jsx)(OverlayTrigger_1.OverlayTrigger, Object.assign({}, props, { menuTriggerProps: menuTriggerProps, state: state, buttonRef: buttonRef }, tid, { children: (0, jsx_runtime_1.jsx)(DatePickerOverlay_1.DatePickerOverlay, Object.assign({ overlayProps: menuProps }, { children: (0, jsx_runtime_1.jsx)(DatePicker_1.DatePicker, Object.assign({}, datePickerProps, { onSelect: (d) => {
19
+ return ((0, jsx_runtime_1.jsx)(OverlayTrigger_1.OverlayTrigger, { ...props, menuTriggerProps: menuTriggerProps, state: state, buttonRef: buttonRef, ...tid, children: (0, jsx_runtime_1.jsx)(DatePickerOverlay_1.DatePickerOverlay, { overlayProps: menuProps, children: (0, jsx_runtime_1.jsx)(DatePicker_1.DatePicker, { ...datePickerProps, onSelect: (d) => {
20
20
  onSelect(d);
21
21
  state.close();
22
- } }, tid.datePicker), void 0) }), void 0) }), void 0));
22
+ }, ...tid.datePicker }) }) }));
23
23
  }
24
24
  exports.ButtonDatePicker = ButtonDatePicker;
@@ -6,7 +6,7 @@ export interface ButtonGroupProps {
6
6
  disabled?: boolean;
7
7
  size?: ButtonGroupSize;
8
8
  }
9
- export declare type ButtonGroupButton = {
9
+ export type ButtonGroupButton = {
10
10
  icon?: IconProps["icon"];
11
11
  text?: string;
12
12
  onClick?: VoidFunction;
@@ -18,5 +18,5 @@ export declare type ButtonGroupButton = {
18
18
  tooltip?: ReactNode;
19
19
  };
20
20
  export declare function ButtonGroup(props: ButtonGroupProps): import("@emotion/react/jsx-runtime").JSX.Element;
21
- declare type ButtonGroupSize = "xs" | "sm" | "md";
21
+ type ButtonGroupSize = "xs" | "sm" | "md";
22
22
  export {};
@@ -14,9 +14,9 @@ function ButtonGroup(props) {
14
14
  const tid = (0, utils_1.useTestIds)(props, "buttonGroup");
15
15
  return (
16
16
  // Adding `line-height: 0` prevent inheriting line-heights that might throw off sizing within the button group.
17
- (0, jsx_runtime_1.jsx)("div", Object.assign({}, tid, { css: Css_1.Css.df.lh(0).add(sizeStyles[size]).$ }, { children: buttons.map(({ disabled: buttonDisabled, ...buttonProps }, i) => (
17
+ (0, jsx_runtime_1.jsx)("div", { ...tid, css: Css_1.Css.df.lh(0).add(sizeStyles[size]).$, children: buttons.map(({ disabled: buttonDisabled, ...buttonProps }, i) => (
18
18
  // Disable the button if the ButtonGroup is disabled or if the current button is disabled.
19
- (0, jsx_runtime_1.jsx)(GroupButton, Object.assign({}, buttonProps, { disabled: disabled || buttonDisabled, size: size }, tid), i))) }), void 0));
19
+ (0, jsx_runtime_1.jsx)(GroupButton, { ...buttonProps, disabled: disabled || buttonDisabled, size: size, ...tid }, i))) }));
20
20
  }
21
21
  exports.ButtonGroup = ButtonGroup;
22
22
  function GroupButton(props) {
@@ -28,18 +28,18 @@ function GroupButton(props) {
28
28
  const { isFocusVisible, focusProps } = (0, react_aria_1.useFocusRing)();
29
29
  const { hoverProps, isHovered } = (0, react_aria_1.useHover)(ariaProps);
30
30
  const tid = (0, utils_1.useTestIds)(props);
31
- return ((0, jsx_runtime_1.jsx)("span", Object.assign({ css: getButtonStyles() }, { children: (0, Tooltip_1.maybeTooltip)({
31
+ return ((0, jsx_runtime_1.jsx)("span", { css: getButtonStyles(), children: (0, Tooltip_1.maybeTooltip)({
32
32
  title: (0, Tooltip_1.resolveTooltip)(disabled, tooltip),
33
33
  placement: "top",
34
- children: ((0, jsx_runtime_1.jsxs)("button", Object.assign({ ref: ref }, buttonProps, focusProps, hoverProps, { css: {
34
+ children: ((0, jsx_runtime_1.jsxs)("button", { ref: ref, ...buttonProps, ...focusProps, ...hoverProps, css: {
35
35
  ...Css_1.Css.buttonBase.px2.br0.h100.$,
36
36
  "&:disabled": Css_1.Css.gray400.cursorNotAllowed.bGray300.$,
37
37
  ...(isFocusVisible ? defaultFocusRingStyles : {}),
38
38
  ...(active ? activeStyles : {}),
39
39
  ...(isPressed ? pressedStyles : isHovered ? hoverStyles : {}),
40
40
  ...(icon ? iconStyles[size] : {}),
41
- } }, tid[(0, defaultTestId_1.defaultTestId)((_a = text !== null && text !== void 0 ? text : icon) !== null && _a !== void 0 ? _a : "button")], { children: [icon && (0, jsx_runtime_1.jsx)(Icon_1.Icon, { icon: icon }, void 0), text] }), void 0)),
42
- }) }), void 0));
41
+ }, ...tid[(0, defaultTestId_1.defaultTestId)((_a = text !== null && text !== void 0 ? text : icon) !== null && _a !== void 0 ? _a : "button")], children: [icon && (0, jsx_runtime_1.jsx)(Icon_1.Icon, { icon: icon }), text] })),
42
+ }) }));
43
43
  }
44
44
  const pressedStyles = Css_1.Css.bgGray200.$;
45
45
  const activeStyles = Css_1.Css.bgGray300.$;
@@ -7,22 +7,22 @@ interface ButtonMenuProps extends Pick<OverlayTriggerProps, "trigger" | "placeme
7
7
  defaultOpen?: boolean;
8
8
  }
9
9
  export declare function ButtonMenu(props: ButtonMenuProps): import("@emotion/react/jsx-runtime").JSX.Element;
10
- declare type MenuItemBase = {
10
+ type MenuItemBase = {
11
11
  label: string;
12
12
  onClick: string | VoidFunction;
13
13
  disabled?: boolean;
14
14
  destructive?: boolean;
15
15
  };
16
- export declare type IconMenuItemType = MenuItemBase & {
16
+ export type IconMenuItemType = MenuItemBase & {
17
17
  icon: IconProps["icon"];
18
18
  };
19
- export declare type ImageMenuItemType = MenuItemBase & {
19
+ export type ImageMenuItemType = MenuItemBase & {
20
20
  src: string;
21
21
  size?: 24 | 48;
22
22
  isAvatar?: boolean;
23
23
  };
24
- export declare type MenuItem = MenuItemBase | IconMenuItemType | ImageMenuItemType;
25
- export declare type MenuSection = MenuItem & {
24
+ export type MenuItem = MenuItemBase | IconMenuItemType | ImageMenuItemType;
25
+ export type MenuSection = MenuItem & {
26
26
  items?: MenuItem[];
27
27
  };
28
28
  export {};
@@ -14,6 +14,6 @@ function ButtonMenu(props) {
14
14
  const buttonRef = (0, react_1.useRef)(null);
15
15
  const { menuTriggerProps, menuProps } = (0, react_aria_1.useMenuTrigger)({ isDisabled: !!disabled }, state, buttonRef);
16
16
  const tid = (0, utils_1.useTestIds)(props, (0, OverlayTrigger_1.isTextButton)(trigger) ? trigger.label : (0, OverlayTrigger_1.isIconButton)(trigger) ? trigger.icon : trigger.name);
17
- return ((0, jsx_runtime_1.jsx)(OverlayTrigger_1.OverlayTrigger, Object.assign({}, props, { menuTriggerProps: menuTriggerProps, state: state, buttonRef: buttonRef }, tid, { children: (0, jsx_runtime_1.jsx)(Menu_1.Menu, Object.assign({ ariaMenuProps: menuProps, onClose: () => state.close(), items: items, persistentItems: persistentItems, searchable: searchable }, tid), void 0) }), void 0));
17
+ return ((0, jsx_runtime_1.jsx)(OverlayTrigger_1.OverlayTrigger, { ...props, menuTriggerProps: menuTriggerProps, state: state, buttonRef: buttonRef, ...tid, children: (0, jsx_runtime_1.jsx)(Menu_1.Menu, { ariaMenuProps: menuProps, onClose: () => state.close(), items: items, persistentItems: persistentItems, searchable: searchable, ...tid }) }));
18
18
  }
19
19
  exports.ButtonMenu = ButtonMenu;
@@ -14,6 +14,6 @@ function ButtonModal(props) {
14
14
  const buttonRef = (0, react_1.useRef)(null);
15
15
  const { menuTriggerProps } = (0, react_aria_1.useMenuTrigger)({ isDisabled: !!disabled }, state, buttonRef);
16
16
  const tid = (0, utils_1.useTestIds)(props, (0, OverlayTrigger_1.isTextButton)(trigger) ? trigger.label : (0, OverlayTrigger_1.isIconButton)(trigger) ? trigger.icon : trigger.name);
17
- return ((0, jsx_runtime_1.jsx)(OverlayTrigger_1.OverlayTrigger, Object.assign({}, props, { menuTriggerProps: menuTriggerProps, state: state, buttonRef: buttonRef }, tid, { children: (0, jsx_runtime_1.jsx)(ContextualModal_1.ContextualModal, { content: content, title: title, close: state.close }, void 0) }), void 0));
17
+ return ((0, jsx_runtime_1.jsx)(OverlayTrigger_1.OverlayTrigger, { ...props, menuTriggerProps: menuTriggerProps, state: state, buttonRef: buttonRef, ...tid, children: (0, jsx_runtime_1.jsx)(ContextualModal_1.ContextualModal, { content: content, title: title, close: state.close }) }));
18
18
  }
19
19
  exports.ButtonModal = ButtonModal;
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from "react";
2
2
  import { Margin, Only, Xss } from "../Css";
3
- declare type ChipType = "caution" | "warning" | "success" | "light" | "dark" | "neutral";
3
+ type ChipType = "caution" | "warning" | "success" | "light" | "dark" | "neutral";
4
4
  export declare const ChipTypes: Record<ChipType, ChipType>;
5
5
  export interface ChipProps<X> {
6
6
  text: string;
@@ -23,11 +23,11 @@ function Chip({ type = exports.ChipTypes.neutral, ...props }) {
23
23
  return (0, Tooltip_1.maybeTooltip)({
24
24
  title,
25
25
  placement: "bottom",
26
- children: ((0, jsx_runtime_1.jsx)("span", Object.assign({ css: {
26
+ children: ((0, jsx_runtime_1.jsx)("span", { css: {
27
27
  ...Css_1.Css[compact ? "xs" : "sm"].dif.aic.br16.pl1.px1.pyPx(2).gray900.$,
28
28
  ...typeStyles[type],
29
29
  ...xss,
30
- } }, tid, { children: (0, jsx_runtime_1.jsx)("span", Object.assign({ css: Css_1.Css.lineClamp1.breakAll.$ }, { children: text }), void 0) }), void 0)),
30
+ }, ...tid, children: (0, jsx_runtime_1.jsx)("span", { css: Css_1.Css.lineClamp1.breakAll.$, children: text }) })),
31
31
  });
32
32
  }
33
33
  exports.Chip = Chip;
@@ -1,5 +1,5 @@
1
1
  import { Margin, Only, Xss } from "../Css";
2
- declare type ChipsXss = Xss<Margin>;
2
+ type ChipsXss = Xss<Margin>;
3
3
  export interface ChipValue {
4
4
  text: string;
5
5
  title: string;
@@ -9,13 +9,13 @@ const Css_1 = require("../Css");
9
9
  function Chips(props) {
10
10
  const { wrap } = (0, PresentationContext_1.usePresentationContext)();
11
11
  const { values, xss = {} } = props;
12
- return ((0, jsx_runtime_1.jsx)("div", Object.assign({ css: {
12
+ return ((0, jsx_runtime_1.jsx)("div", { css: {
13
13
  ...Css_1.Css.df.aifs.gap1.whiteSpace("normal").$,
14
14
  ...(wrap !== false ? Css_1.Css.add({ flexWrap: "wrap" }).$ : {}),
15
15
  ...xss,
16
- } }, { children: values.map((value, i) => {
16
+ }, children: values.map((value, i) => {
17
17
  const { text, title } = (value.hasOwnProperty("text") ? value : { text: value });
18
18
  return (0, jsx_runtime_1.jsx)(Chip_1.Chip, { text: text, title: title }, i);
19
- }) }), void 0));
19
+ }) }));
20
20
  }
21
21
  exports.Chips = Chips;
@@ -4,9 +4,9 @@ exports.Copy = void 0;
4
4
  const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
5
  const Css_1 = require("../Css");
6
6
  function Copy(props) {
7
- return ((0, jsx_runtime_1.jsx)("div", Object.assign({ css: {
7
+ return ((0, jsx_runtime_1.jsx)("div", { css: {
8
8
  ...Css_1.Css.sm.gray700.mt2.mb3.wPx(480).$,
9
9
  "& > p": Css_1.Css.my2.$,
10
- } }, { children: props.children }), void 0));
10
+ }, children: props.children }));
11
11
  }
12
12
  exports.Copy = Copy;
@@ -8,7 +8,7 @@ const Css_1 = require("../Css");
8
8
  * Applies a CSS Reset that is based on modern-normalize + TW customizations.
9
9
  */
10
10
  function CssReset() {
11
- return (0, jsx_runtime_1.jsx)(react_1.Global, { styles: [modernNormalizeReset, tailwindPreflightReset, ourReset] }, void 0);
11
+ return (0, jsx_runtime_1.jsx)(react_1.Global, { styles: [modernNormalizeReset, tailwindPreflightReset, ourReset] });
12
12
  }
13
13
  exports.CssReset = CssReset;
14
14
  // Certain `a` tags in the app we want to opt-out of the default `a` / `a:visited` look
@@ -1,5 +1,5 @@
1
1
  import { Filter } from "./types";
2
- export declare type BooleanOption = [boolean | undefined, string];
2
+ export type BooleanOption = [boolean | undefined, string];
3
3
  export interface BooleanFilterProps {
4
4
  options?: BooleanOption[];
5
5
  label?: string;
@@ -12,13 +12,13 @@ class BooleanFilter extends BaseFilter_1.BaseFilter {
12
12
  render(value, setValue, tid, inModal, vertical) {
13
13
  // Our options are a list of tuples
14
14
  const { options = defaultBooleanOptions, label, defaultValue, ...props } = this.props;
15
- return ((0, jsx_runtime_1.jsx)(SelectField_1.SelectField, Object.assign({}, props, { compact: !vertical, label: this.label,
15
+ return ((0, jsx_runtime_1.jsx)(SelectField_1.SelectField, { ...props, compact: !vertical, label: this.label,
16
16
  // We use `String(value)` so that `undefined` becomes "undefined"
17
17
  value: String(value), hideLabel: inModal, inlineLabel: !inModal && !vertical, sizeToContent: !inModal && !vertical, options: options, getOptionValue: (o) => String(o[0]), getOptionLabel: (o) => o[1], onSelect: (value) => {
18
18
  // Change our string "true" / "false" / "undefined" back to boolean | undefined
19
19
  const parsedValue = value === "undefined" ? undefined : value === "true";
20
20
  setValue(parsedValue);
21
- } }, this.testId(tid)), void 0));
21
+ }, ...this.testId(tid) }));
22
22
  }
23
23
  }
24
24
  const defaultBooleanOptions = [
@@ -1,14 +1,14 @@
1
1
  import { Key } from "react";
2
2
  import { Filter } from "./types";
3
3
  import { Value } from "../../inputs";
4
- export declare type DateFilterProps<O, V extends Value, DV extends DateFilterValue<V>> = {
4
+ export type DateFilterProps<O, V extends Value, DV extends DateFilterValue<V>> = {
5
5
  label: string;
6
6
  operations: O[];
7
7
  getOperationValue: (o: O) => V;
8
8
  getOperationLabel: (o: O) => string;
9
9
  defaultValue?: DV;
10
10
  };
11
- export declare type DateFilterValue<V extends Value> = {
11
+ export type DateFilterValue<V extends Value> = {
12
12
  op: V;
13
13
  value: Date;
14
14
  };
@@ -16,12 +16,12 @@ const anyOption = {};
16
16
  class DateFilter extends BaseFilter_1.BaseFilter {
17
17
  render(value, setValue, tid, inModal, vertical) {
18
18
  const { label, operations, getOperationValue, getOperationLabel } = this.props;
19
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [vertical && (0, jsx_runtime_1.jsx)(Label_1.Label, { label: label }, void 0), (0, jsx_runtime_1.jsxs)(CompoundField_1.CompoundField, { children: [(0, jsx_runtime_1.jsx)(inputs_1.SelectField, Object.assign({ compact: true, sizeToContent: true, options: [
19
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [vertical && (0, jsx_runtime_1.jsx)(Label_1.Label, { label: label }), (0, jsx_runtime_1.jsxs)(CompoundField_1.CompoundField, { children: [(0, jsx_runtime_1.jsx)(inputs_1.SelectField, { compact: true, sizeToContent: true, options: [
20
20
  // Always show the 'Any' option
21
21
  anyOption,
22
22
  ...operations,
23
23
  ], getOptionValue: (o) => (o === anyOption ? undefined : getOperationValue(o)), getOptionLabel: (o) => (o === anyOption ? "Any" : getOperationLabel(o)), value: value === null || value === void 0 ? void 0 : value.op, onSelect: (op) =>
24
24
  // default the selected date to today if it doesn't exist in the filter's value
25
- setValue(op ? { op, value: (value === null || value === void 0 ? void 0 : value.value) ? new Date(value.value) : new Date() } : undefined), label: inModal ? `${label} date filter operation` : label, inlineLabel: !inModal && !vertical, hideLabel: inModal || vertical, nothingSelectedText: "Any" }, tid[`${(0, defaultTestId_1.defaultTestId)(this.label)}_dateOperation`]), void 0), (0, jsx_runtime_1.jsx)(inputs_1.DateField, Object.assign({ compact: true, inlineLabel: true, value: (value === null || value === void 0 ? void 0 : value.value) ? new Date(value.value) : new Date(), label: "Date", onChange: (d) => setValue({ ...value, value: d }), disabled: !value }, tid[`${(0, defaultTestId_1.defaultTestId)(this.label)}_dateField`]), void 0)] }, void 0)] }, void 0));
25
+ setValue(op ? { op, value: (value === null || value === void 0 ? void 0 : value.value) ? new Date(value.value) : new Date() } : undefined), label: inModal ? `${label} date filter operation` : label, inlineLabel: !inModal && !vertical, hideLabel: inModal || vertical, nothingSelectedText: "Any", ...tid[`${(0, defaultTestId_1.defaultTestId)(this.label)}_dateOperation`] }), (0, jsx_runtime_1.jsx)(inputs_1.DateField, { compact: true, inlineLabel: true, value: (value === null || value === void 0 ? void 0 : value.value) ? new Date(value.value) : new Date(), label: "Date", onChange: (d) => setValue({ ...value, value: d }), disabled: !value, ...tid[`${(0, defaultTestId_1.defaultTestId)(this.label)}_dateField`] })] })] }));
26
26
  }
27
27
  }
@@ -3,14 +3,14 @@ import { Matcher } from "react-day-picker";
3
3
  import { Filter } from "./types";
4
4
  import { Value } from "../../inputs";
5
5
  import { DateRange } from "../../types";
6
- export declare type DateRangeFilterProps<V extends Value, DV extends DateRangeFilterValue<V>> = {
6
+ export type DateRangeFilterProps<V extends Value, DV extends DateRangeFilterValue<V>> = {
7
7
  label: string;
8
8
  defaultValue?: DV;
9
9
  placeholderText?: string;
10
10
  disabledDays?: Matcher | Matcher[];
11
11
  testFieldLabel?: string;
12
12
  };
13
- export declare type DateRangeFilterValue<V extends Value> = {
13
+ export type DateRangeFilterValue<V extends Value> = {
14
14
  op: V;
15
15
  value: DateRange | undefined;
16
16
  };
@@ -13,10 +13,10 @@ exports.dateRangeFilter = dateRangeFilter;
13
13
  class DateRangeFilter extends BaseFilter_1.BaseFilter {
14
14
  render(value, setValue, tid, inModal, vertical) {
15
15
  const { label, placeholderText, disabledDays, testFieldLabel, defaultValue } = this.props;
16
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [vertical && (0, jsx_runtime_1.jsx)(Label_1.Label, { label: label }, void 0), (0, jsx_runtime_1.jsx)(inputs_1.DateRangeField, Object.assign({ compact: true, inlineLabel: true, isRangeFilterField: true, placeholder: placeholderText, label: testFieldLabel !== null && testFieldLabel !== void 0 ? testFieldLabel : "Date",
16
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [vertical && (0, jsx_runtime_1.jsx)(Label_1.Label, { label: label }), (0, jsx_runtime_1.jsx)(inputs_1.DateRangeField, { compact: true, inlineLabel: true, isRangeFilterField: true, placeholder: placeholderText, label: testFieldLabel !== null && testFieldLabel !== void 0 ? testFieldLabel : "Date",
17
17
  // Making sure that DateRange is Date type and not string before passing. Will never have undefined from/to
18
18
  value: (value === null || value === void 0 ? void 0 : value.value)
19
19
  ? { from: new Date(value.value.from), to: new Date(value.value.to) }
20
- : undefined, onChange: (d) => (d ? setValue({ op: defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.op, value: d }) : setValue(undefined)), disabledDays: disabledDays }, tid[`${(0, defaultTestId_1.defaultTestId)(this.label)}_dateField`]), void 0)] }, void 0));
20
+ : undefined, onChange: (d) => (d ? setValue({ op: defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.op, value: d }) : setValue(undefined)), disabledDays: disabledDays, ...tid[`${(0, defaultTestId_1.defaultTestId)(this.label)}_dateField`] })] }));
21
21
  }
22
22
  }
@@ -14,16 +14,16 @@ function FilterModal(props) {
14
14
  const { closeModal } = (0, Modal_1.useModal)();
15
15
  // Local copy of the filter that we'll use to manage the modal's state separate from the rest of the Filter
16
16
  const [modalFilter, setModalFilter] = (0, react_1.useState)(filter);
17
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Modal_1.ModalHeader, { children: "More Filters" }, void 0), (0, jsx_runtime_1.jsx)(Modal_1.ModalBody, { children: (0, jsx_runtime_1.jsx)("div", Object.assign({ css: Css_1.Css.df.fdc.$ }, { children: (0, utils_1.safeEntries)(filters).map(([key, f]) => ((0, jsx_runtime_1.jsx)(ModalFilterItem, Object.assign({ label: f.hideLabelInModal ? undefined : f.label }, { children: f.render(modalFilter[key], (value) => setModalFilter((0, Filters_1.updateFilter)(modalFilter, key, value)), testId, true, false) }), key))) }), void 0) }, void 0), (0, jsx_runtime_1.jsxs)(Modal_1.ModalFooter, Object.assign({ xss: Css_1.Css.jcsb.$ }, { children: [(0, jsx_runtime_1.jsx)(Button_1.Button, Object.assign({ label: "Clear", variant: "tertiary", disabled: (0, utils_1.safeKeys)(filters).filter((fk) => modalFilter[fk] !== undefined).length === 0, onClick: () =>
17
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Modal_1.ModalHeader, { children: "More Filters" }), (0, jsx_runtime_1.jsx)(Modal_1.ModalBody, { children: (0, jsx_runtime_1.jsx)("div", { css: Css_1.Css.df.fdc.$, children: (0, utils_1.safeEntries)(filters).map(([key, f]) => ((0, jsx_runtime_1.jsx)(ModalFilterItem, { label: f.hideLabelInModal ? undefined : f.label, children: f.render(modalFilter[key], (value) => setModalFilter((0, Filters_1.updateFilter)(modalFilter, key, value)), testId, true, false) }, key))) }) }), (0, jsx_runtime_1.jsxs)(Modal_1.ModalFooter, { xss: Css_1.Css.jcsb.$, children: [(0, jsx_runtime_1.jsx)(Button_1.Button, { label: "Clear", variant: "tertiary", disabled: (0, utils_1.safeKeys)(filters).filter((fk) => modalFilter[fk] !== undefined).length === 0, onClick: () =>
18
18
  // Only remove the filters keys that exist in the modal.
19
- setModalFilter((0, utils_1.safeKeys)(filters).reduce((acc, fk) => (0, utils_1.omitKey)(fk, acc), modalFilter)) }, testId.modalClear), void 0), (0, jsx_runtime_1.jsxs)("div", Object.assign({ css: Css_1.Css.df.gap1.$ }, { children: [(0, jsx_runtime_1.jsx)(Button_1.Button, Object.assign({ label: "Cancel", variant: "tertiary", onClick: closeModal }, testId.modalClose), void 0), (0, jsx_runtime_1.jsx)(Button_1.Button, Object.assign({ label: "Apply", onClick: () => {
19
+ setModalFilter((0, utils_1.safeKeys)(filters).reduce((acc, fk) => (0, utils_1.omitKey)(fk, acc), modalFilter)), ...testId.modalClear }), (0, jsx_runtime_1.jsxs)("div", { css: Css_1.Css.df.gap1.$, children: [(0, jsx_runtime_1.jsx)(Button_1.Button, { label: "Cancel", variant: "tertiary", onClick: closeModal, ...testId.modalClose }), (0, jsx_runtime_1.jsx)(Button_1.Button, { label: "Apply", onClick: () => {
20
20
  onApply(modalFilter);
21
21
  closeModal();
22
- } }, testId.modalApply), void 0)] }), void 0)] }), void 0)] }, void 0));
22
+ }, ...testId.modalApply })] })] })] }));
23
23
  }
24
24
  exports.FilterModal = FilterModal;
25
25
  // Wraps a filter component to be displayed in the Filter Modal
26
26
  function ModalFilterItem({ label, children }) {
27
- return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ css: Css_1.Css.mb4.if(!label).bt.bGray200.$ }, { children: [label && (0, jsx_runtime_1.jsx)("h2", Object.assign({ css: Css_1.Css.baseMd.mb2.$ }, { children: label }), void 0), (0, jsx_runtime_1.jsx)("div", Object.assign({ css: Css_1.Css.if(!label).pt3.$ }, { children: children }), void 0)] }), void 0));
27
+ return ((0, jsx_runtime_1.jsxs)("div", { css: Css_1.Css.mb4.if(!label).bt.bGray200.$, children: [label && (0, jsx_runtime_1.jsx)("h2", { css: Css_1.Css.baseMd.mb2.$, children: label }), (0, jsx_runtime_1.jsx)("div", { css: Css_1.Css.if(!label).pt3.$, children: children })] }));
28
28
  }
29
29
  exports.ModalFilterItem = ModalFilterItem;
@@ -1,6 +1,6 @@
1
1
  import { FilterDefs } from "./";
2
2
  import { Value } from "../../inputs/Value";
3
- interface FilterProps<F, G extends Value = string> {
3
+ interface FilterProps<F extends Record<string, unknown>, G extends Value = string> {
4
4
  /** List of filters */
5
5
  filterDefs: FilterDefs<F>;
6
6
  /** The current filter value. */
@@ -20,7 +20,9 @@ interface FilterProps<F, G extends Value = string> {
20
20
  };
21
21
  /** Specifies the layout of the filters. If not supplied it will use the default (horizontal) layout. Using the 'vertical' layout will also remove the "More Filters" button/modal */
22
22
  vertical?: boolean;
23
+ /** Specifies the number of in line filters before more filters modal */
24
+ numberOfInlineFilters?: number;
23
25
  }
24
- declare function Filters<F, G extends Value = string>(props: FilterProps<F, G>): import("@emotion/react/jsx-runtime").JSX.Element;
26
+ declare function Filters<F extends Record<string, unknown>, G extends Value = string>(props: FilterProps<F, G>): import("@emotion/react/jsx-runtime").JSX.Element;
25
27
  declare const _Filters: typeof Filters;
26
28
  export { _Filters as Filters };
@@ -10,33 +10,32 @@ const Css_1 = require("../../Css");
10
10
  const SelectField_1 = require("../../inputs/SelectField");
11
11
  const utils_1 = require("../../utils");
12
12
  function Filters(props) {
13
- const { filter, onChange, filterDefs, groupBy, vertical = false } = props;
13
+ const { filter, onChange, filterDefs, groupBy, vertical = false, numberOfInlineFilters = groupBy ? 3 : 4 } = props;
14
14
  const testId = (0, utils_1.useTestIds)(props, Filters_1.filterTestIdPrefix);
15
15
  const { openModal } = (0, Modal_1.useModal)();
16
- const numberOfPageFilters = groupBy ? 2 : 3;
17
16
  const [pageFilters, modalFilters] = (0, react_1.useMemo)(() => {
18
17
  // Take the FilterDefs that have a `key => ...` factory and eval it
19
18
  const impls = (0, utils_1.safeEntries)(filterDefs).map(([key, fn]) => [key, fn(key)]);
20
- // If we have more than 4 filters,
21
- if (!vertical && impls.length > numberOfPageFilters + 1) {
22
- // Then return the first three to show on the page, and the remainder for the modal.
19
+ // If we have more than numberOfInlineFilters depending on groupby,
20
+ if (!vertical && impls.length > numberOfInlineFilters) {
21
+ // Then return up to the numberOfInlineFilters, and the remainder in the modal.
23
22
  return [
24
- Object.fromEntries(impls.slice(0, numberOfPageFilters)),
25
- Object.fromEntries(impls.slice(numberOfPageFilters)),
23
+ Object.fromEntries(impls.slice(0, numberOfInlineFilters - 1)),
24
+ Object.fromEntries(impls.slice(numberOfInlineFilters - 1)),
26
25
  ];
27
26
  }
28
27
  // Otherwise, we don't have enough to show the modal, so only use page filter keys
29
28
  return [Object.fromEntries(impls), {}];
30
- }, [numberOfPageFilters, filterDefs]);
29
+ }, [numberOfInlineFilters, vertical, filterDefs]);
31
30
  const numModalFilters = (0, utils_1.safeKeys)(modalFilters).filter((fk) => filter[fk] !== undefined).length;
32
- const maybeGroupByField = groupBy ? ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(SelectField_1.SelectField, { label: "Group by", compact: !vertical, inlineLabel: !vertical, sizeToContent: !vertical, options: groupBy.options, getOptionValue: (o) => o.id, getOptionLabel: (o) => o.name, value: groupBy.value, onSelect: (g) => g && groupBy.setValue(g) }, void 0) }, void 0)) : null;
31
+ const maybeGroupByField = groupBy ? ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(SelectField_1.SelectField, { label: "Group by", compact: !vertical, inlineLabel: !vertical, sizeToContent: !vertical, options: groupBy.options, getOptionValue: (o) => o.id, getOptionLabel: (o) => o.name, value: groupBy.value, onSelect: (g) => g && groupBy.setValue(g) }) })) : null;
33
32
  // Return list of filter components. `onSelect` should update the `filter`
34
- return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ css: {
33
+ return ((0, jsx_runtime_1.jsxs)("div", { css: {
35
34
  ...(vertical ? Css_1.Css.df.fdc.gap2.$ : Css_1.Css.df.aic.gap1.$),
36
- } }, testId, { children: [maybeGroupByField, (0, utils_1.safeEntries)(pageFilters).map(([key, f]) => ((0, jsx_runtime_1.jsx)("div", { children: f.render(filter[key], (value) => onChange((0, Filters_1.updateFilter)(filter, key, value)), testId, false, vertical) }, key))), Object.keys(modalFilters).length > 0 && ((0, jsx_runtime_1.jsx)(Button_1.Button, Object.assign({ label: "More Filters", endAdornment: numModalFilters > 0 && ((0, jsx_runtime_1.jsx)("span", Object.assign({ css: Css_1.Css.wPx(16).hPx(16).fs0.br100.bgLightBlue700.white.tinySb.df.aic.jcc.$ }, { children: numModalFilters }), void 0)), variant: "secondary", onClick: () => openModal({
35
+ }, ...testId, children: [maybeGroupByField, (0, utils_1.safeEntries)(pageFilters).map(([key, f]) => ((0, jsx_runtime_1.jsx)("div", { children: f.render(filter[key], (value) => onChange((0, Filters_1.updateFilter)(filter, key, value)), testId, false, vertical) }, key))), Object.keys(modalFilters).length > 0 && ((0, jsx_runtime_1.jsx)(Button_1.Button, { label: "More Filters", endAdornment: numModalFilters > 0 && ((0, jsx_runtime_1.jsx)("span", { css: Css_1.Css.wPx(16).hPx(16).fs0.br100.bgLightBlue700.white.tinySb.df.aic.jcc.$, children: numModalFilters })), variant: "secondary", onClick: () => openModal({
37
36
  // Spreading `props` to pass along `data-testid`
38
- content: (0, jsx_runtime_1.jsx)(Filters_1.FilterModal, Object.assign({}, props, { filter: filter, onApply: onChange, filters: modalFilters }), void 0),
39
- }) }, testId.moreFiltersBtn), void 0)), Object.keys(filter).length > 0 && ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(Button_1.Button, Object.assign({ label: "Clear", variant: "tertiary", onClick: () => onChange({}) }, testId.clearBtn), void 0) }, void 0))] }), void 0));
37
+ content: (0, jsx_runtime_1.jsx)(Filters_1.FilterModal, { ...props, filter: filter, onApply: onChange, filters: modalFilters }),
38
+ }), ...testId.moreFiltersBtn })), Object.keys(filter).length > 0 && ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(Button_1.Button, { label: "Clear", variant: "tertiary", onClick: () => onChange({}), ...testId.clearBtn }) }))] }));
40
39
  }
41
40
  // memo doesn't support generic parameters, so cast the result to the correct type
42
41
  // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/37087#issuecomment-849543638
@@ -2,7 +2,7 @@ import { Key } from "react";
2
2
  import { Filter } from "./types";
3
3
  import { MultiSelectFieldProps } from "../../inputs/MultiSelectField";
4
4
  import { Value } from "../../inputs/Value";
5
- export declare type MultiFilterProps<O, V extends Value> = Omit<MultiSelectFieldProps<O, V>, "values" | "onSelect" | "label"> & {
5
+ export type MultiFilterProps<O, V extends Value> = Omit<MultiSelectFieldProps<O, V>, "values" | "onSelect" | "label"> & {
6
6
  defaultValue?: V[];
7
7
  label?: string;
8
8
  };