@invoicebox/ui 0.1.0-alpha.183 → 0.1.0-alpha.185

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.
@@ -9,6 +9,7 @@ export type TOption<TValue> = {
9
9
  export type TGroup = {
10
10
  label: string;
11
11
  id: string;
12
+ entity?: unknown;
12
13
  };
13
14
  export type TProps<TValue> = Pick<TInputProps, 'label' | 'hasError' | 'placeholder' | 'name' | 'size'> & {
14
15
  value: TValue | null;
@@ -17,8 +18,9 @@ export type TProps<TValue> = Pick<TInputProps, 'label' | 'hasError' | 'placehold
17
18
  groups?: TGroup[];
18
19
  isResetButtonEnabled?: boolean;
19
20
  renderOption?: (entity?: any) => ReactNode;
21
+ renderGroup?: (entity?: any) => ReactNode;
20
22
  dropdownHeader?: ReactNode;
21
23
  isDrawerOptions?: boolean;
22
24
  scrollbarMaxHeight?: number;
23
25
  };
24
- export declare const Select: <TValue extends string | number>({ label, hasError, placeholder, name, value, onChange, options, groups, isResetButtonEnabled, size, renderOption, dropdownHeader, isDrawerOptions, scrollbarMaxHeight, }: TProps<TValue>) => import("react/jsx-runtime").JSX.Element;
26
+ export declare const Select: <TValue extends string | number>({ label, hasError, placeholder, name, value, onChange, options, groups, isResetButtonEnabled, size, renderOption, dropdownHeader, isDrawerOptions, renderGroup, scrollbarMaxHeight, }: TProps<TValue>) => import("react/jsx-runtime").JSX.Element;
@@ -42,6 +42,7 @@ var Select = exports.Select = function Select(_ref) {
42
42
  dropdownHeader = _ref.dropdownHeader,
43
43
  _ref$isDrawerOptions = _ref.isDrawerOptions,
44
44
  isDrawerOptions = _ref$isDrawerOptions === void 0 ? false : _ref$isDrawerOptions,
45
+ renderGroup = _ref.renderGroup,
45
46
  _ref$scrollbarMaxHeig = _ref.scrollbarMaxHeight,
46
47
  scrollbarMaxHeight = _ref$scrollbarMaxHeig === void 0 ? MAX_LIST_HEIGHT : _ref$scrollbarMaxHeig;
47
48
  var palette = (0, _palette.useComponentPalette)('select');
@@ -112,16 +113,39 @@ var Select = exports.Select = function Select(_ref) {
112
113
  (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.blur();
113
114
  handleShow();
114
115
  };
115
- var dropdownContent = /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
116
- maxHeight: scrollbarMaxHeight
117
- }, dropdownHeader, optionGroups.map(function (_ref2) {
116
+ var handleOptionRender = function handleOptionRender(option) {
117
+ if (renderOption) {
118
+ if (!option.entity) {
119
+ // eslint-disable-next-line no-console
120
+ console.error('option.entity not found');
121
+ return;
122
+ }
123
+ return renderOption(option.entity);
124
+ }
125
+ return /*#__PURE__*/_react["default"].createElement(S.DefaultOptionWrapper, null, " ", option.label);
126
+ };
127
+ var handleGroupRender = function handleGroupRender(group) {
128
+ if (group) {
129
+ if (renderGroup) {
130
+ if (!group.entity) {
131
+ // eslint-disable-next-line no-console
132
+ console.error('group.entity not found');
133
+ return;
134
+ }
135
+ return renderGroup(group.entity);
136
+ }
137
+ return /*#__PURE__*/_react["default"].createElement(S.Group, {
138
+ variant: "headerText"
139
+ }, group.label);
140
+ }
141
+ return null;
142
+ };
143
+ var dropdownContent = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, dropdownHeader, optionGroups.map(function (_ref2) {
118
144
  var group = _ref2.group,
119
145
  groupOptions = _ref2.options;
120
146
  return /*#__PURE__*/_react["default"].createElement(_react.Fragment, {
121
147
  key: (group === null || group === void 0 ? void 0 : group.id) || null
122
- }, !group ? null : /*#__PURE__*/_react["default"].createElement(S.Group, {
123
- variant: "headerText"
124
- }, group.label), groupOptions.map(function (option) {
148
+ }, handleGroupRender(group), groupOptions.map(function (option) {
125
149
  return /*#__PURE__*/_react["default"].createElement(S.Option, {
126
150
  key: option.value,
127
151
  $palette: palette,
@@ -130,7 +154,7 @@ var Select = exports.Select = function Select(_ref) {
130
154
  "data-value": JSON.stringify(option.value),
131
155
  "data-option-identifier": OPTION_IDENTIFIER,
132
156
  $isGrouped: !!group
133
- }, renderOption ? renderOption(option.entity) : /*#__PURE__*/_react["default"].createElement(S.DefaultOptionWrapper, null, " ", option.label));
157
+ }, handleOptionRender(option));
134
158
  }));
135
159
  }));
136
160
  return /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
@@ -153,9 +177,13 @@ var Select = exports.Select = function Select(_ref) {
153
177
  onClose: handleHide,
154
178
  isOpen: isOpen,
155
179
  isPadding: false
156
- }, /*#__PURE__*/_react["default"].createElement(S.DrawerInner, null, dropdownContent)) : /*#__PURE__*/_react["default"].createElement(_Dropdown.Dropdown, {
180
+ }, /*#__PURE__*/_react["default"].createElement(S.DrawerContent, null, /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
181
+ maxHeight: scrollbarMaxHeight
182
+ }, dropdownContent, /*#__PURE__*/_react["default"].createElement(S.DrawerBottom, null)))) : /*#__PURE__*/_react["default"].createElement(_Dropdown.Dropdown, {
157
183
  isOpen: isOpen,
158
184
  isAutoPosition: true,
159
185
  width: "100%"
160
- }, dropdownContent));
186
+ }, /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
187
+ maxHeight: scrollbarMaxHeight
188
+ }, dropdownContent)));
161
189
  };
