@invoicebox/ui 0.1.0-alpha.314 → 0.1.0-alpha.316

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 (87) hide show
  1. package/dist/components/common/Tooltip/index.d.ts +9 -0
  2. package/dist/components/common/Tooltip/index.js +60 -0
  3. package/dist/components/common/Tooltip/index.stories.d.ts +6 -0
  4. package/dist/components/common/Tooltip/index.stories.js +43 -0
  5. package/dist/components/common/Tooltip/palette.d.ts +7 -0
  6. package/dist/components/common/Tooltip/palette.js +13 -0
  7. package/dist/components/common/Tooltip/styles.d.ts +9 -0
  8. package/dist/components/common/Tooltip/styles.js +34 -0
  9. package/dist/components/common/Typography/index.d.ts +5 -2
  10. package/dist/components/form/Autocomplete/components/Autocomplete/index.js +5 -1
  11. package/dist/components/form/Checkbox/CheckIcon.d.ts +2 -0
  12. package/dist/components/form/Checkbox/CheckIcon.js +23 -0
  13. package/dist/components/form/Checkbox/index.d.ts +11 -0
  14. package/dist/components/form/Checkbox/index.js +47 -0
  15. package/dist/components/form/Checkbox/index.stories.d.ts +8 -0
  16. package/dist/components/form/Checkbox/index.stories.js +69 -0
  17. package/dist/components/form/Checkbox/palette.d.ts +12 -0
  18. package/dist/components/form/Checkbox/palette.js +20 -0
  19. package/dist/components/form/Checkbox/styles.d.ts +13 -0
  20. package/dist/components/form/Checkbox/styles.js +71 -0
  21. package/dist/components/form/CurrencyInput/CoreCurrencyInput/index.d.ts +1 -1
  22. package/dist/components/form/CurrencyInput/CoreCurrencyInput/index.js +12 -4
  23. package/dist/components/form/DateInput/index.d.ts +1 -1
  24. package/dist/components/form/DateInput/index.js +8 -2
  25. package/dist/components/form/DateTimeInput/index.d.ts +1 -1
  26. package/dist/components/form/DateTimeInput/index.js +8 -2
  27. package/dist/components/form/InputLabel/index.d.ts +1 -0
  28. package/dist/components/form/InputLabel/index.js +4 -1
  29. package/dist/components/form/PhoneInput/index.js +6 -2
  30. package/dist/components/form/PositiveIntegerInput/index.d.ts +1 -1
  31. package/dist/components/form/PositiveIntegerInput/index.js +8 -2
  32. package/dist/components/form/PureInput/index.js +5 -2
  33. package/dist/components/form/SearchInput/index.d.ts +2 -2
  34. package/dist/components/form/SearchInput/index.js +8 -2
  35. package/dist/components/form/Select/components/Input/index.d.ts +2 -2
  36. package/dist/components/form/Select/components/Input/index.js +8 -2
  37. package/dist/components/form/Select/components/MultipleValue/index.d.ts +9 -0
  38. package/dist/components/form/Select/components/MultipleValue/index.js +129 -0
  39. package/dist/components/form/Select/components/MultipleValue/styles.d.ts +8 -0
  40. package/dist/components/form/Select/components/MultipleValue/styles.js +31 -0
  41. package/dist/components/form/Select/index.d.ts +17 -4
  42. package/dist/components/form/Select/index.js +98 -44
  43. package/dist/components/form/Select/index.stories.d.ts +3 -1
  44. package/dist/components/form/Select/index.stories.js +32 -1
  45. package/dist/components/form/Select/palette.d.ts +2 -0
  46. package/dist/components/form/Select/palette.js +3 -1
  47. package/dist/components/form/Select/styles.d.ts +4 -0
  48. package/dist/components/form/Select/styles.js +26 -10
  49. package/dist/components/form/TagsInput/index.js +4 -1
  50. package/dist/components/form/TextInput/index.js +6 -2
  51. package/dist/esm/components/common/Tooltip/index.js +51 -0
  52. package/dist/esm/components/common/Tooltip/index.stories.js +36 -0
  53. package/dist/esm/components/common/Tooltip/palette.js +7 -0
  54. package/dist/esm/components/common/Tooltip/styles.js +27 -0
  55. package/dist/esm/components/form/Autocomplete/components/Autocomplete/index.js +5 -1
  56. package/dist/esm/components/form/Checkbox/CheckIcon.js +16 -0
  57. package/dist/esm/components/form/Checkbox/index.js +38 -0
  58. package/dist/esm/components/form/Checkbox/index.stories.js +60 -0
  59. package/dist/esm/components/form/Checkbox/palette.js +13 -0
  60. package/dist/esm/components/form/Checkbox/styles.js +64 -0
  61. package/dist/esm/components/form/CurrencyInput/CoreCurrencyInput/index.js +9 -3
  62. package/dist/esm/components/form/DateInput/index.js +9 -3
  63. package/dist/esm/components/form/DateTimeInput/index.js +9 -3
  64. package/dist/esm/components/form/InputLabel/index.js +4 -1
  65. package/dist/esm/components/form/PhoneInput/index.js +7 -3
  66. package/dist/esm/components/form/PositiveIntegerInput/index.js +9 -3
  67. package/dist/esm/components/form/PureInput/index.js +6 -3
  68. package/dist/esm/components/form/SearchInput/index.js +9 -3
  69. package/dist/esm/components/form/Select/components/Input/index.js +9 -3
  70. package/dist/esm/components/form/Select/components/MultipleValue/index.js +120 -0
  71. package/dist/esm/components/form/Select/components/MultipleValue/styles.js +22 -0
  72. package/dist/esm/components/form/Select/index.js +98 -44
  73. package/dist/esm/components/form/Select/index.stories.js +31 -0
  74. package/dist/esm/components/form/Select/palette.js +3 -1
  75. package/dist/esm/components/form/Select/styles.js +25 -9
  76. package/dist/esm/components/form/TagsInput/index.js +5 -2
  77. package/dist/esm/components/form/TextInput/index.js +7 -3
  78. package/dist/esm/index.js +2 -0
  79. package/dist/esm/palette/context.js +5 -1
  80. package/dist/esm/palette/provider.js +5 -1
  81. package/dist/index.d.ts +5 -1
  82. package/dist/index.js +14 -0
  83. package/dist/palette/context.d.ts +4 -0
  84. package/dist/palette/context.js +5 -1
  85. package/dist/palette/provider.js +5 -1
  86. package/dist/palette/usePalette.d.ts +2 -0
  87. package/package.json +1 -1
