@moda/om 15.10.0 → 15.11.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.
- package/CHANGELOG.md +28 -0
- package/README.md +1 -0
- package/dist/components/Popover/Popover.d.ts +1 -0
- package/dist/index.cjs.js +120 -43
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +121 -44
- package/dist/index.esm.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +17 -17
- package/src/components/PasswordInput/PasswordInput.scss +4 -0
- package/src/components/PasswordInput/PasswordInput.tsx +6 -1
- package/src/components/Popover/Popover.scss +24 -0
- package/src/components/Popover/Popover.stories.tsx +3 -1
- package/src/components/Popover/Popover.tsx +57 -6
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import 'focus-visible';
|
|
|
3
3
|
export declare const tokens: {
|
|
4
4
|
colors: {
|
|
5
5
|
all: {
|
|
6
|
+
coal: string;
|
|
6
7
|
ink: string;
|
|
7
8
|
cement: string;
|
|
8
9
|
fog: string;
|
|
@@ -60,6 +61,7 @@ export declare const tokens: {
|
|
|
60
61
|
"dark-fuchsia": string;
|
|
61
62
|
};
|
|
62
63
|
greyscale: {
|
|
64
|
+
coal: string;
|
|
63
65
|
ink: string;
|
|
64
66
|
cement: string;
|
|
65
67
|
fog: string;
|
package/dist/index.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React$2 from 'react';
|
|
2
|
-
import React__default, { useState, PureComponent, useRef,
|
|
2
|
+
import React__default, { useState, useEffect, PureComponent, useRef, Children, isValidElement, cloneElement, createContext, useContext, useCallback, useReducer, useMemo, forwardRef } from 'react';
|
|
3
3
|
import { Link } from 'react-router-dom';
|
|
4
4
|
import require$$1, { createPortal } from 'react-dom';
|
|
5
5
|
|
|
@@ -327,6 +327,7 @@ colors.colors = void 0; // THIS FILE IS AUTO-GENERATED. DO NOT EDIT.
|
|
|
327
327
|
|
|
328
328
|
colors.colors = {
|
|
329
329
|
"all": {
|
|
330
|
+
"coal": "rgb(0, 0, 0)",
|
|
330
331
|
"ink": "rgb(25, 26, 27)",
|
|
331
332
|
"cement": "rgb(101, 101, 102)",
|
|
332
333
|
"fog": "rgb(151, 152, 153)",
|
|
@@ -384,6 +385,7 @@ colors.colors = {
|
|
|
384
385
|
"dark-fuchsia": "rgb(180, 60, 160)"
|
|
385
386
|
},
|
|
386
387
|
"greyscale": {
|
|
388
|
+
"coal": "rgb(0, 0, 0)",
|
|
387
389
|
"ink": "rgb(25, 26, 27)",
|
|
388
390
|
"cement": "rgb(101, 101, 102)",
|
|
389
391
|
"fog": "rgb(151, 152, 153)",
|
|
@@ -837,7 +839,7 @@ cs.get.hsl = function (string) {
|
|
|
837
839
|
return null;
|
|
838
840
|
}
|
|
839
841
|
|
|
840
|
-
var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s
|
|
842
|
+
var hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?[\d\.]+)\s*)?\)$/;
|
|
841
843
|
var match = string.match(hsl);
|
|
842
844
|
|
|
843
845
|
if (match) {
|
|
@@ -938,12 +940,14 @@ var __assign$9 = commonjsGlobal && commonjsGlobal.__assign || function () {
|
|
|
938
940
|
return __assign$9.apply(this, arguments);
|
|
939
941
|
};
|
|
940
942
|
|
|
941
|
-
var __spreadArray = commonjsGlobal && commonjsGlobal.__spreadArray || function (to, from) {
|
|
942
|
-
for (var i = 0,
|
|
943
|
-
|
|
943
|
+
var __spreadArray = commonjsGlobal && commonjsGlobal.__spreadArray || function (to, from, pack) {
|
|
944
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
945
|
+
if (ar || !(i in from)) {
|
|
946
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
947
|
+
ar[i] = from[i];
|
|
948
|
+
}
|
|
944
949
|
}
|
|
945
|
-
|
|
946
|
-
return to;
|
|
950
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
947
951
|
};
|
|
948
952
|
|
|
949
953
|
Object.defineProperty(helpers, "__esModule", {
|
|
@@ -979,7 +983,7 @@ var color = function color(name, alpha) {
|
|
|
979
983
|
var _a;
|
|
980
984
|
|
|
981
985
|
var color = colors_1.colors.all[name];
|
|
982
|
-
return alpha != null ? colorString.to.rgb(__spreadArray(__spreadArray([], ((_a = colorString.get.rgb(color)) === null || _a === void 0 ? void 0 : _a.slice(0, 3)) || []), [alpha])) : color;
|
|
986
|
+
return alpha != null ? colorString.to.rgb(__spreadArray(__spreadArray([], ((_a = colorString.get.rgb(color)) === null || _a === void 0 ? void 0 : _a.slice(0, 3)) || [], true), [alpha], false)) : color;
|
|
983
987
|
};
|
|
984
988
|
|
|
985
989
|
helpers.color = color;
|
|
@@ -2957,21 +2961,32 @@ var FocusLock = /*#__PURE__*/React$2.forwardRef(function FocusLockUI(props, pare
|
|
|
2957
2961
|
onDeactivationCallback(observed.current);
|
|
2958
2962
|
}
|
|
2959
2963
|
}, [onDeactivationCallback]);
|
|
2964
|
+
useEffect(function () {
|
|
2965
|
+
if (!disabled) {
|
|
2966
|
+
// cleanup return focus on trap deactivation
|
|
2967
|
+
// sideEffect/returnFocus should happen by this time
|
|
2968
|
+
originalFocusedElement.current = null;
|
|
2969
|
+
}
|
|
2970
|
+
}, []);
|
|
2960
2971
|
var returnFocus = React$2.useCallback(function (allowDefer) {
|
|
2961
|
-
var
|
|
2972
|
+
var returnFocusTo = originalFocusedElement.current;
|
|
2962
2973
|
|
|
2963
|
-
if (
|
|
2964
|
-
var
|
|
2965
|
-
originalFocusedElement.current = null;
|
|
2974
|
+
if (returnFocusTo && returnFocusTo.focus) {
|
|
2975
|
+
var howToReturnFocus = typeof shouldReturnFocus === 'function' ? shouldReturnFocus(returnFocusTo) : shouldReturnFocus;
|
|
2966
2976
|
|
|
2967
|
-
if (
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
|
|
2977
|
+
if (Boolean(howToReturnFocus)) {
|
|
2978
|
+
var focusOptions = _typeof(howToReturnFocus) === 'object' ? howToReturnFocus : undefined;
|
|
2979
|
+
originalFocusedElement.current = null;
|
|
2980
|
+
|
|
2981
|
+
if (allowDefer) {
|
|
2982
|
+
// React might return focus after update
|
|
2983
|
+
// it's safer to defer the action
|
|
2984
|
+
Promise.resolve().then(function () {
|
|
2985
|
+
return returnFocusTo.focus(focusOptions);
|
|
2986
|
+
});
|
|
2987
|
+
} else {
|
|
2988
|
+
returnFocusTo.focus(focusOptions);
|
|
2989
|
+
}
|
|
2975
2990
|
}
|
|
2976
2991
|
}
|
|
2977
2992
|
}, [shouldReturnFocus]); // MEDIUM CALLBACKS
|
|
@@ -3315,7 +3330,13 @@ var getAllAffectedNodes = function getAllAffectedNodes(node) {
|
|
|
3315
3330
|
}, []);
|
|
3316
3331
|
};
|
|
3317
3332
|
|
|
3318
|
-
var isElementHidden = function isElementHidden(
|
|
3333
|
+
var isElementHidden = function isElementHidden(node) {
|
|
3334
|
+
if (node.nodeType !== Node.ELEMENT_NODE) {
|
|
3335
|
+
return false;
|
|
3336
|
+
}
|
|
3337
|
+
|
|
3338
|
+
var computedStyle = window.getComputedStyle(node, null);
|
|
3339
|
+
|
|
3319
3340
|
if (!computedStyle || !computedStyle.getPropertyValue) {
|
|
3320
3341
|
return false;
|
|
3321
3342
|
}
|
|
@@ -3324,7 +3345,7 @@ var isElementHidden = function isElementHidden(computedStyle) {
|
|
|
3324
3345
|
};
|
|
3325
3346
|
|
|
3326
3347
|
var isVisibleUncached = function isVisibleUncached(node, checkParent) {
|
|
3327
|
-
return !node || node === document || node && node.nodeType === Node.DOCUMENT_NODE || !isElementHidden(
|
|
3348
|
+
return !node || node === document || node && node.nodeType === Node.DOCUMENT_NODE || !isElementHidden(node) && checkParent(node.parentNode && node.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? node.parentNode.host : node.parentNode);
|
|
3328
3349
|
};
|
|
3329
3350
|
|
|
3330
3351
|
var isVisibleCached = function isVisibleCached(visibilityCache, node) {
|
|
@@ -3903,13 +3924,13 @@ var onWindowBlur = function onWindowBlur() {
|
|
|
3903
3924
|
};
|
|
3904
3925
|
|
|
3905
3926
|
var attachHandler = function attachHandler() {
|
|
3906
|
-
document.addEventListener('focusin', onTrap
|
|
3927
|
+
document.addEventListener('focusin', onTrap);
|
|
3907
3928
|
document.addEventListener('focusout', onBlur);
|
|
3908
3929
|
window.addEventListener('blur', onWindowBlur);
|
|
3909
3930
|
};
|
|
3910
3931
|
|
|
3911
3932
|
var detachHandler = function detachHandler() {
|
|
3912
|
-
document.removeEventListener('focusin', onTrap
|
|
3933
|
+
document.removeEventListener('focusin', onTrap);
|
|
3913
3934
|
document.removeEventListener('focusout', onBlur);
|
|
3914
3935
|
window.removeEventListener('blur', onWindowBlur);
|
|
3915
3936
|
};
|
|
@@ -4150,6 +4171,11 @@ var locationCouldBeScrolled = function locationCouldBeScrolled(axis, node) {
|
|
|
4150
4171
|
var current = node;
|
|
4151
4172
|
|
|
4152
4173
|
do {
|
|
4174
|
+
// Skip over shadow root
|
|
4175
|
+
if (typeof ShadowRoot !== "undefined" && current instanceof ShadowRoot) {
|
|
4176
|
+
current = current.host;
|
|
4177
|
+
}
|
|
4178
|
+
|
|
4153
4179
|
var isScrollable = elementCouldBeScrolled(axis, current);
|
|
4154
4180
|
|
|
4155
4181
|
if (isScrollable) {
|
|
@@ -8155,7 +8181,7 @@ var Exit20 = function Exit20(_a) {
|
|
|
8155
8181
|
}, /*#__PURE__*/React$2.createElement("g", {
|
|
8156
8182
|
id: "Exit_20_svg__Exit/20"
|
|
8157
8183
|
}, /*#__PURE__*/React$2.createElement("path", {
|
|
8158
|
-
id: "
|
|
8184
|
+
id: "Exit_20_svg__Combined Shape",
|
|
8159
8185
|
fillRule: "evenodd",
|
|
8160
8186
|
clipRule: "evenodd",
|
|
8161
8187
|
d: "M9.29293 10L2.64648 3.35356L3.35359 2.64645L10 9.2929L16.6465 2.64645L17.3536 3.35356L10.7071 10L17.3536 16.6465L16.6465 17.3536L10 10.7071L3.35359 17.3536L2.64648 16.6465L9.29293 10Z"
|
|
@@ -8574,30 +8600,30 @@ var useClickOutside = function useClickOutside(ref, onClickOutside) {
|
|
|
8574
8600
|
});
|
|
8575
8601
|
};
|
|
8576
8602
|
|
|
8577
|
-
var Mode;
|
|
8603
|
+
var Mode$1;
|
|
8578
8604
|
|
|
8579
8605
|
(function (Mode) {
|
|
8580
8606
|
Mode[Mode["Resting"] = 0] = "Resting";
|
|
8581
8607
|
Mode[Mode["Open"] = 1] = "Open";
|
|
8582
|
-
})(Mode || (Mode = {}));
|
|
8608
|
+
})(Mode$1 || (Mode$1 = {}));
|
|
8583
8609
|
|
|
8584
8610
|
var reducer = function reducer(state, action) {
|
|
8585
8611
|
switch (action.type) {
|
|
8586
8612
|
case 'OPEN':
|
|
8587
8613
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
8588
|
-
mode: Mode.Open
|
|
8614
|
+
mode: Mode$1.Open
|
|
8589
8615
|
});
|
|
8590
8616
|
|
|
8591
8617
|
case 'CLOSE':
|
|
8592
8618
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
8593
|
-
mode: Mode.Resting
|
|
8619
|
+
mode: Mode$1.Resting
|
|
8594
8620
|
});
|
|
8595
8621
|
|
|
8596
8622
|
case 'SELECT':
|
|
8597
8623
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
8598
8624
|
value: action.payload.value,
|
|
8599
8625
|
focused: undefined,
|
|
8600
|
-
mode: Mode.Resting
|
|
8626
|
+
mode: Mode$1.Resting
|
|
8601
8627
|
});
|
|
8602
8628
|
|
|
8603
8629
|
case 'FOCUS':
|
|
@@ -8616,7 +8642,7 @@ var useSelect = function useSelect(_ref) {
|
|
|
8616
8642
|
var _useReducer = useReducer(reducer, {
|
|
8617
8643
|
value: initialValue,
|
|
8618
8644
|
focused: _typeof(initialValue) == 'object' ? initialValue === null || initialValue === void 0 ? void 0 : initialValue[0] : initialValue,
|
|
8619
|
-
mode: Mode.Resting
|
|
8645
|
+
mode: Mode$1.Resting
|
|
8620
8646
|
}),
|
|
8621
8647
|
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
8622
8648
|
state = _useReducer2[0],
|
|
@@ -8658,7 +8684,7 @@ var useSelect = function useSelect(_ref) {
|
|
|
8658
8684
|
return {
|
|
8659
8685
|
state: state,
|
|
8660
8686
|
dispatch: dispatch,
|
|
8661
|
-
Mode: Mode,
|
|
8687
|
+
Mode: Mode$1,
|
|
8662
8688
|
selectRef: selectRef
|
|
8663
8689
|
};
|
|
8664
8690
|
};
|
|
@@ -11226,8 +11252,18 @@ var Paginator = function Paginator(_ref) {
|
|
|
11226
11252
|
})));
|
|
11227
11253
|
};
|
|
11228
11254
|
|
|
11229
|
-
var _excluded$b = ["className", "children", "content", "open", "anchor", "zIndex"];
|
|
11255
|
+
var _excluded$b = ["className", "children", "content", "open", "anchor", "zIndex", "autoPreview"];
|
|
11230
11256
|
var POPOVER_MOUSEOUT_DELAY_MS = 200;
|
|
11257
|
+
var Mode;
|
|
11258
|
+
|
|
11259
|
+
(function (Mode) {
|
|
11260
|
+
Mode["Open"] = "open";
|
|
11261
|
+
Mode["Closing"] = "closing";
|
|
11262
|
+
Mode["AutoOpening"] = "autoOpening";
|
|
11263
|
+
Mode["AutoOpen"] = "autoOpen";
|
|
11264
|
+
Mode["Closed"] = "closed";
|
|
11265
|
+
})(Mode || (Mode = {}));
|
|
11266
|
+
|
|
11231
11267
|
var Popover = function Popover(_ref) {
|
|
11232
11268
|
var className = _ref.className,
|
|
11233
11269
|
children = _ref.children,
|
|
@@ -11237,37 +11273,78 @@ var Popover = function Popover(_ref) {
|
|
|
11237
11273
|
_ref$anchor = _ref.anchor,
|
|
11238
11274
|
anchor = _ref$anchor === void 0 ? 'topLeft' : _ref$anchor,
|
|
11239
11275
|
zIndex = _ref.zIndex,
|
|
11276
|
+
_ref$autoPreview = _ref.autoPreview,
|
|
11277
|
+
autoPreview = _ref$autoPreview === void 0 ? false : _ref$autoPreview,
|
|
11240
11278
|
rest = _objectWithoutProperties(_ref, _excluded$b);
|
|
11241
11279
|
|
|
11242
|
-
var _useState = useState(
|
|
11280
|
+
var _useState = useState(function () {
|
|
11281
|
+
if (open) {
|
|
11282
|
+
return Mode.Open;
|
|
11283
|
+
}
|
|
11284
|
+
|
|
11285
|
+
if (autoPreview) {
|
|
11286
|
+
return Mode.AutoOpening;
|
|
11287
|
+
}
|
|
11288
|
+
|
|
11289
|
+
return Mode.Closed;
|
|
11290
|
+
}),
|
|
11243
11291
|
_useState2 = _slicedToArray(_useState, 2),
|
|
11244
|
-
|
|
11245
|
-
|
|
11292
|
+
mode = _useState2[0],
|
|
11293
|
+
setMode = _useState2[1];
|
|
11246
11294
|
|
|
11247
11295
|
var timeout = useRef(null);
|
|
11248
11296
|
var handleMouseEnter = useCallback(function () {
|
|
11249
11297
|
if (!open) {
|
|
11250
11298
|
timeout.current && clearTimeout(timeout.current);
|
|
11251
|
-
|
|
11299
|
+
setMode(Mode.Open);
|
|
11252
11300
|
}
|
|
11253
11301
|
}, [open]);
|
|
11254
11302
|
var handleMouseLeave = useCallback(function () {
|
|
11255
11303
|
if (!open) {
|
|
11256
11304
|
timeout.current = setTimeout(function () {
|
|
11257
|
-
return
|
|
11305
|
+
return setMode(Mode.Closing);
|
|
11258
11306
|
}, POPOVER_MOUSEOUT_DELAY_MS);
|
|
11259
11307
|
}
|
|
11260
11308
|
}, [open]);
|
|
11261
11309
|
useEffect(function () {
|
|
11262
|
-
|
|
11263
|
-
|
|
11310
|
+
if (mode !== Mode.Closing) return;
|
|
11311
|
+
var closingTimeout = setTimeout(function () {
|
|
11312
|
+
return setMode(Mode.Closed);
|
|
11313
|
+
}, 750);
|
|
11314
|
+
return function () {
|
|
11315
|
+
return clearTimeout(closingTimeout);
|
|
11316
|
+
};
|
|
11317
|
+
}, [mode]);
|
|
11318
|
+
useEffect(function () {
|
|
11319
|
+
if (mode !== Mode.AutoOpening) return;
|
|
11320
|
+
var openingTimeout = setTimeout(function () {
|
|
11321
|
+
return setMode(Mode.AutoOpen);
|
|
11322
|
+
}, 1000);
|
|
11323
|
+
return function () {
|
|
11324
|
+
return clearTimeout(openingTimeout);
|
|
11325
|
+
};
|
|
11326
|
+
}, [mode]);
|
|
11327
|
+
useEffect(function () {
|
|
11328
|
+
if (mode !== Mode.AutoOpen) return;
|
|
11329
|
+
var stayingTimeout = setTimeout(function () {
|
|
11330
|
+
return setMode(Mode.Closing);
|
|
11331
|
+
}, 5000);
|
|
11332
|
+
return function () {
|
|
11333
|
+
return clearTimeout(stayingTimeout);
|
|
11334
|
+
};
|
|
11335
|
+
}, [mode]);
|
|
11336
|
+
var isOpen = mode === Mode.AutoOpen || mode === Mode.Open || mode === Mode.Closing;
|
|
11264
11337
|
return /*#__PURE__*/React__default.createElement("div", _extends$3({
|
|
11265
11338
|
className: classNames("Popover Popover--anchor-".concat(anchor), className),
|
|
11266
11339
|
onMouseEnter: handleMouseEnter,
|
|
11267
11340
|
onMouseLeave: handleMouseLeave
|
|
11268
11341
|
}, rest), /*#__PURE__*/React__default.createElement("span", {
|
|
11269
11342
|
className: "Popover__trigger"
|
|
11270
|
-
}, isOpen && /*#__PURE__*/React__default.createElement(
|
|
11343
|
+
}, isOpen && /*#__PURE__*/React__default.createElement("div", {
|
|
11344
|
+
className: classNames('Popover__box', {
|
|
11345
|
+
'Popover__box--closing': mode === Mode.Closing
|
|
11346
|
+
})
|
|
11347
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
11271
11348
|
className: "Popover__caret",
|
|
11272
11349
|
style: {
|
|
11273
11350
|
zIndex: zIndex != null ? zIndex + 1 : undefined
|
|
@@ -11571,10 +11648,10 @@ var PasswordInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
11571
11648
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
11572
11649
|
className: "PasswordInput"
|
|
11573
11650
|
}, /*#__PURE__*/React__default.createElement(Field, _extends$3({
|
|
11651
|
+
className: "PasswordInput__editor",
|
|
11652
|
+
ref: ref,
|
|
11574
11653
|
type: passwordShown ? 'text' : 'password'
|
|
11575
|
-
}, rest, {
|
|
11576
|
-
ref: ref
|
|
11577
|
-
})), /*#__PURE__*/React__default.createElement(Clickable, {
|
|
11654
|
+
}, rest)), /*#__PURE__*/React__default.createElement(Clickable, {
|
|
11578
11655
|
className: "PasswordInput__password-action",
|
|
11579
11656
|
onClick: togglePasswordVisiblity,
|
|
11580
11657
|
type: "button"
|