@@ -7,3 +7,4 @@ export declare const WithDropdownHeader: StoryObj<TProps<string>>;
7
7
  export declare const RenderOption: StoryObj<TProps<string>>;
8
8
  export declare const WithGroups: StoryObj<TProps<string>>;
9
9
  export declare const RenderOptionWithGroups: StoryObj<TProps<string>>;
10
+ export declare const WithCustomGroups: 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.RenderOptionWithGroups = exports.RenderOption = exports.Default = void 0;
7
+ exports["default"] = exports.WithGroups = exports.WithDropdownHeader = exports.WithCustomGroups = exports.RenderOptionWithGroups = exports.RenderOption = exports.Default = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _addonActions = require("@storybook/addon-actions");
10
10
  var _ = require(".");
@@ -130,6 +130,9 @@ var COMMON_ARGS = {
130
130
  var renderOption = function renderOption(entity) {
131
131
  return /*#__PURE__*/_react["default"].createElement("div", null, "Hello ", entity.name, " ");
132
132
  };
133
+ var renderGroup = function renderGroup(group) {
134
+ return /*#__PURE__*/_react["default"].createElement("div", null, "Group name is: ", group.name, " ");
135
+ };
133
136
  var Default = exports.Default = {
134
137
  args: _objectSpread({}, COMMON_ARGS),
135
138
  render: Component
@@ -170,4 +173,23 @@ var RenderOptionWithGroups = exports.RenderOptionWithGroups = {
170
173
  renderOption: renderOption
171
174
  }),
172
175
  render: Component
176
+ };
177
+ var WithCustomGroups = exports.WithCustomGroups = {
178
+ args: _objectSpread(_objectSpread({}, COMMON_ARGS), {}, {
179
+ groups: [{
180
+ label: 'Group 1',
181
+ id: '1',
182
+ entity: {
183
+ name: 'name group 1'
184
+ }
185
+ }, {
186
+ label: 'Group 2',
187
+ id: '2',
188
+ entity: {
189
+ name: 'name group 2'
190
+ }
191
+ }],
192
+ renderGroup: renderGroup
193
+ }),
194
+ render: Component
173
195
  };
@@ -8,4 +8,5 @@ export declare const Option: import("styled-components/dist/types").IStyledCompo
8
8
  }>> & string & Omit<import("react").FC<import("../../common/Typography").TTypographyProps>, keyof import("react").Component<any, {}, any>>;
9
9
  export declare const Group: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("../../common/Typography").TTypographyProps & import("styled-components/dist/types").BaseObject, import("styled-components/dist/types").BaseObject>> & string & Omit<import("react").FC<import("../../common/Typography").TTypographyProps>, keyof import("react").Component<any, {}, any>>;
10
10
  export declare const DefaultOptionWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
11
- export declare const DrawerInner: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
11
+ export declare const DrawerContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
12
+ export declare const DrawerBottom: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & 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.Wrapper = exports.Option = exports.InputWrapper = exports.Group = exports.DrawerInner = exports.DefaultOptionWrapper = void 0;
7
+ exports.Wrapper = exports.Option = exports.InputWrapper = exports.Group = exports.DrawerContent = exports.DrawerBottom = exports.DefaultOptionWrapper = void 0;
8
8
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
9
  var _Typography = require("../../common/Typography");
10
10
  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); }
@@ -35,7 +35,11 @@ var DefaultOptionWrapper = exports.DefaultOptionWrapper = _styledComponents["def
35
35
  displayName: "styles__DefaultOptionWrapper",
36
36
  componentId: "sc-1x9n0z5-4"
37
37
  })(["padding:12px 20px;"]);
38
- var DrawerInner = exports.DrawerInner = _styledComponents["default"].div.withConfig({
39
- displayName: "styles__DrawerInner",
38
+ var DrawerContent = exports.DrawerContent = _styledComponents["default"].div.withConfig({
39
+ displayName: "styles__DrawerContent",
40
40
  componentId: "sc-1x9n0z5-5"
41
- })(["padding:36px 0;"]);
41
+ })(["padding-top:36px;"]);
42
+ var DrawerBottom = exports.DrawerBottom = _styledComponents["default"].div.withConfig({
43
+ displayName: "styles__DrawerBottom",
44
+ componentId: "sc-1x9n0z5-6"
45
+ })(["height:36px;"]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invoicebox/ui",
3
- "version": "0.1.0-alpha.183",
3
+ "version": "0.1.0-alpha.185",
4
4
  "description": "Invoicebox UI",
5
5
  "license": "Apache License 2.0",
6
6
  "scripts": {