@storybook/components 6.2.0-rc.6 → 6.2.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.
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
- require("core-js/modules/es.array.concat.js");
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
4
 
5
- require("core-js/modules/es.array.every.js");
5
+ require("core-js/modules/es.array.concat.js");
6
6
 
7
7
  require("core-js/modules/es.array.filter.js");
8
8
 
@@ -12,10 +12,14 @@ require("core-js/modules/es.array.map.js");
12
12
 
13
13
  require("core-js/modules/es.array.slice.js");
14
14
 
15
- require("core-js/modules/es.function.name.js");
15
+ require("core-js/modules/es.array.some.js");
16
16
 
17
17
  require("core-js/modules/es.number.constructor.js");
18
18
 
19
+ require("core-js/modules/es.object.assign.js");
20
+
21
+ require("core-js/modules/es.object.keys.js");
22
+
19
23
  require("core-js/modules/es.object.values.js");
20
24
 
21
25
  require("core-js/modules/es.regexp.exec.js");
@@ -24,6 +28,8 @@ require("core-js/modules/es.string.match.js");
24
28
 
25
29
  require("core-js/modules/es.string.replace.js");
26
30
 
31
+ require("core-js/modules/es.string.split.js");
32
+
27
33
  require("core-js/modules/es.string.starts-with.js");
28
34
 
