@xqmsg/ui-core 0.24.10 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/components/SimpleTable/SimpleTable.d.ts +4 -2
  2. package/dist/components/SimpleTable/TableTypes.d.ts +3 -0
  3. package/dist/components/form/FormTypes.d.ts +2 -2
  4. package/dist/components/input/InputTypes.d.ts +0 -1
  5. package/dist/components/input/StackedMultiSelect/index.d.ts +2 -2
  6. package/dist/components/input/StackedPilledInput/index.d.ts +1 -0
  7. package/dist/components/input/StackedRadio/StackedRadioGroup.d.ts +2 -2
  8. package/dist/components/input/StackedSelect/index.d.ts +3 -3
  9. package/dist/components/input/components/dropdown/index.d.ts +2 -2
  10. package/dist/components/input/components/token/index.d.ts +2 -0
  11. package/dist/components/input/index.d.ts +5 -4
  12. package/dist/components/select/index.d.ts +3 -3
  13. package/dist/components/toolbar/components/actions/sort/index.d.ts +2 -2
  14. package/dist/components/toolbar/components/dropdown/index.d.ts +2 -2
  15. package/dist/theme/components/menu.d.ts +55 -0
  16. package/dist/ui-core.cjs.development.js +133 -43
  17. package/dist/ui-core.cjs.development.js.map +1 -1
  18. package/dist/ui-core.cjs.production.min.js +1 -1
  19. package/dist/ui-core.cjs.production.min.js.map +1 -1
  20. package/dist/ui-core.esm.js +133 -43
  21. package/dist/ui-core.esm.js.map +1 -1
  22. package/package.json +1 -1
  23. package/src/components/SimpleTable/SimpleTable.tsx +10 -3
  24. package/src/components/SimpleTable/TableTypes.ts +4 -0
  25. package/src/components/form/FormTypes.ts +2 -2
  26. package/src/components/icons/close/index.tsx +1 -0
  27. package/src/components/input/Input.stories.tsx +15 -0
  28. package/src/components/input/InputTypes.ts +0 -2
  29. package/src/components/input/StackedMultiSelect/index.tsx +5 -9
  30. package/src/components/input/StackedPilledInput/index.tsx +11 -4
  31. package/src/components/input/StackedRadio/StackedRadioGroup.tsx +2 -3
  32. package/src/components/input/StackedSelect/index.tsx +4 -4
  33. package/src/components/input/components/dropdown/index.tsx +2 -2
  34. package/src/components/input/components/token/index.tsx +12 -1
  35. package/src/components/input/index.tsx +9 -6
  36. package/src/components/select/index.tsx +3 -3
  37. package/src/components/toolbar/components/actions/sort/index.tsx +2 -2
  38. package/src/components/toolbar/components/dropdown/index.tsx +2 -2
  39. package/src/theme/components/menu.ts +78 -0
  40. package/src/theme/customXQChakraTheme.ts +2 -0
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ReadonlyTableColumns, TableBody, TableColumns, TableHeaders } from './TableTypes';
2
+ import { ReadonlyTableColumns, TableBody, TableColumns, TableColumnsWidths, TableHeaders } from './TableTypes';
3
3
  export interface SimpleTableProps<T extends ReadonlyTableColumns> {
4
4
  columns: TableColumns;
5
5
  headers?: TableHeaders<T>;
@@ -7,8 +7,10 @@ export interface SimpleTableProps<T extends ReadonlyTableColumns> {
7
7
  loading?: boolean;
8
8
  loadMore?: () => void;
9
9
  placeholder?: string;
10
+ layout?: 'fixed' | 'auto';
11
+ columnsWidths?: TableColumnsWidths<T>;
10
12
  }
11
13
  /**
12
14
  * A React component utilized to render the `Table` component
13
15
  */
14
- export declare function SimpleTable<T extends ReadonlyTableColumns>({ columns, headers, body, loading, loadMore, }: SimpleTableProps<T>): React.JSX.Element;
16
+ export declare function SimpleTable<T extends ReadonlyTableColumns>({ columns, headers, body, loading, loadMore, layout, columnsWidths, }: SimpleTableProps<T>): React.JSX.Element;
@@ -4,6 +4,9 @@ export declare type ReadonlyTableColumns = Readonly<TableColumns>;
4
4
  export declare type TableHeaders<K extends ReadonlyTableColumns> = {
5
5
  [k in K[number]]: ReactNode;
6
6
  };
7
+ export declare type TableColumnsWidths<K extends ReadonlyTableColumns> = {
8
+ [k in K[number]]: string | number;
9
+ };
7
10
  export declare type TableRow<K extends ReadonlyTableColumns> = {
8
11
  [k in K[number]]: ReactNode;
9
12
  };
@@ -1,10 +1,10 @@
1
- import { FieldOptions, InputType } from '../input/InputTypes';
1
+ import { FieldOption, InputType } from '../input/InputTypes';
2
2
  export interface FormInput {
3
3
  label: string;
4
4
  name: string;
5
5
  ariaLabel: string;
6
6
  inputType: InputType;
7
- options?: FieldOptions;
7
+ options?: FieldOption[];
8
8
  placeholder?: string;
9
9
  isRequired: boolean;
10
10
  maxLength?: number;
@@ -13,7 +13,6 @@ export declare type FieldOption = {
13
13
  value: string | 'section_header';
14
14
  sortValue: number;
15
15
  };
16
- export declare type FieldOptions = FieldOption[];
17
16
  export interface ValidationProps {
18
17
  isRequired: boolean;
19
18
  isInvalid?: boolean;
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import { FieldOptions, ReactSelectFieldProps } from '../InputTypes';
2
+ import { FieldOption, ReactSelectFieldProps } from '../InputTypes';
3
3
  import { Control, FieldValues, UseFormClearErrors, UseFormSetError, UseFormSetValue } from 'react-hook-form';
4
4
  export interface StackedMultiSelectProps extends ReactSelectFieldProps {
5
- options: FieldOptions;
5
+ options: FieldOption[];
6
6
  setValue: UseFormSetValue<FieldValues>;
7
7
  setError: UseFormSetError<FieldValues>;
8
8
  clearErrors: UseFormClearErrors<FieldValues>;
@@ -10,6 +10,7 @@ export interface StackedPilledInputProps extends InputFieldProps {
10
10
  variant?: string;
11
11
  label?: string;
12
12
  truncatePillLength?: number;
13
+ mode?: 'scroll' | 'wrap';
13
14
  }
14
15
  /**
15
16
  * A functional React component utilized to render the `StackedPilledInput` component.
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import { FieldOptions, SelectFieldProps } from '../InputTypes';
2
+ import { FieldOption, SelectFieldProps } from '../InputTypes';
3
3
  export interface StackedRadioGroupProps extends SelectFieldProps {
4
4
  flexDirection?: 'row' | 'column';
5
- options: FieldOptions;
5
+ options: FieldOption[];
6
6
  }
7
7
  /**
8
8
  * A functional React component utilized to render the `StackedRadio` component.
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
- import { FieldOptions } from '../InputTypes';
2
+ import { FieldOption } from '../InputTypes';
3
3
  import { StackedInputProps } from '../StackedInput/StackedInput';
4
4
  import { UseFormSetValue, FieldValues, Control } from 'react-hook-form';
5
5
  export interface StackedSelectProps extends StackedInputProps {
6
- options: FieldOptions;
7
- fullOptions?: FieldOptions;
6
+ options: FieldOption[];
7
+ fullOptions?: FieldOption[];
8
8
  setValue: UseFormSetValue<FieldValues>;
9
9
  control: Control<FieldValues, any>;
10
10
  handleOnChange: (value?: string) => void;
@@ -1,8 +1,8 @@
1
1
  import React, { RefObject } from 'react';
2
- import { FieldOption, FieldOptions } from '../../InputTypes';
2
+ import { FieldOption } from '../../InputTypes';
3
3
  export interface DropdownProps {
4
4
  onSelectItem: (option: FieldOption) => void;
5
- options: FieldOptions;
5
+ options: FieldOption[];
6
6
  dropdownRef: RefObject<HTMLDivElement>;
7
7
  position: 'top' | 'bottom';
8
8
  optionIndex?: number | null;
@@ -4,6 +4,8 @@ export interface TokenProps {
4
4
  onDelete: any;
5
5
  isMobile?: boolean;
6
6
  truncateLength?: number;
7
+ showClose?: boolean;
8
+ maxWidth?: string | number;
7
9
  }
8
10
  declare const Token: React.FC<TokenProps>;
9
11
  export default Token;
@@ -1,5 +1,5 @@
1
1
  import React, { ChangeEvent } from 'react';
2
- import { FieldOptions, ValidationProps, InputType } from './InputTypes';
2
+ import { FieldOption, ValidationProps, InputType } from './InputTypes';
3
3
  import { Control, FieldValues, UseFormClearErrors, UseFormSetError, UseFormSetValue } from 'react-hook-form';
4
4
  export interface InputProps<T extends FieldValues = FieldValues> extends ValidationProps {
5
5
  inputType: InputType;
@@ -9,8 +9,8 @@ export interface InputProps<T extends FieldValues = FieldValues> extends Validat
9
9
  defaultValue?: string;
10
10
  label?: string;
11
11
  className?: string;
12
- options?: FieldOptions;
13
- fullOptions?: FieldOptions;
12
+ options?: FieldOption[];
13
+ fullOptions?: FieldOption[];
14
14
  maxLength?: number;
15
15
  helperText?: React.ReactNode;
16
16
  control: Control<T, any>;
@@ -27,9 +27,10 @@ export interface InputProps<T extends FieldValues = FieldValues> extends Validat
27
27
  loadingOptions?: boolean;
28
28
  truncatePillLength?: number;
29
29
  searchable?: boolean;
30
+ overflowMode?: 'scroll' | 'wrap';
30
31
  }
31
32
  /**
32
33
  * A functional React component utilized to render the `Input` component. Utilizes a switch statement
33
34
  * to render the correct input based on the `inputType`.
34
35
  */
35
- export declare function Input<T extends FieldValues>({ inputType, label, ariaLabel, className, placeholder, name, helperText, options, tooltipText, isInvalid, errorText, isRequired, maxLength, defaultValue, fullOptions, control, disabled, rightElement, leftElement, variant, onChange, setValue, setError, clearErrors, separators, loadingOptions, truncatePillLength, searchable, }: InputProps<T>): React.JSX.Element;
36
+ export declare function Input<T extends FieldValues>({ inputType, label, ariaLabel, className, placeholder, name, helperText, options, tooltipText, isInvalid, errorText, isRequired, maxLength, defaultValue, fullOptions, control, disabled, rightElement, leftElement, variant, onChange, setValue, setError, clearErrors, separators, loadingOptions, truncatePillLength, searchable, overflowMode, }: InputProps<T>): React.JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { SelectProps } from '@chakra-ui/react';
3
3
  import { Control, FieldValues, Path, UseFormClearErrors, UseFormSetError, UseFormSetValue } from 'react-hook-form';
4
- import { FieldOptions, ValidationProps } from 'src/components/input/InputTypes';
4
+ import { FieldOption, ValidationProps } from 'src/components/input/InputTypes';
5
5
  export interface SelectNativeProps<T extends FieldValues> extends ValidationProps, SelectProps {
6
6
  isRequired: boolean;
7
7
  name: Path<T>;
@@ -10,8 +10,8 @@ export interface SelectNativeProps<T extends FieldValues> extends ValidationProp
10
10
  defaultValue?: string;
11
11
  label?: string;
12
12
  className?: string;
13
- options?: FieldOptions;
14
- fullOptions?: FieldOptions;
13
+ options?: FieldOption[];
14
+ fullOptions?: FieldOption[];
15
15
  helperText?: React.ReactNode;
16
16
  control: Control<T, unknown>;
17
17
  onChange?: (e: React.ChangeEvent<HTMLSelectElement>) => void;
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import { FieldOption, FieldOptions } from '../../../../input/InputTypes';
2
+ import { FieldOption } from '../../../../input/InputTypes';
3
3
  export interface SortProps {
4
4
  onSelectItem: (option: FieldOption) => void;
5
- sortOptions: FieldOptions;
5
+ sortOptions: FieldOption[];
6
6
  }
7
7
  /**
8
8
  * A functional React component utilized to render the `Sort` component
@@ -1,8 +1,8 @@
1
1
  import React, { RefObject } from 'react';
2
- import { FieldOption, FieldOptions } from '../../../input/InputTypes';
2
+ import { FieldOption } from '../../../input/InputTypes';
3
3
  export interface DropdownProps {
4
4
  onSelectItem: (option: FieldOption) => void;
5
- options: FieldOptions;
5
+ options: FieldOption[];
6
6
  dropdownRef: RefObject<HTMLDivElement>;
7
7
  position: 'top' | 'bottom';
8
8
  optionIndex: number | null;
@@ -0,0 +1,55 @@
1
+ declare const _default: {
2
+ parts: string[];
3
+ baseStyle: (props: Record<string, any>) => {
4
+ list: {
5
+ bg: string;
6
+ boxShadow: string;
7
+ color: string;
8
+ minW: string;
9
+ py: number;
10
+ px: number;
11
+ zIndex: string;
12
+ borderWidth: number;
13
+ overflow: string;
14
+ backdropFilter: string;
15
+ backdropBlur: string;
16
+ borderRadius: string;
17
+ border: string;
18
+ borderColor: string;
19
+ };
20
+ item: {
21
+ fontSize: string;
22
+ fontWeight: number;
23
+ lineHeight: string;
24
+ py: number;
25
+ px: number;
26
+ borderRadius: string;
27
+ width: string;
28
+ transition: string;
29
+ _hover: {
30
+ color: string;
31
+ background: string;
32
+ };
33
+ _active: {
34
+ bg: string;
35
+ };
36
+ _expanded: {
37
+ bg: string;
38
+ };
39
+ _disabled: {
40
+ opacity: number;
41
+ cursor: string;
42
+ };
43
+ };
44
+ groupTitle: {
45
+ mx: number;
46
+ my: number;
47
+ fontWeight: string;
48
+ fontSize: string;
49
+ };
50
+ command: {
51
+ opacity: number;
52
+ };
53
+ };
54
+ };
55
+ export default _default;
@@ -1273,6 +1273,7 @@ var Close = function Close(_ref) {
1273
1273
  return /*#__PURE__*/React__default.createElement(Memo$7, {
1274
1274
  width: boxSize,
1275
1275
  height: boxSize,
1276
+ flexBasis: boxSize,
1276
1277
  onClick: onClick,
1277
1278
  cursor: "pointer"
1278
1279
  });
@@ -1285,7 +1286,11 @@ var Token = function Token(_ref) {
1285
1286
  _ref$isMobile = _ref.isMobile,
1286
1287
  isMobile = _ref$isMobile === void 0 ? false : _ref$isMobile,
1287
1288
  _ref$truncateLength = _ref.truncateLength,
1288
- truncateLength = _ref$truncateLength === void 0 ? 15 : _ref$truncateLength;
1289
+ truncateLength = _ref$truncateLength === void 0 ? 15 : _ref$truncateLength,
1290
+ _ref$showClose = _ref.showClose,
1291
+ showClose = _ref$showClose === void 0 ? true : _ref$showClose,
1292
+ _ref$maxWidth = _ref.maxWidth,
1293
+ maxWidth = _ref$maxWidth === void 0 ? 'auto' : _ref$maxWidth;
1289
1294
  return /*#__PURE__*/React__default.createElement(react.Flex, {
1290
1295
  key: label,
1291
1296
  borderRadius: 'full',
@@ -1293,6 +1298,7 @@ var Token = function Token(_ref) {
1293
1298
  alignItems: "center",
1294
1299
  width: "fit-content",
1295
1300
  w: "auto",
1301
+ maxWidth: maxWidth,
1296
1302
  h: isMobile ? '18px' : '16px',
1297
1303
  pl: "6px",
1298
1304
  pr: "2px",
@@ -1300,13 +1306,17 @@ var Token = function Token(_ref) {
1300
1306
  position: "relative"
1301
1307
  }, /*#__PURE__*/React__default.createElement(react.Text, {
1302
1308
  whiteSpace: "nowrap",
1309
+ wordBreak: "break-word",
1303
1310
  color: colors.label.primary.light,
1304
1311
  fontSize: isMobile ? '17px' : '13px',
1305
- pr: "4px"
1312
+ pr: "4px",
1313
+ maxWidth: maxWidth,
1314
+ overflow: "hidden",
1315
+ textOverflow: "ellipsis"
1306
1316
  }, lodash.truncate(label.trim(), {
1307
1317
  length: truncateLength,
1308
1318
  omission: '...'
1309
- })), /*#__PURE__*/React__default.createElement(Close, {
1319
+ })), showClose && /*#__PURE__*/React__default.createElement(Close, {
1310
1320
  boxSize: isMobile ? '17px' : '11px',
1311
1321
  onClick: onDelete
1312
1322
  }));
@@ -1620,7 +1630,9 @@ var StackedPilledInput = /*#__PURE__*/React__default.forwardRef(function (_ref2,
1620
1630
  separators = _ref2$separators === void 0 ? ['Enter', ' ', ',', ';', 'Tab'] : _ref2$separators,
1621
1631
  variant = _ref2.variant,
1622
1632
  label = _ref2.label,
1623
- truncatePillLength = _ref2.truncatePillLength;
1633
+ truncatePillLength = _ref2.truncatePillLength,
1634
+ _ref2$mode = _ref2.mode,
1635
+ mode = _ref2$mode === void 0 ? 'scroll' : _ref2$mode;
1624
1636
  var watchedValue = reactHookForm.useWatch({
1625
1637
  control: control,
1626
1638
  name: name
@@ -1641,6 +1653,7 @@ var StackedPilledInput = /*#__PURE__*/React__default.forwardRef(function (_ref2,
1641
1653
  localValue = _useState4[0],
1642
1654
  setLocalValue = _useState4[1];
1643
1655
  var latestTokenElement = document.getElementById(name + "_token_" + (lastestFormValueToArray.length - 1));
1656
+ var scrollMode = mode === 'scroll';
1644
1657
  // gets latest watched form value (common delimited) from RHF state and creates a list
1645
1658
  React.useEffect(function () {
1646
1659
  if (watchedValue !== undefined && !watchedValue.length) {
@@ -1792,11 +1805,13 @@ var StackedPilledInput = /*#__PURE__*/React__default.forwardRef(function (_ref2,
1792
1805
  bg: disabled ? colors.fill.light.quaternary : '#ffffff',
1793
1806
  cursor: disabled ? 'not-allowed' : 'pointer',
1794
1807
  ref: inputWrapperRef,
1795
- h: isMobile ? '48px' : '26px'
1808
+ h: isMobile ? '48px' : scrollMode ? '26px' : 'auto',
1809
+ minH: isMobile ? '48px' : '26px'
1796
1810
  }, /*#__PURE__*/React__default.createElement(react.Flex, {
1797
1811
  h: "100%",
1798
1812
  alignItems: "center",
1799
- overflowX: "scroll",
1813
+ overflowX: scrollMode ? 'scroll' : 'hidden',
1814
+ flexWrap: scrollMode ? 'nowrap' : 'wrap',
1800
1815
  overflowY: "hidden",
1801
1816
  maxWidth: isFocussed ? '80%' : '100%',
1802
1817
  style: {
@@ -1820,10 +1835,13 @@ var StackedPilledInput = /*#__PURE__*/React__default.forwardRef(function (_ref2,
1820
1835
  onClick: function onClick() {
1821
1836
  return setTokenIndex(index);
1822
1837
  },
1823
- width: "100%",
1838
+ width: scrollMode ? '100%' : 'auto',
1839
+ maxWidth: '100%',
1824
1840
  id: name + "_token_" + index
1825
1841
  }, /*#__PURE__*/React__default.createElement(Token, {
1842
+ maxWidth: '100%',
1826
1843
  label: label,
1844
+ showClose: !isFocussed || tokenIndex === index,
1827
1845
  onDelete: function onDelete(e) {
1828
1846
  e.stopPropagation();
1829
1847
  e.preventDefault();
@@ -1951,7 +1969,9 @@ function Input(_ref) {
1951
1969
  _ref$loadingOptions = _ref.loadingOptions,
1952
1970
  loadingOptions = _ref$loadingOptions === void 0 ? false : _ref$loadingOptions,
1953
1971
  truncatePillLength = _ref.truncatePillLength,
1954
- searchable = _ref.searchable;
1972
+ searchable = _ref.searchable,
1973
+ _ref$overflowMode = _ref.overflowMode,
1974
+ overflowMode = _ref$overflowMode === void 0 ? 'scroll' : _ref$overflowMode;
1955
1975
  function selectedInputField(onChange, onBlur, ref, value) {
1956
1976
  switch (inputType) {
1957
1977
  case 'text':
@@ -2082,7 +2102,8 @@ function Input(_ref) {
2082
2102
  variant: variant,
2083
2103
  label: label,
2084
2104
  separators: separators,
2085
- truncatePillLength: truncatePillLength
2105
+ truncatePillLength: truncatePillLength,
2106
+ mode: overflowMode
2086
2107
  });
2087
2108
  case 'switch':
2088
2109
  return /*#__PURE__*/React__default.createElement(StackedSwitch, {
@@ -3588,7 +3609,10 @@ function SimpleTable(_ref) {
3588
3609
  headers = _ref.headers,
3589
3610
  body = _ref.body,
3590
3611
  loading = _ref.loading,
3591
- loadMore = _ref.loadMore;
3612
+ loadMore = _ref.loadMore,
3613
+ _ref$layout = _ref.layout,
3614
+ layout = _ref$layout === void 0 ? 'auto' : _ref$layout,
3615
+ columnsWidths = _ref.columnsWidths;
3592
3616
  var columnsAsConst = generateTableColumnsAsConst(columns);
3593
3617
  return /*#__PURE__*/React__default.createElement(react.TableContainer, {
3594
3618
  border: "none",
@@ -3600,20 +3624,18 @@ function SimpleTable(_ref) {
3600
3624
  width: "100%",
3601
3625
  style: {
3602
3626
  borderCollapse: 'separate',
3603
- borderSpacing: '0px'
3627
+ borderSpacing: '0px',
3628
+ tableLayout: layout
3604
3629
  }
3605
- }, headers && /*#__PURE__*/React__default.createElement(react.Thead, null, /*#__PURE__*/React__default.createElement(react.Tr, {
3630
+ }, (headers || columnsWidths) && /*#__PURE__*/React__default.createElement(react.Thead, null, /*#__PURE__*/React__default.createElement(react.Tr, {
3606
3631
  _odd: {
3607
3632
  bg: colors.label.primary.dark
3608
3633
  }
3609
3634
  }, columnsAsConst.map(function (column, idx) {
3610
- return (
3611
- /*#__PURE__*/
3612
- // @ts-ignore
3613
- React__default.createElement(react.Th, {
3614
- key: idx
3615
- }, headers[column])
3616
- );
3635
+ return /*#__PURE__*/React__default.createElement(react.Th, {
3636
+ key: idx,
3637
+ width: columnsWidths == null ? void 0 : columnsWidths[column]
3638
+ }, headers && headers[column]);
3617
3639
  }))), /*#__PURE__*/React__default.createElement(react.Tbody, null, body.map(function (row, idx) {
3618
3640
  return /*#__PURE__*/React__default.createElement(react.Tr, {
3619
3641
  key: idx
@@ -4277,8 +4299,75 @@ var Link$1 = {
4277
4299
  variants: variants$6
4278
4300
  };
4279
4301
 
4280
- var parts$4 = ['overlay', 'dialogContainer', 'dialog', 'header', 'closeButton', 'body', 'footer'];
4281
- var baseStyle$9 = {
4302
+ var parts$4 = ['item', 'command', 'list', 'button', 'groupTitle'];
4303
+ function baseStyleList(props) {
4304
+ return {
4305
+ bg: colors.fill.light.quaternary,
4306
+ boxShadow: themeTools.mode("2xl", "dark-lg")(props),
4307
+ color: 'inherit',
4308
+ minW: '3xs',
4309
+ py: 4,
4310
+ px: 2,
4311
+ zIndex: 'docked',
4312
+ borderWidth: 0,
4313
+ overflow: 'hidden',
4314
+ backdropFilter: 'auto',
4315
+ backdropBlur: '64px',
4316
+ borderRadius: '4px',
4317
+ border: '0.25px solid',
4318
+ borderColor: colors.fill.light.tertiary
4319
+ };
4320
+ }
4321
+ function baseStyleItem(props) {
4322
+ return {
4323
+ fontSize: '13px;',
4324
+ fontWeight: 500,
4325
+ lineHeight: '16px',
4326
+ py: 3,
4327
+ px: 4,
4328
+ borderRadius: '4px',
4329
+ width: '100%',
4330
+ transition: 'background 50ms ease-in 0s',
4331
+ _hover: {
4332
+ color: colors.white,
4333
+ background: colors.fill.action
4334
+ },
4335
+ _active: {
4336
+ bg: themeTools.mode("gray.200", "whiteAlpha.200")(props)
4337
+ },
4338
+ _expanded: {
4339
+ bg: themeTools.mode("gray.100", "whiteAlpha.100")(props)
4340
+ },
4341
+ _disabled: {
4342
+ opacity: 0.4,
4343
+ cursor: 'not-allowed'
4344
+ }
4345
+ };
4346
+ }
4347
+ var baseStyleGroupTitle = {
4348
+ mx: 4,
4349
+ my: 2,
4350
+ fontWeight: 'semibold',
4351
+ fontSize: 'sm'
4352
+ };
4353
+ var baseStyleCommand = {
4354
+ opacity: 0.6
4355
+ };
4356
+ var baseStyle$9 = function baseStyle(props) {
4357
+ return {
4358
+ list: baseStyleList(props),
4359
+ item: baseStyleItem(props),
4360
+ groupTitle: baseStyleGroupTitle,
4361
+ command: baseStyleCommand
4362
+ };
4363
+ };
4364
+ var Menu$1 = {
4365
+ parts: parts$4,
4366
+ baseStyle: baseStyle$9
4367
+ };
4368
+
4369
+ var parts$5 = ['overlay', 'dialogContainer', 'dialog', 'header', 'closeButton', 'body', 'footer'];
4370
+ var baseStyle$a = {
4282
4371
  width: 'fit-content',
4283
4372
  height: 'fit-content',
4284
4373
  background: '#F6F6F6',
@@ -4309,8 +4398,8 @@ var baseStyle$9 = {
4309
4398
  }
4310
4399
  };
4311
4400
  var Modal$1 = {
4312
- parts: parts$4,
4313
- baseStyle: baseStyle$9
4401
+ parts: parts$5,
4402
+ baseStyle: baseStyle$a
4314
4403
  };
4315
4404
 
4316
4405
  var Popover = {
@@ -4323,7 +4412,7 @@ var Popover = {
4323
4412
 
4324
4413
  var defaultProps$5 = Input$1.defaultProps,
4325
4414
  variants$7 = Input$1.variants;
4326
- var parts$5 = ['field', 'icon'];
4415
+ var parts$6 = ['field', 'icon'];
4327
4416
  function baseStyleField() {
4328
4417
  return _extends$6({}, Input$1.baseStyle.field, {
4329
4418
  appearance: 'none',
@@ -4342,20 +4431,20 @@ var baseStyleInput = {
4342
4431
  opacity: 0.5
4343
4432
  }
4344
4433
  };
4345
- var baseStyle$a = function baseStyle() {
4434
+ var baseStyle$b = function baseStyle() {
4346
4435
  return {
4347
4436
  field: baseStyleField(),
4348
4437
  icon: baseStyleInput
4349
4438
  };
4350
4439
  };
4351
4440
  var Select = {
4352
- parts: parts$5,
4353
- baseStyle: baseStyle$a,
4441
+ parts: parts$6,
4442
+ baseStyle: baseStyle$b,
4354
4443
  variants: variants$7,
4355
4444
  defaultProps: defaultProps$5
4356
4445
  };
4357
4446
 
4358
- var parts$6 = ['track', 'thumb'];
4447
+ var parts$7 = ['track', 'thumb'];
4359
4448
  function baseStyleTrack(props) {
4360
4449
  var c = props.colorScheme,
4361
4450
  theme = props.theme;
@@ -4385,7 +4474,7 @@ var baseStyleThumb = {
4385
4474
  borderRadius: 'full',
4386
4475
  transform: 'translateX(0)'
4387
4476
  };
4388
- var baseStyle$b = function baseStyle(props) {
4477
+ var baseStyle$c = function baseStyle(props) {
4389
4478
  return {
4390
4479
  track: baseStyleTrack(props),
4391
4480
  thumb: baseStyleThumb
@@ -4437,14 +4526,14 @@ var defaultProps$6 = {
4437
4526
  colorScheme: 'blue'
4438
4527
  };
4439
4528
  var Switch = {
4440
- parts: parts$6,
4441
- baseStyle: baseStyle$b,
4529
+ parts: parts$7,
4530
+ baseStyle: baseStyle$c,
4442
4531
  sizes: sizes,
4443
4532
  defaultProps: defaultProps$6
4444
4533
  };
4445
4534
 
4446
- var parts$7 = ['th', 'td', 'tr', 'body', 'thead'];
4447
- var baseStyle$c = {
4535
+ var parts$8 = ['th', 'td', 'tr', 'body', 'thead'];
4536
+ var baseStyle$d = {
4448
4537
  thead: {
4449
4538
  bg: colors.label.primary.dark
4450
4539
  },
@@ -4480,11 +4569,11 @@ var baseStyle$c = {
4480
4569
  }
4481
4570
  };
4482
4571
  var Table = {
4483
- parts: parts$7,
4484
- baseStyle: baseStyle$c
4572
+ parts: parts$8,
4573
+ baseStyle: baseStyle$d
4485
4574
  };
4486
4575
 
4487
- var parts$8 = ['root', 'tablist', 'tab', 'tabpanel', 'indicator'];
4576
+ var parts$9 = ['root', 'tablist', 'tab', 'tabpanel', 'indicator'];
4488
4577
  function baseStyleRoot(props) {
4489
4578
  var orientation = props.orientation;
4490
4579
  return {
@@ -4519,7 +4608,7 @@ function baseStyleTablist(props) {
4519
4608
  var baseStyleTabpanel = {
4520
4609
  p: 4
4521
4610
  };
4522
- var baseStyle$d = function baseStyle(props) {
4611
+ var baseStyle$e = function baseStyle(props) {
4523
4612
  return {
4524
4613
  root: baseStyleRoot(props),
4525
4614
  tab: baseStyleTab(props),
@@ -4705,14 +4794,14 @@ var defaultProps$7 = {
4705
4794
  colorScheme: 'blue'
4706
4795
  };
4707
4796
  var Tabs = {
4708
- parts: parts$8,
4709
- baseStyle: baseStyle$d,
4797
+ parts: parts$9,
4798
+ baseStyle: baseStyle$e,
4710
4799
  sizes: sizes$1,
4711
4800
  variants: variants$8,
4712
4801
  defaultProps: defaultProps$7
4713
4802
  };
4714
4803
 
4715
- var baseStyle$e = /*#__PURE__*/_extends$6({}, Input$1.baseStyle.field, {
4804
+ var baseStyle$f = /*#__PURE__*/_extends$6({}, Input$1.baseStyle.field, {
4716
4805
  fontSize: '13px',
4717
4806
  display: 'block',
4718
4807
  paddingY: '8px',
@@ -4720,7 +4809,7 @@ var baseStyle$e = /*#__PURE__*/_extends$6({}, Input$1.baseStyle.field, {
4720
4809
  height: '78px',
4721
4810
  lineHeight: 'short'
4722
4811
  });
4723
- var mobileInputs$1 = /*#__PURE__*/react.defineStyle( /*#__PURE__*/_extends$6({}, baseStyle$e, Input$1.variants.mobile.field, {
4812
+ var mobileInputs$1 = /*#__PURE__*/react.defineStyle( /*#__PURE__*/_extends$6({}, baseStyle$f, Input$1.variants.mobile.field, {
4724
4813
  border: 'none',
4725
4814
  borderRadius: 0,
4726
4815
  paddingY: '16px',
@@ -4735,14 +4824,14 @@ var mobileInputs$1 = /*#__PURE__*/react.defineStyle( /*#__PURE__*/_extends$6({},
4735
4824
  minHeight: '208px'
4736
4825
  }));
4737
4826
  var variants$9 = {
4738
- "default": baseStyle$e,
4827
+ "default": baseStyle$f,
4739
4828
  mobile: mobileInputs$1
4740
4829
  };
4741
4830
  var defaultProps$8 = {
4742
4831
  variant: 'default'
4743
4832
  };
4744
4833
  var Textarea = {
4745
- baseStyle: baseStyle$e,
4834
+ baseStyle: baseStyle$f,
4746
4835
  variants: variants$9,
4747
4836
  defaultProps: defaultProps$8
4748
4837
  };
@@ -4874,6 +4963,7 @@ var customXQChakraTheme = /*#__PURE__*/react.extendTheme( /*#__PURE__*/_extends$
4874
4963
  FormLabel: FormLabel,
4875
4964
  Input: Input$1,
4876
4965
  Link: Link$1,
4966
+ Menu: Menu$1,
4877
4967
  Modal: Modal$1,
4878
4968
  Popover: Popover,
4879
4969
  Select: Select,