@invoicebox/ui 0.1.0-alpha.220 → 0.1.0-alpha.222

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.
@@ -4,7 +4,7 @@ type TOption = {
4
4
  value: string;
5
5
  entity?: any;
6
6
  };
7
- type TFieldProps = Pick<InputHTMLAttributes<HTMLInputElement>, 'name' | 'onBlur' | 'onFocus' | 'autoFocus'> & {
7
+ type TFieldProps = Pick<InputHTMLAttributes<HTMLInputElement>, 'name' | 'onBlur' | 'onFocus' | 'autoFocus' | 'readOnly'> & {
8
8
  value: string;
9
9
  onChange: (value: string, option?: TOption) => void;
10
10
  };
@@ -26,7 +26,7 @@ type TControlProps = {
26
26
  required?: boolean;
27
27
  };
28
28
  export type TProps = TFieldProps & TControlProps;
29
- export declare const Autocomplete: React.ForwardRefExoticComponent<Pick<React.InputHTMLAttributes<HTMLInputElement>, "name" | "autoFocus" | "onFocus" | "onBlur"> & {
29
+ export declare const Autocomplete: React.ForwardRefExoticComponent<Pick<React.InputHTMLAttributes<HTMLInputElement>, "name" | "readOnly" | "autoFocus" | "onFocus" | "onBlur"> & {
30
30
  value: string;
31
31
  onChange: (value: string, option?: TOption) => void;
32
32
  } & TControlProps & React.RefAttributes<HTMLInputElement>>;
@@ -56,7 +56,8 @@ var Autocomplete = exports.Autocomplete = /*#__PURE__*/(0, _react.forwardRef)(fu
56
56
  size = _ref$size === void 0 ? 'M' : _ref$size,
57
57
  autoFocus = _ref.autoFocus,
58
58
  _ref$required = _ref.required,
59
- required = _ref$required === void 0 ? false : _ref$required;
59
+ required = _ref$required === void 0 ? false : _ref$required,
60
+ readOnly = _ref.readOnly;
60
61
  var isMobile = (0, _useMedia.useMobile)();
61
62
  var _useState = (0, _react.useState)(false),
62
63
  _useState2 = _slicedToArray(_useState, 2),
@@ -110,7 +111,8 @@ var Autocomplete = exports.Autocomplete = /*#__PURE__*/(0, _react.forwardRef)(fu
110
111
  paddingLeft: inputPaddingLeft,
111
112
  maxLength: inputMaxLength,
112
113
  isOnlyNumbers: isInputOnlyNumbers,
113
- autoFocus: autoFocus
114
+ autoFocus: autoFocus,
115
+ readOnly: readOnly
114
116
  }, _constants.SIZE_PARAMS_MAP[size])))), /*#__PURE__*/_react["default"].createElement(_Dropdown.Dropdown, {
115
117
  isOpen: isOpen && (!!options.length || !!isLoading),
116
118
  isAutoPosition: true,
@@ -57,7 +57,8 @@ var Default = exports.Default = {
57
57
  disabled: false,
58
58
  isCustomOptionRender: false,
59
59
  children: 'children',
60
- inputPaddingLeft: 60
60
+ inputPaddingLeft: 60,
61
+ readOnly: false
61
62
  },
62
63
  render: Component
63
64
  };
@@ -12,6 +12,7 @@ export type TProps = Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'onBlur'
12
12
  isOnlyNumbers?: boolean;
13
13
  className?: never;
14
14
  element?: 'input' | 'textarea';
15
+ renderedValue?: React.ReactNode;
15
16
  };
16
17
  export declare const PureInput: React.ForwardRefExoticComponent<Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "onFocus" | "onBlur" | "onChange"> & React.InputHTMLAttributes<HTMLInputElement> & Partial<Pick<TInputWithTypographyProps, "variant">> & {
17
18
  paddingLeft?: number | undefined;
@@ -25,4 +26,5 @@ export declare const PureInput: React.ForwardRefExoticComponent<Omit<React.Texta
25
26
  isOnlyNumbers?: boolean | undefined;
26
27
  className?: undefined;
27
28
  element?: "input" | "textarea" | undefined;
29
+ renderedValue?: React.ReactNode;
28
30
  } & React.RefAttributes<HTMLInputElement>>;
@@ -8,7 +8,7 @@ exports.PureInput = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var S = _interopRequireWildcard(require("./styles"));
10
10
  var _palette = require("../../../palette");
