@veracity/vui 1.5.0-beta.0 → 1.5.0-rc.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 (72) hide show
  1. package/dist/cjs/accordion/accordion.types.d.ts +1 -1
  2. package/dist/cjs/accordion/accordion.types.d.ts.map +1 -1
  3. package/dist/cjs/accordion/accordionItem.js +1 -1
  4. package/dist/cjs/buttonGroup/buttonGroup.d.ts.map +1 -1
  5. package/dist/cjs/buttonGroup/buttonGroup.js +4 -0
  6. package/dist/cjs/input/consts.d.ts +3 -0
  7. package/dist/cjs/input/consts.d.ts.map +1 -1
  8. package/dist/cjs/input/consts.js +4 -1
  9. package/dist/cjs/input/helpText.d.ts +5 -0
  10. package/dist/cjs/input/helpText.d.ts.map +1 -0
  11. package/dist/cjs/input/helpText.js +36 -0
  12. package/dist/cjs/input/input.d.ts +2 -0
  13. package/dist/cjs/input/input.d.ts.map +1 -1
  14. package/dist/cjs/input/input.js +8 -4
  15. package/dist/cjs/input/input.types.d.ts +9 -1
  16. package/dist/cjs/input/input.types.d.ts.map +1 -1
  17. package/dist/cjs/list/listText.d.ts.map +1 -1
  18. package/dist/cjs/list/listText.js +1 -1
  19. package/dist/cjs/select/select.d.ts.map +1 -1
  20. package/dist/cjs/select/select.js +1 -1
  21. package/dist/cjs/select/select.types.d.ts +2 -0
  22. package/dist/cjs/select/select.types.d.ts.map +1 -1
  23. package/dist/cjs/select/selectButton.d.ts.map +1 -1
  24. package/dist/cjs/select/selectButton.js +1 -1
  25. package/dist/cjs/select/selectOption.d.ts.map +1 -1
  26. package/dist/cjs/select/selectOption.js +2 -2
  27. package/dist/cjs/utils/styles.d.ts +7 -0
  28. package/dist/cjs/utils/styles.d.ts.map +1 -1
  29. package/dist/cjs/utils/styles.js +10 -11
  30. package/dist/esm/accordion/accordion.types.d.ts +1 -1
  31. package/dist/esm/accordion/accordion.types.d.ts.map +1 -1
  32. package/dist/esm/accordion/accordionItem.js +1 -1
  33. package/dist/esm/buttonGroup/buttonGroup.d.ts.map +1 -1
  34. package/dist/esm/buttonGroup/buttonGroup.js +4 -0
  35. package/dist/esm/input/consts.d.ts +3 -0
  36. package/dist/esm/input/consts.d.ts.map +1 -1
  37. package/dist/esm/input/consts.js +3 -0
  38. package/dist/esm/input/helpText.d.ts +5 -0
  39. package/dist/esm/input/helpText.d.ts.map +1 -0
  40. package/dist/esm/input/helpText.js +19 -0
  41. package/dist/esm/input/input.d.ts +2 -0
  42. package/dist/esm/input/input.d.ts.map +1 -1
  43. package/dist/esm/input/input.js +9 -5
  44. package/dist/esm/input/input.types.d.ts +9 -1
  45. package/dist/esm/input/input.types.d.ts.map +1 -1
  46. package/dist/esm/list/listText.d.ts.map +1 -1
  47. package/dist/esm/list/listText.js +2 -2
  48. package/dist/esm/select/select.d.ts.map +1 -1
  49. package/dist/esm/select/select.js +2 -1
  50. package/dist/esm/select/select.types.d.ts +2 -0
  51. package/dist/esm/select/select.types.d.ts.map +1 -1
  52. package/dist/esm/select/selectButton.d.ts.map +1 -1
  53. package/dist/esm/select/selectButton.js +2 -2
  54. package/dist/esm/select/selectOption.d.ts.map +1 -1
  55. package/dist/esm/select/selectOption.js +3 -3
  56. package/dist/esm/utils/styles.d.ts +7 -0
  57. package/dist/esm/utils/styles.d.ts.map +1 -1
  58. package/dist/esm/utils/styles.js +9 -10
  59. package/package.json +1 -1
  60. package/src/accordion/accordion.types.ts +1 -1
  61. package/src/accordion/accordionItem.tsx +1 -1
  62. package/src/buttonGroup/buttonGroup.tsx +4 -0
  63. package/src/input/consts.ts +4 -0
  64. package/src/input/helpText.tsx +36 -0
  65. package/src/input/input.tsx +18 -9
  66. package/src/input/input.types.ts +11 -0
  67. package/src/list/listText.tsx +11 -2
  68. package/src/select/select.tsx +2 -1
  69. package/src/select/select.types.ts +2 -0
  70. package/src/select/selectButton.tsx +6 -2
  71. package/src/select/selectOption.tsx +4 -2
  72. package/src/utils/styles.ts +12 -10