29
35
  Object.defineProperty(exports, "__esModule", {
@@ -49,39 +55,137 @@ var _form = require("../form");
49
55
 
50
56
  var _icon = require("../icon/icon");
51
57
 
58
+ var _ColorPicker, _fallbackColor;
59
+
52
60
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
53
61
 
54
62
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
55
63
 
56
64
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
57
65
 
66
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
67
+
68
+ 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."); }
69
+
70
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
71
+
72
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
73
+
74
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
75
+
76
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
77
+
78
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
79
+
58
80
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
59
81
 
60
82
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
61
83
 
62
84
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
63
85
 
64
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
65
-
66
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
86
+ var Wrapper = _theming.styled.div({
87
+ position: 'relative',
88
+ maxWidth: 250
89
+ });
67
90
 
68
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
91
+ var PickerTooltip = (0, _theming.styled)(_lazyWithTooltip.WithTooltip)({
92
+ position: 'absolute',
93
+ zIndex: 1,
94
+ top: 4,
95
+ left: 4
96
+ });
69
97
 
70
- 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."); }
98
+ var TooltipContent = _theming.styled.div({
99
+ width: 200,
100
+ margin: 5,
101
+ '.react-colorful__saturation': {
102
+ borderRadius: '4px 4px 0 0'
103
+ },
104
+ '.react-colorful__hue': {
105
+ boxShadow: 'inset 0 0 0 1px rgb(0 0 0 / 5%)'
106
+ },
107
+ '.react-colorful__last-control': {
108
+ borderRadius: '0 0 4px 4px'
109
+ }
110
+ });
71
111
 
72
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
112
+ var Note = (0, _theming.styled)(_TooltipNote.TooltipNote)(function (_ref) {
113
+ var theme = _ref.theme;
114
+ return {
115
+ fontFamily: theme.typography.fonts.base
116
+ };
117
+ });
73
118
 
74
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
119
+ var Swatches = _theming.styled.div({
120
+ display: 'grid',
121
+ gridTemplateColumns: 'repeat(9, 16px)',
122
+ gap: 6,
123
+ padding: 3,
124
+ marginTop: 5,
125
+ width: 200
126
+ });
75
127
 
76
- function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
128
+ var SwatchColor = _theming.styled.div(function (_ref2) {
129
+ var theme = _ref2.theme,
130
+ active = _ref2.active;
131
+ return {
132
+ width: 16,
133
+ height: 16,
134
+ boxShadow: active ? "".concat(theme.appBorderColor, " 0 0 0 1px inset, ").concat(theme.color.mediumdark, "50 0 0 0 4px") : "".concat(theme.appBorderColor, " 0 0 0 1px inset"),
135
+ borderRadius: theme.appBorderRadius
136
+ };
137
+ });
77
138
 
78
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
139
+ var swatchBackground = "url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill-opacity=\".05\"><path d=\"M8 0h8v8H8zM0 8h8v8H0z\"/></svg>')";
140
+
141
+ var Swatch = function Swatch(_ref3) {
142
+ var value = _ref3.value,
143
+ active = _ref3.active,
144
+ onClick = _ref3.onClick,
145
+ style = _ref3.style,
146
+ props = _objectWithoutProperties(_ref3, ["value", "active", "onClick", "style"]);
147
+
148
+ var backgroundImage = "linear-gradient(".concat(value, ", ").concat(value, "), ").concat(swatchBackground, ", linear-gradient(#fff, #fff)");
149
+ return /*#__PURE__*/_react.default.createElement(SwatchColor, _extends({}, props, {
150
+ active: active,
151
+ onClick: onClick,
152
+ style: Object.assign({}, style, {
153
+ backgroundImage: backgroundImage
154
+ })
155
+ }));
156
+ };
79
157
 
158
+ Swatch.displayName = "Swatch";
159
+ var Input = (0, _theming.styled)(_form.Form.Input)(function (_ref4) {
160
+ var theme = _ref4.theme;
161
+ return {
162
+ width: '100%',
163
+ paddingLeft: 30,
164
+ paddingRight: 30,
165
+ boxSizing: 'border-box',
166
+ fontFamily: theme.typography.fonts.base
167
+ };
168
+ });
169
+ var ToggleIcon = (0, _theming.styled)(_icon.Icons)(function (_ref5) {
170
+ var theme = _ref5.theme;
171
+ return {
172
+ position: 'absolute',
173
+ zIndex: 1,
174
+ top: 6,
175
+ right: 7,
176
+ width: 20,
177
+ height: 20,
178
+ padding: 4,
179
+ boxSizing: 'border-box',
180
+ cursor: 'pointer',
181
+ color: theme.input.color
182
+ };
183
+ });
80
184
  var ColorSpace;
81
185
 
82
186
  (function (ColorSpace) {
83
- ColorSpace["RGBA"] = "rgb";
84
- ColorSpace["HSLA"] = "hsl";
187
+ ColorSpace["RGB"] = "rgb";
188
+ ColorSpace["HSL"] = "hsl";
85
189
  ColorSpace["HEX"] = "hex";
86
190
  })(ColorSpace || (ColorSpace = {}));
87
191
 
@@ -89,8 +193,10 @@ var COLOR_SPACES = Object.values(ColorSpace);
89
193
  var COLOR_REGEXP = /\(([0-9]+),\s*([0-9]+)%?,\s*([0-9]+)%?,?\s*([0-9.]+)?\)/;
90
194
  var RGB_REGEXP = /^\s*rgba?\(([0-9]+),\s*([0-9]+),\s*([0-9]+),?\s*([0-9.]+)?\)\s*$/i;
91
195
  var HSL_REGEXP = /^\s*hsla?\(([0-9]+),\s*([0-9]+)%,\s*([0-9]+)%,?\s*([0-9.]+)?\)\s*$/i;
92
- var HEX_REGEXP = /^\s*#([0-9a-f]{1,2})([0-9a-f]{1,2})([0-9a-f]{1,2})\s*$/i;
93
- var SHORTHEX_REGEXP = /^\s*#([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i;
196
+ var HEX_REGEXP = /^\s*#?([0-9a-f]{3}|[0-9a-f]{6})\s*$/i;
197
+ var SHORTHEX_REGEXP = /^\s*#?([0-9a-f]{3})\s*$/i;
198
+ var ColorPicker = (_ColorPicker = {}, _defineProperty(_ColorPicker, ColorSpace.HEX, _reactColorful.HexColorPicker), _defineProperty(_ColorPicker, ColorSpace.RGB, _reactColorful.RgbaStringColorPicker), _defineProperty(_ColorPicker, ColorSpace.HSL, _reactColorful.HslaStringColorPicker), _ColorPicker);
199
+ var fallbackColor = (_fallbackColor = {}, _defineProperty(_fallbackColor, ColorSpace.HEX, 'transparent'), _defineProperty(_fallbackColor, ColorSpace.RGB, 'rgba(0, 0, 0, 0)'), _defineProperty(_fallbackColor, ColorSpace.HSL, 'hsla(0, 0%, 0%, 0)'), _fallbackColor);
94
200
 
95
201
  var stringToArgs = function stringToArgs(value) {
96
202
  var match = value === null || value === void 0 ? void 0 : value.match(COLOR_REGEXP);
@@ -106,273 +212,250 @@ var stringToArgs = function stringToArgs(value) {
106
212
  return [x, y, z, a].map(Number);
107
213
  };
108
214
 
109
- var expandShorthand = function expandShorthand(value) {
110
- if (!value) return '#000000';
111
-
112
- if (!value.startsWith('#')) {
113
- try {
114
- return "#".concat(_colorConvert.default.keyword.hex(value));
115
- } catch (e) {
116
- return value;
117
- }
118
- }
215
+ var parseValue = function parseValue(value) {
216
+ var _ref12;
119
217
 
120
- if (value.length > 4) return value;
121
- var match = value.match(SHORTHEX_REGEXP);
122
- if (!match) return value;
218
+ if (!value) return undefined;
219
+ var valid = true;
123
220
 
124
- var _match2 = _slicedToArray(match, 4),
125
- r = _match2[1],
126
- g = _match2[2],
127
- b = _match2[3];
221
+ if (RGB_REGEXP.test(value)) {
222
+ var _ref8;
128
223
 
129
- return "#".concat(r).concat(r).concat(g).concat(g).concat(b).concat(b);
130
- };
131
-
132
- var parseValue = function parseValue(input) {
133
- var _ref8;
134
-
135
- var _ref = _typeof(input) === 'object' ? input : {
136
- color: input,
137
- title: undefined
138
- },
139
- color = _ref.color,
140
- title = _ref.title;
141
-
142
- if (!color) return undefined;
143
-
144
- if (RGB_REGEXP.test(color)) {
145
- var _ref4;
146
-
147
- var _stringToArgs = stringToArgs(color),
224
+ var _stringToArgs = stringToArgs(value),
148
225
  _stringToArgs2 = _slicedToArray(_stringToArgs, 4),
149
226
  r = _stringToArgs2[0],
150
227
  g = _stringToArgs2[1],
151
228
  b = _stringToArgs2[2],
152
229
  a = _stringToArgs2[3];
153
230
 
154
- var _ref2 = _colorConvert.default.rgb.hsl([r, g, b]) || [0, 0, 0],
155
- _ref3 = _slicedToArray(_ref2, 3),
156
- h = _ref3[0],
157
- s = _ref3[1],
158
- l = _ref3[2];
159
-
160
- return _ref4 = {
161
- value: color,
162
- title: title || _colorConvert.default.rgb.keyword([r, g, b]) || color,
163
- colorSpace: ColorSpace.RGBA
164
- }, _defineProperty(_ref4, ColorSpace.RGBA, color), _defineProperty(_ref4, ColorSpace.HSLA, "hsla(".concat(h, ", ").concat(s, "%, ").concat(l, "%, ").concat(a, ")")), _defineProperty(_ref4, ColorSpace.HEX, "#".concat(_colorConvert.default.rgb.hex([r, g, b]))), _ref4;
231
+ var _ref6 = _colorConvert.default.rgb.hsl([r, g, b]) || [0, 0, 0],
232
+ _ref7 = _slicedToArray(_ref6, 3),
233
+ h = _ref7[0],
234
+ s = _ref7[1],
235
+ l = _ref7[2];
236
+
237
+ return _ref8 = {
238
+ valid: valid,
239
+ value: value,
240
+ keyword: _colorConvert.default.rgb.keyword([r, g, b]),
241
+ colorSpace: ColorSpace.RGB
242
+ }, _defineProperty(_ref8, ColorSpace.RGB, value), _defineProperty(_ref8, ColorSpace.HSL, "hsla(".concat(h, ", ").concat(s, "%, ").concat(l, "%, ").concat(a, ")")), _defineProperty(_ref8, ColorSpace.HEX, "#".concat(_colorConvert.default.rgb.hex([r, g, b]).toLowerCase())), _ref8;
165
243
  }
166
244
 
167
- if (HSL_REGEXP.test(color)) {
168
- var _ref7;
245
+ if (HSL_REGEXP.test(value)) {
246
+ var _ref11;
169
247
 
170
- var _stringToArgs3 = stringToArgs(color),
248
+ var _stringToArgs3 = stringToArgs(value),
171
249
  _stringToArgs4 = _slicedToArray(_stringToArgs3, 4),
172
250
  _h = _stringToArgs4[0],
173
251
  _s2 = _stringToArgs4[1],
174
252
  _l = _stringToArgs4[2],
175
253
  _a = _stringToArgs4[3];
176
254
 
177
- var _ref5 = _colorConvert.default.hsl.rgb([_h, _s2, _l]) || [0, 0, 0],
178
- _ref6 = _slicedToArray(_ref5, 3),
179
- _r = _ref6[0],
180
- _g = _ref6[1],
181
- _b = _ref6[2];
182
-
183
- return _ref7 = {
184
- value: color,
185
- title: title || _colorConvert.default.rgb.keyword([_r, _g, _b]) || color,
186
- colorSpace: ColorSpace.HSLA
187
- }, _defineProperty(_ref7, ColorSpace.RGBA, "rgba(".concat(_r, ", ").concat(_g, ", ").concat(_b, ", ").concat(_a, ")")), _defineProperty(_ref7, ColorSpace.HSLA, color), _defineProperty(_ref7, ColorSpace.HEX, "#".concat(_colorConvert.default.hsl.hex([_h, _s2, _l]))), _ref7;
255
+ var _ref9 = _colorConvert.default.hsl.rgb([_h, _s2, _l]) || [0, 0, 0],
256
+ _ref10 = _slicedToArray(_ref9, 3),
257
+ _r = _ref10[0],
258
+ _g = _ref10[1],
259
+ _b = _ref10[2];
260
+
261
+ return _ref11 = {
262
+ valid: valid,
263
+ value: value,
264
+ keyword: _colorConvert.default.hsl.keyword([_h, _s2, _l]),
265
+ colorSpace: ColorSpace.HSL
266
+ }, _defineProperty(_ref11, ColorSpace.RGB, "rgba(".concat(_r, ", ").concat(_g, ", ").concat(_b, ", ").concat(_a, ")")), _defineProperty(_ref11, ColorSpace.HSL, value), _defineProperty(_ref11, ColorSpace.HEX, "#".concat(_colorConvert.default.hsl.hex([_h, _s2, _l]).toLowerCase())), _ref11;
188
267
  }
189
268
 
190
- var convertTo = HEX_REGEXP.test(color) ? _colorConvert.default.hex : _colorConvert.default.keyword;
191
- var rgb = convertTo.rgb(color.replace('#', ''));
269
+ var plain = value.replace('#', '');
270
+
271
+ var rgb = _colorConvert.default.keyword.rgb(plain) || _colorConvert.default.hex.rgb(plain);
272
+
273
+ var hsl = _colorConvert.default.rgb.hsl(rgb);
192
274
 
193
- var hsl = rgb && _colorConvert.default.rgb.hsl(rgb);
275
+ var mapped = value;
276
+ if (/[^#a-f0-9]/i.test(value)) mapped = plain;else if (HEX_REGEXP.test(value)) mapped = "#".concat(plain);
277
+
278
+ if (mapped.startsWith('#')) {
279
+ valid = HEX_REGEXP.test(mapped);
280
+ } else {
281
+ try {
282
+ _colorConvert.default.keyword.hex(mapped);
283
+ } catch (e) {
284
+ valid = false;
285
+ }
286
+ }
194
287
 
195
- return _ref8 = {
196
- value: color,
197
- title: title || _colorConvert.default.rgb.keyword(rgb) || color,
288
+ return _ref12 = {
289
+ valid: valid,
290
+ value: mapped,
291
+ keyword: _colorConvert.default.rgb.keyword(rgb),
198
292
  colorSpace: ColorSpace.HEX
199
- }, _defineProperty(_ref8, ColorSpace.RGBA, rgb && "rgba(".concat(rgb[0], ", ").concat(rgb[1], ", ").concat(rgb[2], ", 1)")), _defineProperty(_ref8, ColorSpace.HSLA, hsl && "hsla(".concat(hsl[0], ", ").concat(hsl[1], "%, ").concat(hsl[2], "%, 1)")), _defineProperty(_ref8, ColorSpace.HEX, color), _ref8;
293
+ }, _defineProperty(_ref12, ColorSpace.RGB, "rgba(".concat(rgb[0], ", ").concat(rgb[1], ", ").concat(rgb[2], ", 1)")), _defineProperty(_ref12, ColorSpace.HSL, "hsla(".concat(hsl[0], ", ").concat(hsl[1], "%, ").concat(hsl[2], "%, 1)")), _defineProperty(_ref12, ColorSpace.HEX, mapped), _ref12;
200
294
  };
201
295
 
202
- var Wrapper = _theming.styled.div({
203
- position: 'relative',
204
- maxWidth: 250
205
- });
296
+ var getRealValue = function getRealValue(value, color, colorSpace) {
297
+ if (!value || !(color !== null && color !== void 0 && color.valid)) return fallbackColor[colorSpace];
298
+ if (colorSpace !== ColorSpace.HEX) return (color === null || color === void 0 ? void 0 : color[colorSpace]) || fallbackColor[colorSpace];
206
299
 
207
- var PickerTooltip = (0, _theming.styled)(_lazyWithTooltip.WithTooltip)({
208
- position: 'absolute',
209
- zIndex: 1,
210
- top: 4,
211
- left: 4
212
- });
213
-
214
- var TooltipContent = _theming.styled.div({
215
- margin: 5,
216
- '.react-colorful__saturation': {
217
- borderRadius: '4px 4px 0 0'
218
- },
219
- '.react-colorful__hue': {
220
- boxShadow: 'inset 0 0 0 1px rgb(0 0 0 / 5%)'
221
- },
222
- '.react-colorful__last-control': {
223
- borderRadius: '0 0 4px 4px'
300
+ if (!color.hex.startsWith('#')) {
301
+ try {
302
+ return "#".concat(_colorConvert.default.keyword.hex(color.hex));
303
+ } catch (e) {
304
+ return fallbackColor.hex;
305
+ }
224
306
  }
225
- });
226
307
 
227
- var Swatches = _theming.styled.div({
228
- display: 'grid',
229
- gridTemplateColumns: 'repeat(9, 15px)',
230
- gap: 7,
231
- padding: 3,
232
- marginTop: 5,
233
- width: 200
234
- });
308
+ var short = color.hex.match(SHORTHEX_REGEXP);
309
+ if (!short) return HEX_REGEXP.test(color.hex) ? color.hex : fallbackColor.hex;
235
310
 
236
- var Swatch = _theming.styled.div(function (_ref9) {
237
- var theme = _ref9.theme,
238
- active = _ref9.active,
239
- round = _ref9.round;
240
- return {
241
- width: round ? 16 : 15,
242
- height: round ? 16 : 15,
243
- margin: round ? 4 : 0,
244
- boxShadow: active ? "".concat(theme.appBorderColor, " 0 0 0 1px inset, ").concat(theme.color.mediumdark, "55 0 0 0 4px") : "".concat(theme.appBorderColor, " 0 0 0 1px inset"),
245
- borderRadius: round ? 16 : theme.appBorderRadius,
246
- cursor: 'pointer'
247
- };
248
- });
311
+ var _short$1$split = short[1].split(''),
312
+ _short$1$split2 = _slicedToArray(_short$1$split, 3),
313
+ r = _short$1$split2[0],
314
+ g = _short$1$split2[1],
315
+ b = _short$1$split2[2];
249
316
 
250
- var Input = (0, _theming.styled)(_form.Form.Input)({
251
- width: '100%',
252
- paddingLeft: 30,
253
- paddingRight: 30
254
- });
255
- var ToggleIcon = (0, _theming.styled)(_icon.Icons)(function (_ref10) {
256
- var theme = _ref10.theme;
257
- return {
258
- position: 'absolute',
259
- zIndex: 1,
260
- top: 6,
261
- right: 7,
262
- width: 20,
263
- height: 20,
264
- padding: 4,
265
- cursor: 'pointer',
266
- color: theme.input.color
267
- };
268
- });
317
+ return "#".concat(r).concat(r).concat(g).concat(g).concat(b).concat(b);
318
+ };
269
319
 
270
- var SmartPicker = /*#__PURE__*/_react.default.memo(function (_ref11) {
271
- var value = _ref11.value,
272
- colorSpace = _ref11.colorSpace,
273
- props = _objectWithoutProperties(_ref11, ["value", "colorSpace"]);
274
-
275
- switch (colorSpace) {
276
- case ColorSpace.RGBA:
277
- return /*#__PURE__*/_react.default.createElement(_reactColorful.RgbaStringColorPicker, _extends({
278
- color: value
279
- }, props));
280
-
281
- case ColorSpace.HSLA:
282
- return /*#__PURE__*/_react.default.createElement(_reactColorful.HslaStringColorPicker, _extends({
283
- color: value
284
- }, props));
285
-
286
- default:
287
- return /*#__PURE__*/_react.default.createElement(_reactColorful.HexColorPicker, _extends({
288
- color: expandShorthand(value)
289
- }, props));
290
- }
291
- });
320
+ var useColorInput = function useColorInput(initialValue, onChange) {
321
+ var _useState = (0, _react.useState)(initialValue || ''),
322
+ _useState2 = _slicedToArray(_useState, 2),
323
+ value = _useState2[0],
324
+ setValue = _useState2[1];
292
325
 
293
- var ColorControl = function ColorControl(_ref12) {
294
- var name = _ref12.name,
295
- value = _ref12.value,
296
- _onChange = _ref12.onChange,
297
- onFocus = _ref12.onFocus,
298
- onBlur = _ref12.onBlur,
299
- presetColors = _ref12.presetColors,
300
- startOpen = _ref12.startOpen;
301
- var color = (0, _react.useMemo)(function () {
326
+ var _useState3 = (0, _react.useState)(function () {
302
327
  return parseValue(value);
303
- }, [value]);
304
- var update = (0, _react.useMemo)(function () {
305
- return (0, _throttle.default)(_onChange, 200);
328
+ }),
329
+ _useState4 = _slicedToArray(_useState3, 2),
330
+ color = _useState4[0],
331
+ setColor = _useState4[1];
332
+
333
+ var _useState5 = (0, _react.useState)((color === null || color === void 0 ? void 0 : color.colorSpace) || ColorSpace.HEX),
334
+ _useState6 = _slicedToArray(_useState5, 2),
335
+ colorSpace = _useState6[0],
336
+ setColorSpace = _useState6[1];
337
+
338
+ var realValue = (0, _react.useMemo)(function () {
339
+ return getRealValue(value, color, colorSpace).toLowerCase();
340
+ }, [value, color, colorSpace]);
341
+ var updateValue = (0, _react.useCallback)(function (update) {
342
+ var parsed = parseValue(update);
343
+ setValue((parsed === null || parsed === void 0 ? void 0 : parsed.value) || update || '');
344
+ if (!parsed) return;
345
+ setColor(parsed);
346
+ setColorSpace(parsed.colorSpace);
347
+ onChange(parsed.value);
306
348
  }, []);
307
-
308
- var _useState = (0, _react.useState)((color === null || color === void 0 ? void 0 : color.colorSpace) || ColorSpace.HEX),
309
- _useState2 = _slicedToArray(_useState, 2),
310
- colorSpace = _useState2[0],
311
- setColorSpace = _useState2[1];
312
-
313
- var currentValue = (color === null || color === void 0 ? void 0 : color[colorSpace]) || '';
314
- (0, _react.useEffect)(function () {
315
- if (color) setColorSpace(color.colorSpace);
316
- }, [color === null || color === void 0 ? void 0 : color.colorSpace]);
317
349
  var cycleColorSpace = (0, _react.useCallback)(function () {
318
350
  var next = COLOR_SPACES.indexOf(colorSpace) + 1;
319
351
  if (next >= COLOR_SPACES.length) next = 0;
320
352
  setColorSpace(COLOR_SPACES[next]);
321
- }, [colorSpace]);
353
+ var update = (color === null || color === void 0 ? void 0 : color[COLOR_SPACES[next]]) || '';
354
+ setValue(update);
355
+ onChange(update);
356
+ }, [color, colorSpace]);
357
+ return {
358
+ value: value,
359
+ realValue: realValue,
360
+ updateValue: updateValue,
361
+ color: color,
362
+ colorSpace: colorSpace,
363
+ cycleColorSpace: cycleColorSpace
364
+ };
365
+ };
322
366
 
323
- var _useState3 = (0, _react.useState)(function () {
324
- return (presetColors || []).map(parseValue).concat(color).filter(Boolean).slice(0, 27);
325
- }),
326
- _useState4 = _slicedToArray(_useState3, 2),
327
- presets = _useState4[0],
328
- setPresets = _useState4[1];
329
-
330
- var addPreset = (0, _react.useCallback)(function (preset) {
331
- setPresets(function (arr) {
332
- return preset !== null && preset !== void 0 && preset.rgb && arr.every(function (item) {
333
- return item.rgb !== preset.rgb;
334
- }) ? arr.concat(preset).slice(-27) : arr;
367
+ var id = function id(value) {
368
+ return value.replace(/\s*/, '').toLowerCase();
369
+ };
370
+
371
+ var usePresets = function usePresets(presetColors, currentColor, colorSpace) {
372
+ var _useState7 = (0, _react.useState)(currentColor !== null && currentColor !== void 0 && currentColor.valid ? [currentColor] : []),
373
+ _useState8 = _slicedToArray(_useState7, 2),
374
+ selectedColors = _useState8[0],
375
+ setSelectedColors = _useState8[1];
376
+
377
+ var presets = (0, _react.useMemo)(function () {
378
+ var initialPresets = (presetColors || []).map(function (preset) {
379
+ if (typeof preset === 'string') return parseValue(preset);
380
+ if (preset.title) return Object.assign({}, parseValue(preset.color), {
381
+ keyword: preset.title
382
+ });
383
+ return parseValue(preset.color);
335
384
  });
336
- }, []);
385
+ return initialPresets.concat(selectedColors).filter(Boolean).slice(-27);
386
+ }, [presetColors, selectedColors]);
387
+ var addPreset = (0, _react.useCallback)(function (color) {
388
+ if (!(color !== null && color !== void 0 && color.valid)) return;
389
+ if (presets.some(function (preset) {
390
+ return id(preset[colorSpace]) === id(color[colorSpace]);
391
+ })) return;
392
+ setSelectedColors(function (arr) {
393
+ return arr.concat(color);
394
+ });
395
+ }, [colorSpace, presets]);
396
+ return {
397
+ presets: presets,
398
+ addPreset: addPreset
399
+ };
400
+ };
401
+
402
+ var ColorControl = function ColorControl(_ref13) {
403
+ var initialValue = _ref13.value,
404
+ onChange = _ref13.onChange,
405
+ onFocus = _ref13.onFocus,
406
+ onBlur = _ref13.onBlur,
407
+ presetColors = _ref13.presetColors,
408
+ startOpen = _ref13.startOpen;
409
+
410
+ var _useColorInput = useColorInput(initialValue, (0, _throttle.default)(onChange, 200)),
411
+ value = _useColorInput.value,
412
+ realValue = _useColorInput.realValue,
413
+ updateValue = _useColorInput.updateValue,
414
+ color = _useColorInput.color,
415
+ colorSpace = _useColorInput.colorSpace,
416
+ cycleColorSpace = _useColorInput.cycleColorSpace;
417
+
418
+ var _usePresets = usePresets(presetColors, color, colorSpace),
419
+ presets = _usePresets.presets,
420
+ addPreset = _usePresets.addPreset;
421
+
422
+ var Picker = ColorPicker[colorSpace];
337
423
  return /*#__PURE__*/_react.default.createElement(Wrapper, null, /*#__PURE__*/_react.default.createElement(PickerTooltip, {
338
424
  trigger: "click",
339
425
  startOpen: startOpen,
340
426
  closeOnClick: true,
341
427
  onVisibilityChange: function onVisibilityChange() {
342
- return color && addPreset(color);
428
+ return addPreset(color);
343
429
  },
344
- tooltip: /*#__PURE__*/_react.default.createElement(TooltipContent, null, /*#__PURE__*/_react.default.createElement(SmartPicker, {
345
- value: currentValue,
346
- colorSpace: colorSpace,
347
- onChange: update,
430
+ tooltip: /*#__PURE__*/_react.default.createElement(TooltipContent, null, /*#__PURE__*/_react.default.createElement(Picker, {
431
+ color: realValue === 'transparent' ? '#000000' : realValue,
432
+ onChange: updateValue,
348
433
  onFocus: onFocus,
349
434
  onBlur: onBlur
350
435
  }), presets.length > 0 && /*#__PURE__*/_react.default.createElement(Swatches, null, presets.map(function (preset) {
351
436
  return /*#__PURE__*/_react.default.createElement(_lazyWithTooltip.WithTooltip, {
352
437
  key: preset.value,
353
438
  hasChrome: false,
354
- tooltip: /*#__PURE__*/_react.default.createElement(_TooltipNote.TooltipNote, {
355
- note: preset.title
439
+ tooltip: /*#__PURE__*/_react.default.createElement(Note, {
440
+ note: preset.keyword || preset.value
356
441
  })
357
442
  }, /*#__PURE__*/_react.default.createElement(Swatch, {
358
- style: {
359
- background: preset[colorSpace]
360
- },
361
- active: (color === null || color === void 0 ? void 0 : color.rgb) === preset.rgb,
443
+ value: preset[colorSpace],
444
+ active: color && id(preset[colorSpace]) === id(color[colorSpace]),
362
445
  onClick: function onClick() {
363
- return _onChange(preset[colorSpace]);
446
+ return updateValue(preset.value);
364
447
  }
365
448
  }));
366
449
  })))
367
450
  }, /*#__PURE__*/_react.default.createElement(Swatch, {
368
- round: true,
451
+ value: realValue,
369
452
  style: {
370
- background: currentValue || '#000000'
453
+ margin: 4
371
454
  }
372
455
  })), /*#__PURE__*/_react.default.createElement(Input, {
373
- value: currentValue,
456
+ value: value,
374
457
  onChange: function onChange(e) {
375
- return _onChange(e.target.value);
458
+ return updateValue(e.target.value);
376
459
  },
377
460
  onFocus: function onFocus(e) {
378
461
  return e.target.select();