11
- var _excluded = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "borderRadius", "hasError", "inFocus", "hasBorder", "isOnlyNumbers", "className", "onChange", "element", "variant"];
11
+ var _excluded = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "borderRadius", "hasError", "inFocus", "hasBorder", "isOnlyNumbers", "className", "onChange", "element", "variant", "renderedValue"];
12
12
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
13
13
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
14
14
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
@@ -39,6 +39,7 @@ var PureInput = exports.PureInput = /*#__PURE__*/_react["default"].forwardRef(fu
39
39
  element = _ref$element === void 0 ? 'input' : _ref$element,
40
40
  _ref$variant = _ref.variant,
41
41
  variant = _ref$variant === void 0 ? 'bodyMRegular' : _ref$variant,
42
+ renderedValue = _ref.renderedValue,
42
43
  rest = _objectWithoutProperties(_ref, _excluded);
43
44
  var palette = (0, _palette.useComponentPalette)('pureInput');
44
45
  var handleChange = (0, _react.useCallback)(function (event) {
@@ -51,7 +52,7 @@ var PureInput = exports.PureInput = /*#__PURE__*/_react["default"].forwardRef(fu
51
52
  return /*#__PURE__*/_react["default"].createElement(S.Wrapper, _extends({
52
53
  ref: ref,
53
54
  variant: variant,
54
- element: element,
55
+ element: renderedValue ? 'div' : element,
55
56
  $paddingLeft: paddingLeft,
56
57
  $paddingRight: paddingRight,
57
58
  $paddingTop: paddingTop,
@@ -62,6 +63,6 @@ var PureInput = exports.PureInput = /*#__PURE__*/_react["default"].forwardRef(fu
62
63
  $palette: palette,
63
64
  $borderRadius: borderRadius,
64
65
  onChange: handleChange
65
- }, rest));
66
+ }, rest), renderedValue);
66
67
  });
67
68
  PureInput.displayName = 'PureInput';
@@ -6,8 +6,10 @@ import { TSizes } from '../../../constants';
6
6
  export type TProps = Pick<TInputLabelProps, 'inFocus' | 'label' | 'required'> & Pick<TPureInputProps, 'hasError' | 'placeholder' | 'name' | 'onFocus' | 'onBlur' | 'value' | 'onClick'> & Pick<TArrowProps, 'isOpen'> & {
7
7
  onReset?: () => void;
8
8
  size?: TSizes;
9
+ renderedValue?: React.ReactNode;
9
10
  };
10
11
  export declare const Input: React.ForwardRefExoticComponent<Pick<TInputLabelProps, "required" | "label" | "inFocus"> & Pick<TPureInputProps, "name" | "value" | "placeholder" | "onFocus" | "onBlur" | "onClick" | "hasError"> & Pick<TArrowProps, "isOpen"> & {
11
12
  onReset?: (() => void) | undefined;
12
13
  size?: TSizes | undefined;
14
+ renderedValue?: React.ReactNode;
13
15
  } & React.RefAttributes<HTMLInputElement>>;
@@ -22,6 +22,7 @@ var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
22
22
  onFocus = _ref.onFocus,
23
23
  onBlur = _ref.onBlur,
24
24
  value = _ref.value,
25
+ renderedValue = _ref.renderedValue,
25
26
  name = _ref.name,
26
27
  label = _ref.label,
27
28
  isOpen = _ref.isOpen,
@@ -44,6 +45,7 @@ var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
44
45
  onFocus: onFocus,
45
46
  onBlur: onBlur,
46
47
  value: value,
48
+ renderedValue: renderedValue,
47
49
  readOnly: true,
48
50
  paddingRight: 52,
49
51
  onClick: onClick
@@ -19,6 +19,7 @@ export type TProps<TValue> = Pick<TInputProps, 'label' | 'hasError' | 'placehold
19
19
  isResetButtonEnabled?: boolean;
20
20
  renderOption?: (entity?: any) => ReactNode;
21
21
  renderGroup?: (entity?: any) => ReactNode;
22
+ renderValue?: (entity?: any) => ReactNode;
22
23
  dropdownHeader?: ReactNode;
23
24
  scrollbarHeader?: ReactNode;
24
25
  isDrawerOptions?: boolean;