@@ -1 +1 @@
1
- {"version":3,"file":"input.types.d.ts","sourceRoot":"","sources":["../../../src/input/input.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input.types.d.ts","sourceRoot":"","sources":["../../../src/input/input.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"listText.d.ts","sourceRoot":"","sources":["../../../src/list/listText.tsx"],"names":[],"mappings":"AAGA,OAAU,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAIhC,yCAAyC;AACzC,eAAO,MAAM,QAAQ,gDAKnB,CAAA;AAEF,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"listText.d.ts","sourceRoot":"","sources":["../../../src/list/listText.tsx"],"names":[],"mappings":"AAGA,OAAU,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAIhC,yCAAyC;AACzC,eAAO,MAAM,QAAQ,gDAcnB,CAAA;AAEF,eAAe,QAAQ,CAAA"}
@@ -1,12 +1,12 @@
1
1
  import React from 'react';
2
2
  import { useStyleConfig, vui } from '../core';
3
3
  import T from '../t';
4
- import { cs } from '../utils';
4
+ import { cs, ellipsisOverflow } from '../utils';
5
5
  import { useListContext } from './context';
6
6
  /** Displays text within the ListItem. */
7
7
  export const ListText = vui((props, ref) => {
8
8
  const { className, ...rest } = props;
9
9
  const styles = useStyleConfig('List', useListContext());
10
- return React.createElement(T, { className: cs('vui-listText', className), fontSize: "inherit", ref: ref, ...styles.text, ...rest });
10
+ return (React.createElement(T, { className: cs('vui-listText', className), fontSize: "inherit", ref: ref, ...ellipsisOverflow, ...styles.text, ...rest }));
11
11
  });
12
12
  export default ListText;
@@ -1 +1 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/select/select.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAO5C;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,eAoDxC;yBApDe,MAAM;;;;;;;;;AA2DtB,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/select/select.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAO5C;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,eAqDxC;yBArDe,MAAM;;;;;;;;;AA4DtB,eAAe,MAAM,CAAA"}
@@ -35,7 +35,8 @@ export function Select(props) {
35
35
  React.createElement(React.Fragment, null,
36
36
  selectButton ?? React.createElement(SelectButton, null),
37
37
  React.createElement(SelectContent, null,
38
- React.createElement(SelectGroup, null, children ?? options?.map?.(option => React.createElement(SelectOption, { key: option.value, ...option }))))))));
38
+ React.createElement(SelectGroup, null, children ??
39
+ options?.map?.(option => React.createElement(SelectOption, { key: option.value, title: option.text, ...option }))))))));
39
40
  }
40
41
  Select.Button = SelectButton;
41
42
  Select.Content = SelectContent;