@@ -1,3 +1,7 @@
1
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
4
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
1
5
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
6
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
7
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
@@ -15,39 +19,47 @@ import { useComponentPalette } from '../../../palette';
15
19
  import { useOptionGroups } from './hooks/useOptionGroups';
16
20
  import { Drawer } from '../../common/Drawer';
17
21
  import Loader from './components/Loader';
22
+ import { MultipleValue } from './components/MultipleValue';
23
+ import { Checkbox } from '../Checkbox';
18
24
  var MAX_LIST_HEIGHT = 294;
19
25
  var OPTION_IDENTIFIER = 'option-identifier';
20
- export var Select = function Select(_ref) {
21
- var label = _ref.label,
22
- hasError = _ref.hasError,
23
- placeholder = _ref.placeholder,
24
- name = _ref.name,
25
- value = _ref.value,
26
- renderValue = _ref.renderValue,
27
- onChange = _ref.onChange,
28
- options = _ref.options,
29
- _ref$groups = _ref.groups,
30
- groups = _ref$groups === void 0 ? [] : _ref$groups,
31
- _ref$isResetButtonEna = _ref.isResetButtonEnabled,
32
- isResetButtonEnabled = _ref$isResetButtonEna === void 0 ? false : _ref$isResetButtonEna,
33
- size = _ref.size,
34
- renderOption = _ref.renderOption,
35
- dropdownHeader = _ref.dropdownHeader,
36
- _ref$isDrawerOptions = _ref.isDrawerOptions,
37
- isDrawerOptions = _ref$isDrawerOptions === void 0 ? false : _ref$isDrawerOptions,
38
- renderGroup = _ref.renderGroup,
39
- _ref$scrollbarMaxHeig = _ref.scrollbarMaxHeight,
40
- scrollbarMaxHeight = _ref$scrollbarMaxHeig === void 0 ? MAX_LIST_HEIGHT : _ref$scrollbarMaxHeig,
41
- scrollbarHeader = _ref.scrollbarHeader,
42
- emptyOptionsLabel = _ref.emptyOptionsLabel,
43
- isLoading = _ref.isLoading,
44
- onBlur = _ref.onBlur,
45
- required = _ref.required,
46
- _ref$usePadding = _ref.usePadding,
47
- usePadding = _ref$usePadding === void 0 ? false : _ref$usePadding,
48
- dropdownWidth = _ref.dropdownWidth,
49
- _ref$useModernStyles = _ref.useModernStyles,
50
- useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles;
26
+ export var Select = function Select(props) {
27
+ var _collapseTags;
28
+ var label = props.label,
29
+ hasError = props.hasError,
30
+ placeholder = props.placeholder,
31
+ name = props.name,
32
+ value = props.value,
33
+ renderValue = props.renderValue,
34
+ onChange = props.onChange,
35
+ options = props.options,
36
+ _props$groups = props.groups,
37
+ groups = _props$groups === void 0 ? [] : _props$groups,
38
+ _props$isResetButtonE = props.isResetButtonEnabled,
39
+ isResetButtonEnabled = _props$isResetButtonE === void 0 ? false : _props$isResetButtonE,
40
+ size = props.size,
41
+ renderOption = props.renderOption,
42
+ dropdownHeader = props.dropdownHeader,
43
+ _props$isDrawerOption = props.isDrawerOptions,
44
+ isDrawerOptions = _props$isDrawerOption === void 0 ? false : _props$isDrawerOption,
45
+ renderGroup = props.renderGroup,
46
+ _props$scrollbarMaxHe = props.scrollbarMaxHeight,
47
+ scrollbarMaxHeight = _props$scrollbarMaxHe === void 0 ? MAX_LIST_HEIGHT : _props$scrollbarMaxHe,
48
+ scrollbarHeader = props.scrollbarHeader,
49
+ emptyOptionsLabel = props.emptyOptionsLabel,
50
+ isLoading = props.isLoading,
51
+ onBlur = props.onBlur,
52
+ required = props.required,
53
+ _props$usePadding = props.usePadding,
54
+ usePadding = _props$usePadding === void 0 ? false : _props$usePadding,
55
+ dropdownWidth = props.dropdownWidth,
56
+ _props$useModernStyle = props.useModernStyles,
57
+ useModernStyles = _props$useModernStyle === void 0 ? false : _props$useModernStyle;
58
+ var isMultiple = props.isMultiple === true;
59
+ var collapseTags = isMultiple ? (_collapseTags = props.collapseTags) !== null && _collapseTags !== void 0 ? _collapseTags : false : false;
60
+ var chipProps = isMultiple ? props.chipProps : undefined;
61
+ var onChangeSingle = onChange;
62
+ var onChangeMultiple = onChange;
51
63
  var palette = useComponentPalette('select');
52
64
  var _useInputFocus = useInputFocus({
53
65
  onBlur: onBlur
@@ -74,11 +86,23 @@ export var Select = function Select(_ref) {
74
86
  */
75
87
  var delayBlur = useRef(null);
76
88
  var inputRef = useRef(null);
89
+ var multipleValue = useMemo(function () {
90
+ var _ref;
91
+ return isMultiple ? (_ref = value) !== null && _ref !== void 0 ? _ref : [] : [];
92
+ }, [isMultiple, value]);
77
93
  var selectedOption = useMemo(function () {
78
- return options.find(function (option) {
94
+ return isMultiple ? undefined : options.find(function (option) {
79
95
  return option.value === value;
80
96
  });
81
- }, [options, value]);
97
+ }, [isMultiple, options, value]);
98
+ var selectedOptions = useMemo(function () {
99
+ return isMultiple ? options.filter(function (option) {
100
+ return multipleValue.includes(option.value);
101
+ }) : [];
102
+ }, [isMultiple, options, multipleValue]);
103
+ var selectedValuesSet = useMemo(function () {
104
+ return new Set(multipleValue);
105
+ }, [multipleValue]);
82
106
  var optionGroups = useOptionGroups(options, groups);
83
107
  var handleShow = useCallback(function () {
84
108
  return setIsOpen(true);
@@ -105,16 +129,29 @@ export var Select = function Select(_ref) {
105
129
  }, [blurHandler]);
106
130
  var handleSelect = useCallback(function (event) {
107
131
  var newValue = JSON.parse(event.currentTarget.dataset.value);
108
- onChange(newValue);
132
+ if (isMultiple) {
133
+ var next = multipleValue.includes(newValue) ? multipleValue.filter(function (item) {
134
+ return item !== newValue;
135
+ }) : [].concat(_toConsumableArray(multipleValue), [newValue]);
136
+ onChangeMultiple(next);
137
+ // при множественном выборе дропдаун остаётся открытым
138
+ return;
139
+ }
140
+ onChangeSingle(newValue);
109
141
  handleHide();
110
142
  if (delayBlur.current) {
111
143
  delayBlur.current();
112
144
  delayBlur.current = null;
113
145
  }
114
- }, [handleHide, onChange]);
146
+ }, [handleHide, isMultiple, multipleValue, onChangeMultiple, onChangeSingle]);
147
+ var handleRemoveTag = useCallback(function (removedValue) {
148
+ return onChangeMultiple(multipleValue.filter(function (item) {
149
+ return item !== removedValue;
150
+ }));
151
+ }, [multipleValue, onChangeMultiple]);
115
152
  var handleReset = useCallback(function () {
116
- return onChange(null);
117
- }, [onChange]);
153
+ return isMultiple ? onChangeMultiple([]) : onChangeSingle(null);
154
+ }, [isMultiple, onChangeMultiple, onChangeSingle]);
118
155
  var handleInputClick = function handleInputClick() {
119
156
  var _inputRef$current;
120
157
  (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.blur();
@@ -130,8 +167,9 @@ export var Select = function Select(_ref) {
130
167
  return renderOption(option.entity);
131
168
  }
132
169
  return /*#__PURE__*/React.createElement(S.DefaultOptionWrapper, {
133
- $usePadding: usePadding
134
- }, " ", option.label);
170
+ $usePadding: usePadding,
171
+ $isMultiple: isMultiple
172
+ }, option.label);
135
173
  };
136
174
  var handleGroupRender = function handleGroupRender(group) {
137
175
  if (group) {
@@ -166,8 +204,12 @@ export var Select = function Select(_ref) {
166
204
  "data-value": JSON.stringify(option.value),
167
205
  "data-option-identifier": OPTION_IDENTIFIER,
168
206
  $isGrouped: !!group && !renderOption,
169
- $usePadding: usePadding
170
- }, handleOptionRender(option)));
207
+ $usePadding: usePadding,
208
+ $isSelected: !isMultiple && option.value === value
209
+ }, isMultiple ? /*#__PURE__*/React.createElement(S.OptionContent, null, /*#__PURE__*/React.createElement(S.CheckboxWrapper, null, /*#__PURE__*/React.createElement(Checkbox, {
210
+ checked: selectedValuesSet.has(option.value),
211
+ readOnly: true
212
+ })), handleOptionRender(option)) : handleOptionRender(option)));
171
213
  }));