@@ -27,4 +28,4 @@ export type TProps<TValue> = Pick<TInputProps, 'label' | 'hasError' | 'placehold
27
28
  isLoading?: boolean;
28
29
  required?: boolean;
29
30
  };
30
- export declare const Select: <TValue extends string | number>({ label, hasError, placeholder, name, value, onChange, options, groups, isResetButtonEnabled, size, renderOption, dropdownHeader, isDrawerOptions, renderGroup, scrollbarMaxHeight, scrollbarHeader, emptyOptionsLabel, isLoading, onBlur, required, }: TProps<TValue>) => import("react/jsx-runtime").JSX.Element;
31
+ export declare const Select: <TValue extends string | number>({ label, hasError, placeholder, name, value, renderValue, onChange, options, groups, isResetButtonEnabled, size, renderOption, dropdownHeader, isDrawerOptions, renderGroup, scrollbarMaxHeight, scrollbarHeader, emptyOptionsLabel, isLoading, onBlur, required, }: TProps<TValue>) => import("react/jsx-runtime").JSX.Element;
@@ -33,6 +33,7 @@ var Select = exports.Select = function Select(_ref) {
33
33
  placeholder = _ref.placeholder,
34
34
  name = _ref.name,
35
35
  value = _ref.value,
36
+ renderValue = _ref.renderValue,
36
37
  onChange = _ref.onChange,
37
38
  options = _ref.options,
38
39
  _ref$groups = _ref.groups,
@@ -193,6 +194,10 @@ var Select = exports.Select = function Select(_ref) {
193
194
  }
194
195
  return emptyLabel;
195
196
  };
197
+ var renderedValue = (0, _react.useMemo)(function () {
198
+ if (!renderValue || !(selectedOption !== null && selectedOption !== void 0 && selectedOption.entity)) return;
199
+ return renderValue(selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.entity);
200
+ }, [renderValue, selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.entity]);
196
201
  return /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
197
202
  ref: isDrawerOptions ? undefined : wrapperRef