@@ -36,6 +36,8 @@ export declare type SelectOptionData = {
36
36
  export declare type SelectOptionProps = ListItemProps & {
37
37
  /** Currently selected value. Can be a string/number or array of those when using 'isMultiple'. */
38
38
  value?: SelectValue;
39
+ /** Hover title text. */
40
+ title?: string;
39
41
  };
40
42
  export declare type SelectValue = number | string;
41
43
  //# sourceMappingURL=select.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select.types.d.ts","sourceRoot":"","sources":["../../../src/select/select.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,oBAAY,iBAAiB,GAAG,WAAW,CAAA;AAE3C,oBAAY,kBAAkB,GAAG,mBAAmB,CAAA;AAEpD,oBAAY,aAAa,GAAG,IAAI,CAC9B,WAAW,EACX,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAC/G,GACC,mBAAmB,CAAA;AAErB,oBAAY,gBAAgB,GAAG,SAAS,CAAA;AAExC,oBAAY,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,GAC9C,YAAY,GACZ,cAAc,GAAG;IACf,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,0FAA0F;IAC1F,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+DAA+D;IAC/D,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iCAAiC;IACjC,YAAY,CAAC,EAAE,SAAS,CAAA;CACzB,CAAA;AAEH,oBAAY,gBAAgB,GAAG;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,+BAA+B;IAC/B,KAAK,EAAE,WAAW,CAAA;CACnB,CAAA;AAED,oBAAY,iBAAiB,GAAG,aAAa,GAAG;IAC9C,mGAAmG;IACnG,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB,CAAA;AAED,oBAAY,WAAW,GAAG,MAAM,GAAG,MAAM,CAAA"}
1
+ {"version":3,"file":"select.types.d.ts","sourceRoot":"","sources":["../../../src/select/select.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,oBAAY,iBAAiB,GAAG,WAAW,CAAA;AAE3C,oBAAY,kBAAkB,GAAG,mBAAmB,CAAA;AAEpD,oBAAY,aAAa,GAAG,IAAI,CAC9B,WAAW,EACX,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAC/G,GACC,mBAAmB,CAAA;AAErB,oBAAY,gBAAgB,GAAG,SAAS,CAAA;AAExC,oBAAY,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,GAC9C,YAAY,GACZ,cAAc,GAAG;IACf,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,0FAA0F;IAC1F,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+DAA+D;IAC/D,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iCAAiC;IACjC,YAAY,CAAC,EAAE,SAAS,CAAA;CACzB,CAAA;AAEH,oBAAY,gBAAgB,GAAG;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,+BAA+B;IAC/B,KAAK,EAAE,WAAW,CAAA;CACnB,CAAA;AAED,oBAAY,iBAAiB,GAAG,aAAa,GAAG;IAC9C,mGAAmG;IACnG,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,oBAAY,WAAW,GAAG,MAAM,GAAG,MAAM,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectButton.d.ts","sourceRoot":"","sources":["../../../src/select/selectButton.tsx"],"names":[],"mappings":"AASA;;;;GAIG;AACH,eAAO,MAAM,YAAY,2EAgDvB,CAAA;AAEF,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"selectButton.d.ts","sourceRoot":"","sources":["../../../src/select/selectButton.tsx"],"names":[],"mappings":"AASA;;;;GAIG;AACH,eAAO,MAAM,YAAY,2EAoDvB,CAAA;AAEF,eAAe,YAAY,CAAA"}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import Button, { LineButton } from '../button';
3
3
  import { useStyleConfig, vui } from '../core';
4
4
  import { PopoverTrigger } from '../popover';
5
- import { cs } from '../utils';
5
+ import { cs, ellipsisOverflow } from '../utils';
6
6
  import { useSelectContext } from './context';
7
7
  /**
8
8
  * Displays a custom button component, which opens a popover on click.
@@ -32,6 +32,6 @@ export const SelectButton = vui((props, ref) => {
32
32
  hoverBorderColor: 'red.80'
33
33
  }
34
34
  : {};
35
- return (React.createElement(PopoverTrigger, { as: LineButton, bg: "white", className: cs('vui-selectButton', className), colorScheme: "prussian", disabled: disabled, focusRing: 2, fontWeight: "regular", iconRight: React.createElement(Button.Icon, { color: iconColor, ml: "auto", name: "falAngleDown" }), isFullWidth: true, px: 1, ref: ref, text: React.createElement(Button.Text, { color: textColor }, text), userSelect: "text", ...styles.button, ...readOnlyProps, ...isInvalidProps, ...rest }));
35
+ return (React.createElement(PopoverTrigger, { as: LineButton, bg: "white", className: cs('vui-selectButton', className), colorScheme: "prussian", disabled: disabled, focusRing: 2, fontWeight: "regular", iconRight: React.createElement(Button.Icon, { color: iconColor, ml: "auto", name: "falAngleDown" }), isFullWidth: true, px: 1, ref: ref, text: React.createElement(Button.Text, { color: textColor, ...ellipsisOverflow }, text), userSelect: "text", ...styles.button, ...readOnlyProps, ...isInvalidProps, ...rest }));
36
36
  });
37
37
  export default SelectButton;
@@ -1 +1 @@
1
- {"version":3,"file":"selectOption.d.ts","sourceRoot":"","sources":["../../../src/select/selectOption.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElD;;;;GAIG;AACH,eAAO,MAAM,YAAY,yDA6CvB,CAAA;AAEF,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"selectOption.d.ts","sourceRoot":"","sources":["../../../src/select/selectOption.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElD;;;;GAIG;AACH,eAAO,MAAM,YAAY,yDA+CvB,CAAA;AAEF,eAAe,YAAY,CAAA"}
@@ -3,7 +3,7 @@ import { Checkbox } from '../checkbox';
3
3
  import { useStyleConfig, vui } from '../core';
4
4
  import { List, ListItem } from '../list';
5
5
  import { usePopoverContext } from '../popover';
6
- import { cs, useCallbackRef } from '../utils';
6
+ import { cs, ellipsisOverflow, useCallbackRef } from '../utils';
7
7
  import { useSelectContext } from './context';
8
8
  /**
9
9
  * Displays a select option as a list item. By default, closes popover when option is selected.
@@ -11,7 +11,7 @@ import { useSelectContext } from './context';
11
11
  * 'onChange' is triggered with a modified click event, which adds 'value' and 'name' properties.
12
12
  */
13
13
  export const SelectOption = vui((props, ref) => {
14
- const { children, className, disabled, onClick: onClickProp, value: valueProp, ...rest } = props;
14
+ const { children, className, disabled, title, onClick: onClickProp, value: valueProp, ...rest } = props;
15
15
  const { instance } = usePopoverContext() ?? {};
16
16
  const { isMultiple, name, onChange, value } = useSelectContext() ?? {};
17
17
  const styles = useStyleConfig('Select', useSelectContext());
@@ -29,7 +29,7 @@ export const SelectOption = vui((props, ref) => {
29
29
  onChange?.(clonedEvent);
30
30
  !isMultiple && instance?.hide();
31
31
  });
32
- return (React.createElement(ListItem, { className: cs('vui-selectOption', className), disabled: disabled, isInteractive: true, isSelected: isSelected, onClick: onClick, ref: ref, value: valueProp, ...styles.item, ...rest }, children ??
32
+ return (React.createElement(ListItem, { className: cs('vui-selectOption', className), disabled: disabled, isInteractive: true, isSelected: isSelected, onClick: onClick, ref: ref, title: title, value: valueProp, ...styles.item, ...rest, ...ellipsisOverflow }, children ??
33
33
  (isMultiple && (React.createElement(React.Fragment, null,
34
34
  React.createElement(Checkbox, { checked: isSelected, disabled: disabled, mr: 1 }),
35
35
  React.createElement(List.Text, null, props.text))))));
@@ -1,5 +1,12 @@
1
+ import { Property } from 'csstype';
1
2
  /** Concatenates individual className arguments and returns a single string. */
2
3
  export declare function cs(...classNames: any[]): string;
3
4
  /** Converts hex color value to rgb with optional alpha property. */
4
5
  export declare function hexToRGBA(hex: string, alpha?: number): string;
6
+ /** Styling to add ellipsis for long texts. */
7
+ export declare const ellipsisOverflow: {
8
+ overflow: string;
9
+ textOverflow: string;
10
+ whiteSpace: Property.WhiteSpace;
11
+ };
5
12
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/utils/styles.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,wBAAgB,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,EAAE,UAEtC;AAED,oEAAoE;AACpE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,UAuBpD"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/utils/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,+EAA+E;AAC/E,wBAAgB,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,EAAE,UAEtC;AAED,oEAAoE;AACpE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,UAgBpD;AAED,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB;;;;CAI5B,CAAA"}
@@ -5,22 +5,21 @@ export function cs(...classNames) {
5
5
  /** Converts hex color value to rgb with optional alpha property. */
6
6
  export function hexToRGBA(hex, alpha) {
7
7
  let hexStr = hex;
8
- if (hexStr.charAt(0) === '#') {
8
+ if (hexStr.charAt(0) === '#')
9
9
  hexStr = hexStr.slice(1);
10
- }
11
- if (hexStr.length < 4) {
10
+ if (hexStr.length < 4)
12
11
  hexStr = hexStr
13
12
  .split('')
14
13
  .map(char => char + char)
15
14
  .join('');
16
- }
17
15
  const r = parseInt(hexStr.slice(0, 2), 16);
18
16
  const g = parseInt(hexStr.slice(2, 4), 16);
19
17
  const b = parseInt(hexStr.slice(4, 6), 16);
20
- if (alpha !== undefined) {
21
- return `rgba(${r}, ${g}, ${b}, ${alpha})`;
22
- }
23
- else {
24
- return `rgb(${r}, ${g}, ${b})`;
25
- }
18
+ return alpha !== undefined ? `rgba(${r}, ${g}, ${b}, ${alpha})` : `rgb(${r}, ${g}, ${b})`;
26
19
  }
20
+ /** Styling to add ellipsis for long texts. */
21
+ export const ellipsisOverflow = {
22
+ overflow: 'hidden',
23
+ textOverflow: 'ellipsis',
24
+ whiteSpace: 'nowrap'
25
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veracity/vui",
3
- "version": "1.5.0-beta.0",
3
+ "version": "1.5.0-rc.0",
4
4
  "description": "Veracity UI is a React component library crafted for use within Veracity applications and pages. Based on Styled Components and @xstyled.",
5
5
  "module": "./dist/esm/index.js",
6
6
  "main": "./dist/cjs/index.js",
@@ -28,7 +28,7 @@ export type AccordionItemProps = ListItemProps & {
28
28
  // Collapsed state
29
29
  collapsed?: boolean
30
30
  // Title
31
- title?: string
31
+ title?: string | ReactNode
32
32
  // Collapse change state
33
33
  onToggle?: (event: AccordionOnToggleEvent) => void
34
34
  }
@@ -42,7 +42,7 @@ export const AccordionItem = (props: AccordionItemProps) => {
42
42
  py={2}
43
43
  w="100%"
44
44
  >
45
- <Box fontWeight="500 ">{title}</Box>
45
+ <Box fontWeight={typeof title === 'string' ? '500' : 'inherit'}>{title}</Box>
46
46
  <Box>
47
47
  <AccordionItemArrow collapsed={collapsedInternal} />
48
48
  </Box>
@@ -41,6 +41,10 @@ export const ButtonGroupBase = styled.divBox<{ colorScheme?: string; innerBorder
41
41
  border-color: ${p => th.color(p.innerBorderColor)};
42
42
  }
43
43
 
44
+ > *:disabled {
45
+ border-color: disabled.border;
46
+ }
47
+
44
48
  //
45
49
  > .${activeClassName} {
46
50
  background-color: ${p => th.color(`${p.colorScheme}.${activeItemShade}`)};
@@ -1,5 +1,9 @@
1
1
  import { InputStateMapping } from './input.types'
2
2
 
3
+ export const greyLightColor = 'grey.10'
4
+ export const greyColor = 'grey.80'
5
+ export const redColor = 'red.80'
6
+
3
7
  export const inputStateMapping: InputStateMapping = {
4
8
  error: {
5
9
  colorScheme: 'red',
@@ -0,0 +1,36 @@
1
+ import React from 'react'
2
+
3
+ import { useStyleConfig, vui } from '../core'
4
+ import Icon from '../icon'
5
+ import P from '../p'
6
+ import { cs } from '../utils'
7
+ import { greyColor, redColor } from './consts'
8
+ import { useInputContext } from './context'
9
+ import { HelpTextProps } from './input.types'
10
+
11
+ /** Displaying help text bellow an input.. */
12
+ export const HelpText = vui<'div', HelpTextProps>((props, ref) => {
13
+ const { className, children, isError, ...rest } = props
14
+ const inputProps = useInputContext()
15
+ const mergedProps = { ...inputProps, ...props }
16
+ const styles = useStyleConfig('Input', mergedProps)
17
+
18
+ const color = isError ? redColor : greyColor
19
+
20
+ return (
21
+ <P
22
+ className={cs('vui-inputHelpText', className)}
23
+ color={color}
24
+ display="flex"
25
+ py={1}
26
+ ref={ref}
27
+ {...styles.helpText}
28
+ {...rest}
29
+ >
30
+ {isError && <Icon mr={1} name="falExclamationTriangle" pathFill={redColor} size="sm" />}
31
+ {children}
32
+ </P>
33
+ )
34
+ })
35
+
36
+ export default HelpText
@@ -3,9 +3,10 @@ import React, { useMemo, useState } from 'react'
3
3
  import { styled, useStyleConfig, vui, VuiComponent } from '../core'
4
4
  import { T } from '../t'
5
5
  import { ChangeEvent, cs, filterUndefined, isString } from '../utils'
6
- import { inputStateMapping } from './consts'
6
+ import { greyColor, greyLightColor, inputStateMapping } from './consts'
7
7
  import { InputProvider } from './context'
8
8
  import { getInitialCount } from './helpers'
9
+ import HelpText from './helpText'
9
10
  import { InputProps } from './input.types'
10
11
  import InputIcon from './inputIcon'
11
12
  import InputInput from './inputInput'
@@ -44,6 +45,7 @@ export const Input = vui<'div', InputProps>((props, ref) => {
44
45
  colorScheme,
45
46
  defaultValue,
46
47
  disabled,
48
+ errorText,
47
49
  iconLeft,
48
50
  iconRight,
49
51
  id,
@@ -53,6 +55,7 @@ export const Input = vui<'div', InputProps>((props, ref) => {
53
55
  isInvalid,
54
56
  itemLeft,
55
57
  itemRight,
58
+ helpText,
56
59
  max,
57
60
  maxLength,
58
61
  min,
@@ -74,6 +77,7 @@ export const Input = vui<'div', InputProps>((props, ref) => {
74
77
  variant,
75
78
  ...rest
76
79
  } = props
80
+
77
81
  const states = { ...inputStateMapping, ...stateMapping }
78
82
  const computedColorScheme = filterUndefined({
79
83
  colorScheme: colorScheme ?? (isInvalid ? 'red' : undefined) ?? states[state]?.colorScheme
@@ -93,7 +97,7 @@ export const Input = vui<'div', InputProps>((props, ref) => {
93
97
 
94
98
  const aliasedProps = filterUndefined({
95
99
  'aria-disabled': disabled,
96
- bg: readOnly ? 'grey.10' : undefined,
100
+ bg: readOnly ? greyLightColor : undefined,
97
101
  focusWithinBorderColor: !readOnly ? 'transparent' : undefined,
98
102
  focusWithinRingColor: readOnly ? 'transparent' : undefined
99
103
  })
@@ -102,9 +106,7 @@ export const Input = vui<'div', InputProps>((props, ref) => {
102
106
  <InputProvider value={context}>
103
107
  <InputBase className={cs('vui-input', className)} ref={ref} {...styles.container} {...aliasedProps} {...rest}>
104
108
  {itemLeft}
105
-
106
109
  {isString(iconLeft) ? <InputIcon ml={1} name={iconLeft} /> : iconLeft}
107
-
108
110
  {children ?? input ?? (
109
111
  <InputInput
110
112
  ref={inputRef}
@@ -132,27 +134,34 @@ export const Input = vui<'div', InputProps>((props, ref) => {
132
134
  {...inputProps}
133
135
  />
134
136
  )}
135
-
136
137
  {isString(iconRight) ? <InputIcon mr={1} name={iconRight} /> : iconRight}
137
-
138
138
  {itemRight}
139
-
140
139
  {state && <InputIcon mr={1} {...states[state]?.iconProps} />}
141
-
142
140
  {showCount && (
143
- <T className="vui-inputCount" color="grey.80" position="absolute" right={0} size="sm" top="calc(100% + 1px)">
141
+ <T
142
+ className="vui-inputCount"
143
+ color={greyColor}
144
+ position="absolute"
145
+ right={0}
146
+ size="sm"
147
+ top="calc(100% + 1px)"
148
+ >
144
149
  {count} / {maxLength}
145
150
  </T>
146
151
  )}
147
152
  </InputBase>
153
+ {!!helpText && <HelpText>{helpText}</HelpText>}
154
+ {!!errorText && <HelpText isError>{errorText}</HelpText>}
148
155
  </InputProvider>
149
156
  )
150
157
  }) as VuiComponent<'div', InputProps> & {
151
158
  Icon: typeof InputIcon
152
159
  Input: typeof InputInput
160
+ HelpText: typeof HelpText
153
161
  }
154
162
 
155
163
  Input.Icon = InputIcon
156
164
  Input.Input = InputInput
165
+ Input.HelpText = HelpText
157
166
 
158
167
  export default Input
@@ -1,4 +1,7 @@
1
+ import React from 'react'
2
+
1
3
  import { IconProp, IconProps } from '../icon'
4
+ import { PProps } from '../p'
2
5
  import { SystemProps } from '../system'
3
6
  import { ThemingProps } from '../theme'
4
7
  import { ChangeEventHandler, FocusEventHandler, PropsOf } from '../utils'
@@ -17,6 +20,8 @@ export type InputProps = SystemProps &
17
20
  defaultValue?: number | string
18
21
  /** Passed to the inner input. */
19
22
  disabled?: boolean
23
+ /** Socket displaying error text bellow an input. */
24
+ errorText?: string | React.ReactNode
20
25
  /** Socket displaying an icon on the left. */
21
26
  iconLeft?: IconProp | JSX.Element
22
27
  /** Socket displaying an icon on the right. */
@@ -33,6 +38,8 @@ export type InputProps = SystemProps &
33
38
  itemLeft?: React.ReactNode
34
39
  /** Socket displaying a custom element on the right. */
35
40
  itemRight?: React.ReactNode
41
+ /** Socket displaying help text bellow an input. */
42
+ helpText?: React.ReactNode | string
36
43
  /** Passed to the inner input. */
37
44
  max?: number | string
38
45
  /** Passed to the inner input. */
@@ -69,6 +76,10 @@ export type InputProps = SystemProps &
69
76
  value?: number | string
70
77
  }
71
78
 
79
+ export type HelpTextProps = PProps & {
80
+ isError?: boolean
81
+ }
82
+
72
83
  export type InputState = 'default' | 'error' | 'loading' | 'success'
73
84
 
74
85
  export type InputStateMapping = Record<
@@ -2,7 +2,7 @@ import React from 'react'
2
2
 
3
3
  import { useStyleConfig, vui } from '../core'
4
4
  import T, { TProps } from '../t'
5
- import { cs } from '../utils'
5
+ import { cs, ellipsisOverflow } from '../utils'
6
6
  import { useListContext } from './context'
7
7
 
8
8
  /** Displays text within the ListItem. */
@@ -10,7 +10,16 @@ export const ListText = vui<'span', TProps>((props, ref) => {
10
10
  const { className, ...rest } = props
11
11
  const styles = useStyleConfig('List', useListContext())
12
12
 
13
- return <T className={cs('vui-listText', className)} fontSize="inherit" ref={ref} {...styles.text} {...rest} />
13
+ return (
14
+ <T
15
+ className={cs('vui-listText', className)}
16
+ fontSize="inherit"
17
+ ref={ref}
18
+ {...ellipsisOverflow}
19
+ {...styles.text}
20
+ {...rest}
21
+ />
22
+ )
14
23
  })
15
24
 
16
25
  export default ListText
@@ -60,7 +60,8 @@ export function Select(props: SelectProps) {
60
60
  {selectButton ?? <SelectButton />}
61
61
  <SelectContent>
62
62
  <SelectGroup>
63
- {children ?? options?.map?.(option => <SelectOption key={option.value} {...option} />)}
63
+ {children ??
64
+ options?.map?.(option => <SelectOption key={option.value} title={option.text} {...option} />)}
64
65
  </SelectGroup>
65
66
  </SelectContent>
66
67
  </>
@@ -50,6 +50,8 @@ export type SelectOptionData = {
50
50
  export type SelectOptionProps = ListItemProps & {
51
51
  /** Currently selected value. Can be a string/number or array of those when using 'isMultiple'. */
52
52
  value?: SelectValue
53
+ /** Hover title text. */
54
+ title?: string
53
55
  }
54
56
 
55
57
  export type SelectValue = number | string
@@ -3,7 +3,7 @@ import React from 'react'
3
3
  import Button, { LineButton } from '../button'
4
4
  import { useStyleConfig, vui } from '../core'
5
5
  import { PopoverTrigger } from '../popover'
6
- import { cs } from '../utils'
6
+ import { cs, ellipsisOverflow } from '../utils'
7
7
  import { useSelectContext } from './context'
8
8
  import { SelectButtonProps } from './select.types'
9
9
 
@@ -52,7 +52,11 @@ export const SelectButton = vui<'button', SelectButtonProps>((props, ref) => {
52
52
  isFullWidth
53
53
  px={1}
54
54
  ref={ref}
55
- text={<Button.Text color={textColor}>{text}</Button.Text>}
55
+ text={
56
+ <Button.Text color={textColor} {...ellipsisOverflow}>
57
+ {text}
58
+ </Button.Text>
59
+ }
56
60
  userSelect="text"
57
61
  {...styles.button}
58
62
  {...readOnlyProps}
@@ -4,7 +4,7 @@ import { Checkbox } from '../checkbox'
4
4
  import { useStyleConfig, vui } from '../core'
5
5
  import { List, ListItem } from '../list'
6
6
  import { usePopoverContext } from '../popover'
7
- import { cs, MouseEvent, useCallbackRef } from '../utils'
7
+ import { cs, ellipsisOverflow, MouseEvent, useCallbackRef } from '../utils'
8
8
  import { useSelectContext } from './context'
9
9
  import { SelectOptionProps } from './select.types'
10
10
 
@@ -14,7 +14,7 @@ import { SelectOptionProps } from './select.types'
14
14
  * 'onChange' is triggered with a modified click event, which adds 'value' and 'name' properties.
15
15
  */
16
16
  export const SelectOption = vui<'li', SelectOptionProps>((props, ref) => {
17
- const { children, className, disabled, onClick: onClickProp, value: valueProp, ...rest } = props
17
+ const { children, className, disabled, title, onClick: onClickProp, value: valueProp, ...rest } = props
18
18
  const { instance } = usePopoverContext() ?? {}
19
19
  const { isMultiple, name, onChange, value } = useSelectContext() ?? {}
20
20
  const styles = useStyleConfig('Select', useSelectContext())
@@ -45,9 +45,11 @@ export const SelectOption = vui<'li', SelectOptionProps>((props, ref) => {
45
45
  isSelected={isSelected}
46
46
  onClick={onClick}
47
47
  ref={ref}
48
+ title={title}
48
49
  value={valueProp}
49
50
  {...styles.item}
50
51
  {...rest}
52
+ {...ellipsisOverflow}
51
53
  >
52
54
  {children ??
53
55
  (isMultiple && (
@@ -1,3 +1,5 @@
1
+ import { Property } from 'csstype'
2
+
1
3
  /** Concatenates individual className arguments and returns a single string. */
2
4
  export function cs(...classNames: any[]) {
3
5
  return classNames.filter(Boolean).join(' ')
@@ -7,24 +9,24 @@ export function cs(...classNames: any[]) {
7
9
  export function hexToRGBA(hex: string, alpha?: number) {
8
10
  let hexStr = hex
9
11
 
10
- if (hexStr.charAt(0) === '#') {
11
- hexStr = hexStr.slice(1)
12
- }
12
+ if (hexStr.charAt(0) === '#') hexStr = hexStr.slice(1)
13
13
 
14
- if (hexStr.length < 4) {
14
+ if (hexStr.length < 4)
15
15
  hexStr = hexStr
16
16
  .split('')
17
17
  .map(char => char + char)
18
18
  .join('')
19
- }
20
19
 
21
20
  const r = parseInt(hexStr.slice(0, 2), 16)
22
21
  const g = parseInt(hexStr.slice(2, 4), 16)
23
22
  const b = parseInt(hexStr.slice(4, 6), 16)
24
23
 
25
- if (alpha !== undefined) {
26
- return `rgba(${r}, ${g}, ${b}, ${alpha})`
27
- } else {
28
- return `rgb(${r}, ${g}, ${b})`
29
- }
24
+ return alpha !== undefined ? `rgba(${r}, ${g}, ${b}, ${alpha})` : `rgb(${r}, ${g}, ${b})`
25
+ }
26
+
27
+ /** Styling to add ellipsis for long texts. */
28
+ export const ellipsisOverflow = {
29
+ overflow: 'hidden',
30
+ textOverflow: 'ellipsis',
31
+ whiteSpace: 'nowrap' as Property.WhiteSpace
30
32
  }