172
214
  }));
173
215
  var emptyLabel = /*#__PURE__*/React.createElement(S.DefaultOptionWrapper, null, /*#__PURE__*/React.createElement(S.EmptyLabel, {
@@ -198,20 +240,32 @@ export var Select = function Select(_ref) {
198
240
  return /*#__PURE__*/React.createElement(React.Fragment, null, dropdownHeader, " ", emptyLabel);
199
241
  };
200
242
  var renderedValue = useMemo(function () {
243
+ if (isMultiple) {
244
+ if (!selectedOptions.length) return;
245
+ return /*#__PURE__*/React.createElement(MultipleValue, {
246
+ selectedOptions: selectedOptions,
247
+ onRemove: handleRemoveTag,
248
+ collapse: collapseTags,
249
+ chipProps: chipProps
250
+ });
251
+ }
201
252
  if (!renderValue || !(selectedOption !== null && selectedOption !== void 0 && selectedOption.entity)) return;
202
253
  return renderValue(selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.entity);
203
- }, [renderValue, selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.entity]);
254
+ }, [isMultiple, selectedOptions, handleRemoveTag, collapseTags, chipProps, renderValue, selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.entity]);
255
+ var inputValue = isMultiple ? selectedOptions.map(function (option) {
256
+ return option.label;
257
+ }).join(', ') : (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) || '';
204
258
  return /*#__PURE__*/React.createElement(S.Wrapper, {
205
259
  ref: isDrawerOptions ? undefined : wrapperRef
206
260
  }, /*#__PURE__*/React.createElement(S.InputWrapper, null, /*#__PURE__*/React.createElement(Input, {
207
261
  ref: inputRef,
208
262
  label: label,
209
263
  hasError: hasError,
210
- inFocus: inFocus,
264
+ inFocus: isMultiple ? isOpen : inFocus,
211
265
  placeholder: placeholder,
212
266
  onFocus: isDrawerOptions ? undefined : handleFocus,
213
267
  onBlur: isDrawerOptions ? undefined : handleBlur,
214
- value: (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) || '',
268
+ value: inputValue,
215
269
  renderedValue: renderedValue,
216
270
  name: name,
217
271
  isOpen: isOpen,
@@ -239,4 +239,35 @@ export var WithRenderedValue = {
239
239
  renderValue: renderValue
240
240
  }),
241
241
  render: Component
242
+ };
243
+ var MultipleComponent = function MultipleComponent(props) {
244
+ var _useState3 = useState([]),
245
+ _useState4 = _slicedToArray(_useState3, 2),
246
+ value = _useState4[0],
247
+ setValue = _useState4[1];
248
+ var handleChange = useCallback(function (newValue) {
249
+ setValue(newValue);
250
+ action('onChange')(newValue);
251
+ }, []);
252
+ return /*#__PURE__*/React.createElement("div", {
253
+ style: {
254
+ maxWidth: 360
255
+ }
256
+ }, /*#__PURE__*/React.createElement(Select, _extends({}, props, {
257
+ value: value,
258
+ onChange: handleChange
259
+ })));
260
+ };
261
+ export var Multiple = {
262
+ args: _objectSpread(_objectSpread({}, COMMON_ARGS), {}, {
263
+ isMultiple: true
264
+ }),
265
+ render: MultipleComponent
266
+ };
267
+ export var MultipleCollapsed = {
268
+ args: _objectSpread(_objectSpread({}, COMMON_ARGS), {}, {
269
+ isMultiple: true,
270
+ collapseTags: true
271
+ }),
272
+ render: MultipleComponent
242
273
  };
@@ -2,6 +2,8 @@ import hexToRgba from '../../../utils/hexToRgba';
2
2
  export var generateSelectPalette = function generateSelectPalette(abstractPalette) {
3
3
  return {
4
4
  bgHover: hexToRgba(abstractPalette.neutralUsual, 0.5),
5
- empty: abstractPalette.neutralFoggy
5
+ empty: abstractPalette.neutralFoggy,
6
+ tagColor: '#6590FD',
7
+ tagBg: hexToRgba('#6590FD', 0.16)
6
8
  };
7
9
  };
@@ -18,14 +18,18 @@ export var OptionWrapper = styled.div.withConfig({
18
18
  export var Option = styled(Typography).withConfig({
19
19
  displayName: "styles__Option",
20
20
  componentId: "sc-1x9n0z5-3"
21
- })(["overflow:hidden;width:100%;text-align:left;transition:all 0.2s ease-in-out 0s;box-sizing:border-box;cursor:pointer;border-radius:", ";&:hover{background-color:", ";}", ""], function (_ref2) {
21
+ })(["overflow:hidden;width:100%;text-align:left;transition:all 0.2s ease-in-out 0s;box-sizing:border-box;cursor:pointer;border-radius:", ";", " &:hover{background-color:", ";}", ""], function (_ref2) {
22
22
  var $usePadding = _ref2.$usePadding;
23
23
  return $usePadding ? '12px' : 'none';
24
24
  }, function (_ref3) {
25
- var $palette = _ref3.$palette;
26
- return $palette.bgHover;
25
+ var $isSelected = _ref3.$isSelected,
26
+ $palette = _ref3.$palette;
27
+ return $isSelected && css(["background-color:", ";border-radius:8px;"], $palette.bgHover);
27
28
  }, function (_ref4) {
28
- var $isGrouped = _ref4.$isGrouped;
29
+ var $palette = _ref4.$palette;
30
+ return $palette.bgHover;
31
+ }, function (_ref5) {
32
+ var $isGrouped = _ref5.$isGrouped;
29
33
  return $isGrouped && css(["padding-left:30px;"]);
30
34
  });
31
35
  export var Group = styled(Typography).withConfig({
@@ -35,9 +39,13 @@ export var Group = styled(Typography).withConfig({
35
39
  export var DefaultOptionWrapper = styled.div.withConfig({
36
40
  displayName: "styles__DefaultOptionWrapper",
37
41
  componentId: "sc-1x9n0z5-5"
38
- })(["padding:", ";"], function (_ref5) {
39
- var $usePadding = _ref5.$usePadding;
42
+ })(["padding:", ";padding-left:", ";"], function (_ref6) {
43
+ var $usePadding = _ref6.$usePadding;
40
44
  return $usePadding ? '12px' : '12px 20px';
45
+ }, function (_ref7) {
46
+ var $isMultiple = _ref7.$isMultiple,
47
+ $usePadding = _ref7.$usePadding;
48
+ return $isMultiple && !$usePadding ? '6px' : undefined;
41
49
  });
42
50
  export var DrawerContent = styled.div.withConfig({
43
51
  displayName: "styles__DrawerContent",
@@ -50,11 +58,19 @@ export var DrawerBottom = styled.div.withConfig({
50
58
  export var EmptyLabel = styled(Typography).withConfig({
51
59
  displayName: "styles__EmptyLabel",
52
60
  componentId: "sc-1x9n0z5-8"
53
- })(["color:", ";"], function (_ref6) {
54
- var $color = _ref6.$color;
61
+ })(["color:", ";"], function (_ref8) {
62
+ var $color = _ref8.$color;
55
63
  return $color;
56
64
  });
57
65
  export var ScrollbarContent = styled.div.withConfig({
58
66
  displayName: "styles__ScrollbarContent",
59
67
  componentId: "sc-1x9n0z5-9"
60
- })([""]);
68
+ })([""]);
69
+ export var OptionContent = styled.div.withConfig({
70
+ displayName: "styles__OptionContent",
71
+ componentId: "sc-1x9n0z5-10"
72
+ })(["display:flex;align-items:center;gap:8px;padding-left:16px;"]);
73
+ export var CheckboxWrapper = styled.div.withConfig({
74
+ displayName: "styles__CheckboxWrapper",
75
+ componentId: "sc-1x9n0z5-11"
76
+ })(["flex:0 0 auto;pointer-events:none;"]);
@@ -8,7 +8,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
8
8
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
9
9
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
10
10
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
11
- import React, { useState, useRef } from 'react';
11
+ import React, { useState, useRef, useId } from 'react';
12
12
  import { InputLabel } from '../InputLabel';
13
13
  import { PureInput } from '../PureInput';
14
14
  import * as S from './styles';
@@ -37,6 +37,7 @@ export var TagsInput = function TagsInput(_ref) {
37
37
  inFocus = _useInputFocus.inFocus,
38
38
  handleFocus = _useInputFocus.handleFocus,
39
39
  handleBlur = _useInputFocus.handleBlur;
40
+ var inputId = useId();
40
41
  var inputRef = useRef(null);
41
42
  var pureInputPalette = useComponentPalette('pureInput');
42
43
  var tagsInputPalette = useComponentPalette('tagsInput', palette);
@@ -108,7 +109,8 @@ export var TagsInput = function TagsInput(_ref) {
108
109
  (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.focus();
109
110
  };
110
111
  return /*#__PURE__*/React.createElement(InputLabel, {
111
- label: label
112
+ label: label,
113
+ htmlFor: inputId
112
114
  }, /*#__PURE__*/React.createElement(S.PureInputStyledWrapper, {
113
115
  $palette: pureInputPalette,
114
116
  $hasBorder: true,
@@ -142,6 +144,7 @@ export var TagsInput = function TagsInput(_ref) {
142
144
  bgColor: tagsInputPalette.chipBg
143
145
  });
144
146
  }), /*#__PURE__*/React.createElement(S.InputWithSaveButtonWrapper, null, /*#__PURE__*/React.createElement(PureInput, {
147
+ id: inputId,
145
148
  ref: inputRef,
146
149
  hasBorder: inFocus,
147
150
  paddingBottom: 0,
@@ -1,5 +1,5 @@
1
1
  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); }
2
- import React, { useCallback } from 'react';
2
+ import React, { useCallback, useId } from 'react';
3
3
  import * as S from './styles';
4
4
  import { InputLabel } from '../InputLabel';
5
5
  import { PureInput } from '../PureInput';
@@ -44,6 +44,8 @@ export var TextInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
44
44
  inFocus = _useInputFocus.inFocus,
45
45
  handleFocus = _useInputFocus.handleFocus,
46
46
  handleBlur = _useInputFocus.handleBlur;
47
+ var fallbackId = useId();
48
+ var inputId = id !== null && id !== void 0 ? id : fallbackId;
47
49
  var _useElementWidth = useElementWidth(),
48
50
  childrenRef = _useElementWidth.ref,
49
51
  childrenWidth = _useElementWidth.width;
@@ -71,9 +73,11 @@ export var TextInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
71
73
  disabled: disabled,
72
74
  required: required,
73
75
  size: fieldSize,
74
- useModernStyles: useModernStyles
76
+ useModernStyles: useModernStyles,
77
+ htmlFor: inputId
75
78
  }, /*#__PURE__*/React.createElement(S.InputLabelContent, null, modernPlaceholder, /*#__PURE__*/React.createElement(PureInput, _extends({
76
- id: id,
79
+ id: inputId,
80
+ "aria-label": label && !inputLabel ? label : undefined,
77
81
  ref: ref,
78
82
  name: name,
79
83
  disabled: disabled,
package/dist/esm/index.js CHANGED
@@ -2,6 +2,7 @@ export { PaletteProvider, defaultAbstractPalette } from './palette';
2
2
  // common
3
3
  export { Skeleton } from './components/common/Skeleton';
4
4
  export { Typography } from './components/common/Typography';
5
+ export { Tooltip } from './components/common/Tooltip';
5
6
  export { InvoiceboxSpinner } from './components/common/InvoiceboxSpinner';
6
7
  export { SecondaryButton } from './components/common/SecondaryButton';
7
8
  export { Arrow } from './components/common/Arrow';
@@ -28,6 +29,7 @@ export { PureInput } from './components/form/PureInput';
28
29
  export { PositiveIntegerInput } from './components/form/PositiveIntegerInput';
29
30
  export { TagsInput } from './components/form/TagsInput';
30
31
  export { TextInput } from './components/form/TextInput';
32
+ export { Checkbox } from './components/form/Checkbox';
31
33
  export { Select } from './components/form/Select';
32
34
  export { Toggle } from './components/form/Toggle';
33
35
  export { DateInput } from './components/form/DateInput';
@@ -30,6 +30,8 @@ import { generateTagsInputPalette } from '../components/form/TagsInput/palette';
30
30
  import { generateTimePickerPalette } from '../components/form/DateTimeInput/components/TimePicker/palette';
31
31
  import { generateDateTimeInputPalette } from '../components/form/DateTimeInput/palette';
32
32
  import { generateDrawerHeaderPalette } from '../components/form/common/DrawerHeader/palette';
33
+ import { generateCheckboxPalette } from '../components/form/Checkbox/palette';
34
+ import { generateTooltipPalette } from '../components/common/Tooltip/palette';
33
35
  export var PaletteContext = /*#__PURE__*/createContext({
34
36
  skeleton: generateSkeletonPalette(defaultAbstractPalette),
35
37
  invoiceboxSpinner: generateInvoiceboxSpinnerPalette(defaultAbstractPalette),
@@ -60,5 +62,7 @@ export var PaletteContext = /*#__PURE__*/createContext({
60
62
  tagsInput: generateTagsInputPalette(defaultAbstractPalette),
61
63
  timePicker: generateTimePickerPalette(defaultAbstractPalette),
62
64
  dateTimeInput: generateDateTimeInputPalette(defaultAbstractPalette),
63
- drawerHeader: generateDrawerHeaderPalette(defaultAbstractPalette)
65
+ drawerHeader: generateDrawerHeaderPalette(defaultAbstractPalette),
66
+ checkbox: generateCheckboxPalette(defaultAbstractPalette),
67
+ tooltip: generateTooltipPalette(defaultAbstractPalette)
64
68
  });
@@ -37,6 +37,8 @@ import { generateTagsInputPalette } from '../components/form/TagsInput/palette';
37
37
  import { generateTimePickerPalette } from '../components/form/DateTimeInput/components/TimePicker/palette';
38
38
  import { generateDateTimeInputPalette } from '../components/form/DateTimeInput/palette';
39
39
  import { generateDrawerHeaderPalette } from '../components/form/common/DrawerHeader/palette';
40
+ import { generateCheckboxPalette } from '../components/form/Checkbox/palette';
41
+ import { generateTooltipPalette } from '../components/common/Tooltip/palette';
40
42
  export var PaletteProvider = function PaletteProvider(_ref) {
41
43
  var children = _ref.children,
42
44
  _abstract = _ref["abstract"],
@@ -78,7 +80,9 @@ export var PaletteProvider = function PaletteProvider(_ref) {
78
80
  tagsInput: generateTagsInputPalette(mergedAbstractPalette),
79
81
  timePicker: generateTimePickerPalette(mergedAbstractPalette),
80
82
  dateTimeInput: generateDateTimeInputPalette(mergedAbstractPalette),
81
- drawerHeader: generateDrawerHeaderPalette(mergedAbstractPalette)
83
+ drawerHeader: generateDrawerHeaderPalette(mergedAbstractPalette),
84
+ checkbox: generateCheckboxPalette(mergedAbstractPalette),
85
+ tooltip: generateTooltipPalette(mergedAbstractPalette)
82
86
  };
83
87
  }, [mergedSkeletonPalette, mergedAbstractPalette]);
84
88
  return /*#__PURE__*/React.createElement(PaletteContext.Provider, {
package/dist/index.d.ts CHANGED
@@ -2,6 +2,8 @@ export { PaletteProvider, defaultAbstractPalette } from './palette';
2
2
  export type { TAbstractPalette } from './palette';
3
3
  export { Skeleton } from './components/common/Skeleton';
4
4
  export { Typography } from './components/common/Typography';
5
+ export { Tooltip } from './components/common/Tooltip';
6
+ export type { TProps as TTooltipProps } from './components/common/Tooltip';
5
7
  export { InvoiceboxSpinner } from './components/common/InvoiceboxSpinner';
6
8
  export { SecondaryButton } from './components/common/SecondaryButton';
7
9
  export { Arrow } from './components/common/Arrow';
@@ -38,8 +40,10 @@ export { TagsInput } from './components/form/TagsInput';
38
40
  export type { TProps as TTagsInputProps } from './components/form/TagsInput';
39
41
  export { TextInput } from './components/form/TextInput';
40
42
  export type { TProps as TTextInputProps } from './components/form/TextInput';
43
+ export { Checkbox } from './components/form/Checkbox';
44
+ export type { TProps as TCheckboxProps } from './components/form/Checkbox';
41
45
  export { Select } from './components/form/Select';
42
- export type { TProps as TSelectProps, TOption, TGroup } from './components/form/Select';
46
+ export type { TProps as TSelectProps, TMultipleProps as TMultipleSelectProps, TOption, TGroup, } from './components/form/Select';
43
47
  export { Toggle } from './components/form/Toggle';
44
48
  export type { TProps as TToggleProps } from './components/form/Toggle';
45
49
  export { DateInput } from './components/form/DateInput';
package/dist/index.js CHANGED
@@ -39,6 +39,12 @@ Object.defineProperty(exports, "Calendar", {
39
39
  return _Calendar.Calendar;
40
40
  }
41
41
  });
42
+ Object.defineProperty(exports, "Checkbox", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _Checkbox.Checkbox;
46
+ }
47
+ });
42
48
  Object.defineProperty(exports, "Chip", {
43
49
  enumerable: true,
44
50
  get: function get() {
@@ -243,6 +249,12 @@ Object.defineProperty(exports, "Toggle", {
243
249
  return _Toggle.Toggle;
244
250
  }
245
251
  });
252
+ Object.defineProperty(exports, "Tooltip", {
253
+ enumerable: true,
254
+ get: function get() {
255
+ return _Tooltip.Tooltip;
256
+ }
257
+ });
246
258
  Object.defineProperty(exports, "Typography", {
247
259
  enumerable: true,
248
260
  get: function get() {
@@ -348,6 +360,7 @@ Object.defineProperty(exports, "useUnupdatableHandler", {
348
360
  var _palette = require("./palette");
349
361
  var _Skeleton = require("./components/common/Skeleton");
350
362
  var _Typography = require("./components/common/Typography");
363
+ var _Tooltip = require("./components/common/Tooltip");
351
364
  var _InvoiceboxSpinner = require("./components/common/InvoiceboxSpinner");
352
365
  var _SecondaryButton = require("./components/common/SecondaryButton");
353
366
  var _Arrow = require("./components/common/Arrow");
@@ -372,6 +385,7 @@ var _PureInput = require("./components/form/PureInput");
372
385
  var _PositiveIntegerInput = require("./components/form/PositiveIntegerInput");
373
386
  var _TagsInput = require("./components/form/TagsInput");
374
387
  var _TextInput = require("./components/form/TextInput");
388
+ var _Checkbox = require("./components/form/Checkbox");
375
389
  var _Select = require("./components/form/Select");
376
390
  var _Toggle = require("./components/form/Toggle");
377
391
  var _DateInput = require("./components/form/DateInput");
@@ -29,6 +29,8 @@ import { TTagsInputPalette } from '../components/form/TagsInput/palette';
29
29
  import { TTimePickerPalette } from '../components/form/DateTimeInput/components/TimePicker/palette';
30
30
  import { TDateTimeInputPalette } from '../components/form/DateTimeInput/palette';
31
31
  import { TDrawerHeaderPalette } from '../components/form/common/DrawerHeader/palette';
32
+ import { TCheckboxPalette } from '../components/form/Checkbox/palette';
33
+ import { TTooltipPalette } from '../components/common/Tooltip/palette';
32
34
  type TContext = {
33
35
  skeleton: TSkeletonPalette;
34
36
  invoiceboxSpinner: TInvoiceboxSpinnerPalette;
@@ -60,6 +62,8 @@ type TContext = {
60
62
  timePicker: TTimePickerPalette;
61
63
  dateTimeInput: TDateTimeInputPalette;
62
64
  drawerHeader: TDrawerHeaderPalette;
65
+ checkbox: TCheckboxPalette;
66
+ tooltip: TTooltipPalette;
63
67
  };
64
68
  export declare const PaletteContext: import("react").Context<TContext>;
65
69
  export {};
@@ -36,6 +36,8 @@ var _palette27 = require("../components/form/TagsInput/palette");
36
36
  var _palette28 = require("../components/form/DateTimeInput/components/TimePicker/palette");
37
37
  var _palette29 = require("../components/form/DateTimeInput/palette");
38
38
  var _palette30 = require("../components/form/common/DrawerHeader/palette");
39
+ var _palette31 = require("../components/form/Checkbox/palette");
40
+ var _palette32 = require("../components/common/Tooltip/palette");
39
41
  var PaletteContext = exports.PaletteContext = /*#__PURE__*/(0, _react.createContext)({
40
42
  skeleton: (0, _palette.generateSkeletonPalette)(_constants.defaultAbstractPalette),
41
43
  invoiceboxSpinner: (0, _palette2.generateInvoiceboxSpinnerPalette)(_constants.defaultAbstractPalette),
@@ -66,5 +68,7 @@ var PaletteContext = exports.PaletteContext = /*#__PURE__*/(0, _react.createCont
66
68
  tagsInput: (0, _palette27.generateTagsInputPalette)(_constants.defaultAbstractPalette),
67
69
  timePicker: (0, _palette28.generateTimePickerPalette)(_constants.defaultAbstractPalette),
68
70
  dateTimeInput: (0, _palette29.generateDateTimeInputPalette)(_constants.defaultAbstractPalette),
69
- drawerHeader: (0, _palette30.generateDrawerHeaderPalette)(_constants.defaultAbstractPalette)
71
+ drawerHeader: (0, _palette30.generateDrawerHeaderPalette)(_constants.defaultAbstractPalette),
72
+ checkbox: (0, _palette31.generateCheckboxPalette)(_constants.defaultAbstractPalette),
73
+ tooltip: (0, _palette32.generateTooltipPalette)(_constants.defaultAbstractPalette)
70
74
  });
@@ -37,6 +37,8 @@ var _palette27 = require("../components/form/TagsInput/palette");
37
37
  var _palette28 = require("../components/form/DateTimeInput/components/TimePicker/palette");
38
38
  var _palette29 = require("../components/form/DateTimeInput/palette");
39
39
  var _palette30 = require("../components/form/common/DrawerHeader/palette");
40
+ var _palette31 = require("../components/form/Checkbox/palette");
41
+ var _palette32 = require("../components/common/Tooltip/palette");
40
42
  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); }
41
43
  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; }
42
44
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
@@ -86,7 +88,9 @@ var PaletteProvider = exports.PaletteProvider = function PaletteProvider(_ref) {
86
88
  tagsInput: (0, _palette27.generateTagsInputPalette)(mergedAbstractPalette),
87
89
  timePicker: (0, _palette28.generateTimePickerPalette)(mergedAbstractPalette),
88
90
  dateTimeInput: (0, _palette29.generateDateTimeInputPalette)(mergedAbstractPalette),
89
- drawerHeader: (0, _palette30.generateDrawerHeaderPalette)(mergedAbstractPalette)
91
+ drawerHeader: (0, _palette30.generateDrawerHeaderPalette)(mergedAbstractPalette),
92
+ checkbox: (0, _palette31.generateCheckboxPalette)(mergedAbstractPalette),
93
+ tooltip: (0, _palette32.generateTooltipPalette)(mergedAbstractPalette)
90
94
  };
91
95
  }, [mergedSkeletonPalette, mergedAbstractPalette]);
92
96
  return /*#__PURE__*/_react["default"].createElement(_context.PaletteContext.Provider, {
@@ -29,4 +29,6 @@ export declare const usePalette: () => {
29
29
  timePicker: import("../components/form/DateTimeInput/components/TimePicker/palette").TTimePickerPalette;
30
30
  dateTimeInput: import("../components/form/DateTimeInput/palette").TDateTimeInputPalette;
31
31
  drawerHeader: import("../components/form/common/DrawerHeader/palette").TDrawerHeaderPalette;
32
+ checkbox: import("../components/form/Checkbox/palette").TCheckboxPalette;
33
+ tooltip: import("../components/common/Tooltip/palette").TTooltipPalette;
32
34
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@invoicebox/ui",
3
- "version": "0.1.0-alpha.314",
3
+ "version": "0.1.0-alpha.316",
4
4
  "description": "Invoicebox UI",
5
5
  "license": "Apache License 2.0",
6
6
  "scripts": {