198
203
  }, /*#__PURE__*/_react["default"].createElement(S.InputWrapper, null, /*#__PURE__*/_react["default"].createElement(_Input.Input, {
@@ -204,11 +209,12 @@ var Select = exports.Select = function Select(_ref) {
204
209
  onFocus: isDrawerOptions ? undefined : handleFocus,
205
210
  onBlur: isDrawerOptions ? undefined : handleBlur,
206
211
  value: (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) || '',
212
+ renderedValue: renderedValue,
207
213
  name: name,
208
214
  isOpen: isOpen,
209
215
  onReset: isResetButtonEnabled ? handleReset : undefined,
210
216
  size: size,
211
- onClick: isDrawerOptions ? handleInputClick : undefined,
217
+ onClick: isDrawerOptions || !!renderedValue ? handleInputClick : undefined,
212
218
  required: required
213
219
  })), isDrawerOptions ? /*#__PURE__*/_react["default"].createElement(_Drawer.Drawer, {
214
220
  onClose: handleHide,
@@ -9,3 +9,4 @@ export declare const RenderOption: StoryObj<TProps<string>>;
9
9
  export declare const WithGroups: StoryObj<TProps<string>>;
10
10
  export declare const RenderOptionWithGroups: StoryObj<TProps<string>>;
11
11
  export declare const WithCustomGroups: StoryObj<TProps<string>>;
12
+ export declare const WithRenderedValue: StoryObj<TProps<string>>;
@@ -4,7 +4,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports["default"] = exports.WithGroups = exports.WithDropdownHeader = exports.WithCustomGroups = exports.RenderOptionWithGroups = exports.RenderOption = exports.EmptyOptions = exports.Default = void 0;
7
+ exports["default"] = exports.WithRenderedValue = exports.WithGroups = exports.WithDropdownHeader = exports.WithCustomGroups = exports.RenderOptionWithGroups = exports.RenderOption = exports.EmptyOptions = exports.Default = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _addonActions = require("@storybook/addon-actions");
10
10
  var _ = require(".");
@@ -55,6 +55,7 @@ var COMMON_ARGS = {
55
55
  value: 'option-1',
56
56
  groupId: '1',
57
57
  entity: {
58
+ id: 1,
58
59
  name: 'name option 1'
59
60
  }
60
61
  }, {
@@ -62,6 +63,7 @@ var COMMON_ARGS = {
62
63
  value: 'option-2',
63
64
  groupId: '1',
64
65
  entity: {
66
+ id: 2,
65
67
  name: 'name option 2'
66
68
  }
67
69
  }, {
@@ -69,6 +71,7 @@ var COMMON_ARGS = {
69
71
  value: 'option-3',
70
72
  groupId: '2',
71
73
  entity: {
74
+ id: 3,
72
75
  name: 'name option 3'
73
76
  }
74
77
  }, {
@@ -76,61 +79,98 @@ var COMMON_ARGS = {
76
79
  value: 'option-4',
77
80
  groupId: '2',
78
81
  entity: {
82
+ id: 4,
79
83
  name: 'name option 4'
80
84
  }
81
85
  }, {
82
86
  label: 'Option 5',
83
87
  value: 'option-5',
84
88
  entity: {
89
+ id: 5,
85
90
  name: 'name option 5'
86
91
  }
87
92
  }, {
88
93
  label: 'Option 6',
89
94
  value: 'option-6',
90
95
  entity: {
96
+ id: 6,
91
97
  name: 'name option 6'
92
98
  }
93
99
  }, {
94
100
  label: 'Option 7',
95
101
  value: 'option-7',
96
102
  entity: {
103
+ id: 7,
97
104
  name: 'name option 7'
98
105
  }
99
106
  }, {
100
107
  label: 'Option 8',
101
108
  value: 'option-8',
102
109
  entity: {
110
+ id: 8,
103
111
  name: 'name option 8'
104
112
  }
105
113
  }, {
106
114
  label: 'Option 9',
107
115
  value: 'option-9',
108
116
  entity: {
117
+ id: 9,
109
118
  name: 'name option 9'
110
119
  }
111
120
  }, {
112
121
  label: 'Option 10',
113
122
  value: 'option-10',
114
123
  entity: {
124
+ id: 10,
115
125
  name: 'name option 10'
116
126
  }
117
127
  }, {
118
128
  label: 'Option 11',
119
129
  value: 'option-11',
120
130
  entity: {
131
+ id: 11,
121
132
  name: 'name option 11'
122
133
  }
123
134
  }, {
124
135
  label: 'Option 12',
125
136
  value: 'option-12',
126
137
  entity: {
138
+ id: 12,
127
139
  name: 'name option 12'
128
140
  }
129
141
  }]
130
142
  };
143
+ var COLORS_BY_ID_MAP = {
144
+ 1: 'red',
145
+ 2: 'blue',
146
+ 3: 'green',
147
+ 4: 'red',
148
+ 5: 'blue',
149
+ 6: 'green',
150
+ 7: 'red',
151
+ 8: 'blue',
152
+ 9: 'green'
153
+ };
131
154
  var renderOption = function renderOption(entity) {
132
155
  return /*#__PURE__*/_react["default"].createElement("div", null, "Hello ", entity.name, " ");
133
156
  };
157
+ var renderValue = function renderValue(entity) {
158
+ return /*#__PURE__*/_react["default"].createElement("div", {
159
+ style: {
160
+ display: 'flex',
161
+ alignItems: 'center',
162
+ gap: '10px'
163
+ }
164
+ }, /*#__PURE__*/_react["default"].createElement("div", {
165
+ style: {
166
+ width: 40,
167
+ height: 40,
168
+ backgroundColor: COLORS_BY_ID_MAP[entity.id],
169
+ borderRadius: 10,
170
+ border: '1px solid lightgrey'
171
+ }
172
+ }), "Selected color: ", entity.name, ' ');
173
+ };
134
174
  var renderGroup = function renderGroup(group) {
135
175
  return /*#__PURE__*/_react["default"].createElement("div", null, "Group name is: ", group.name, " ");
136
176
  };
@@ -200,4 +240,10 @@ var WithCustomGroups = exports.WithCustomGroups = {
200
240
  renderGroup: renderGroup
201
241
  }),
202
242
  render: Component
243
+ };
244
+ var WithRenderedValue = exports.WithRenderedValue = {
245
+ args: _objectSpread(_objectSpread({}, COMMON_ARGS), {}, {
246
+ renderValue: renderValue
247
+ }),
248
+ render: Component
203
249
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invoicebox/ui",
3
- "version": "0.1.0-alpha.220",
3
+ "version": "0.1.0-alpha.222",
4
4
  "description": "Invoicebox UI",
5
5
  "license": "Apache License 2.0",
6
6
  "scripts": {