@algolia/satellite 1.0.0-beta.128 → 1.0.0-beta.131

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 (79) hide show
  1. package/cjs/AutoComplete/components/AutoCompleteEmptyState.d.ts +2 -0
  2. package/cjs/Avatars/UserAvatar.js +14 -9
  3. package/cjs/Banner/Banner.d.ts +6 -3
  4. package/cjs/Banner/Banner.js +1 -1
  5. package/cjs/Banners/Alert/Alert.d.ts +6 -2
  6. package/cjs/Banners/Alert/Alert.js +1 -1
  7. package/cjs/Banners/Promote/Promote.d.ts +2 -2
  8. package/cjs/Banners/Promote/Promote.js +1 -1
  9. package/cjs/DatePicker/DatePicker/DatePicker.d.ts +7 -2
  10. package/cjs/DatePicker/DatePicker/DatePicker.js +12 -1
  11. package/cjs/DatePicker/DatePicker.tailwind.js +10 -2
  12. package/cjs/DatePicker/DateRangePicker/DateRangePicker.d.ts +7 -2
  13. package/cjs/DatePicker/DateRangePicker/DateRangePicker.js +18 -2
  14. package/cjs/DatePicker/components/Calendar.d.ts +8 -2
  15. package/cjs/DatePicker/components/Calendar.js +50 -3
  16. package/cjs/DatePicker/components/NavBar.d.ts +8 -1
  17. package/cjs/DatePicker/components/NavBar.js +50 -5
  18. package/cjs/Dropdown/DropdownButton.d.ts +1 -1
  19. package/cjs/EmptyState/types.d.ts +1 -1
  20. package/cjs/Input/Input.js +1 -1
  21. package/cjs/Input/Input.tailwind.js +0 -3
  22. package/cjs/Insert/Insert.d.ts +1 -0
  23. package/cjs/KeyboardKey/KeyboardKey.d.ts +6 -0
  24. package/cjs/KeyboardKey/KeyboardKey.js +50 -0
  25. package/cjs/KeyboardKey/KeyboardKey.tailwind.d.ts +5 -0
  26. package/cjs/KeyboardKey/KeyboardKey.tailwind.js +33 -0
  27. package/cjs/KeyboardKey/index.d.ts +2 -0
  28. package/cjs/KeyboardKey/index.js +26 -0
  29. package/cjs/Modal/Modal.js +24 -4
  30. package/cjs/ProgressSpinner/ProgressSpinner.js +4 -1
  31. package/cjs/RadioGroup/RadioGroup.js +1 -1
  32. package/cjs/Tag/Tag.d.ts +7 -3
  33. package/cjs/Tag/Tag.js +13 -11
  34. package/cjs/index.d.ts +1 -0
  35. package/cjs/index.js +14 -0
  36. package/cjs/styles/tailwind.config.js +1 -1
  37. package/cjs/utilities/utilities.tailwind.d.ts +2 -0
  38. package/cjs/utilities/utilities.tailwind.js +32 -0
  39. package/esm/AutoComplete/components/AutoCompleteEmptyState.d.ts +2 -0
  40. package/esm/Avatars/UserAvatar.js +15 -10
  41. package/esm/Banner/Banner.d.ts +6 -3
  42. package/esm/Banner/Banner.js +1 -1
  43. package/esm/Banners/Alert/Alert.d.ts +6 -2
  44. package/esm/Banners/Alert/Alert.js +1 -1
  45. package/esm/Banners/Promote/Promote.d.ts +2 -2
  46. package/esm/Banners/Promote/Promote.js +1 -1
  47. package/esm/DatePicker/DatePicker/DatePicker.d.ts +7 -2
  48. package/esm/DatePicker/DatePicker/DatePicker.js +13 -2
  49. package/esm/DatePicker/DatePicker.tailwind.js +10 -2
  50. package/esm/DatePicker/DateRangePicker/DateRangePicker.d.ts +7 -2
  51. package/esm/DatePicker/DateRangePicker/DateRangePicker.js +17 -3
  52. package/esm/DatePicker/components/Calendar.d.ts +8 -2
  53. package/esm/DatePicker/components/Calendar.js +43 -3
  54. package/esm/DatePicker/components/NavBar.d.ts +8 -1
  55. package/esm/DatePicker/components/NavBar.js +41 -5
  56. package/esm/Dropdown/DropdownButton.d.ts +1 -1
  57. package/esm/EmptyState/types.d.ts +1 -1
  58. package/esm/Input/Input.js +1 -1
  59. package/esm/Input/Input.tailwind.js +0 -3
  60. package/esm/Insert/Insert.d.ts +1 -0
  61. package/esm/KeyboardKey/KeyboardKey.d.ts +6 -0
  62. package/esm/KeyboardKey/KeyboardKey.js +28 -0
  63. package/esm/KeyboardKey/KeyboardKey.tailwind.d.ts +5 -0
  64. package/esm/KeyboardKey/KeyboardKey.tailwind.js +31 -0
  65. package/esm/KeyboardKey/index.d.ts +2 -0
  66. package/esm/KeyboardKey/index.js +2 -0
  67. package/esm/Modal/Modal.js +23 -5
  68. package/esm/ProgressSpinner/ProgressSpinner.js +4 -1
  69. package/esm/RadioGroup/RadioGroup.js +1 -1
  70. package/esm/Tag/Tag.d.ts +7 -3
  71. package/esm/Tag/Tag.js +13 -11
  72. package/esm/index.d.ts +1 -0
  73. package/esm/index.js +1 -0
  74. package/esm/styles/tailwind.config.js +1 -1
  75. package/esm/utilities/utilities.tailwind.d.ts +2 -0
  76. package/esm/utilities/utilities.tailwind.js +27 -0
  77. package/package.json +12 -7
  78. package/satellite.css +47 -6
  79. package/satellite.min.css +1 -1
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ // @ts-check
4
+
5
+ /**
6
+ * @type {import('../tailwind-types').TailwindPlugin}
7
+ */
8
+ var keyboardKeyPlugin = function keyboardKeyPlugin(_ref) {
9
+ var addComponents = _ref.addComponents,
10
+ theme = _ref.theme;
11
+ addComponents({
12
+ ".keyboard-key": {
13
+ borderRadius: theme("borderRadius.DEFAULT"),
14
+ height: 20,
15
+ minWidth: 20,
16
+ padding: "0 4px",
17
+ display: "inline-flex",
18
+ textAlign: "center",
19
+ alignItems: "center",
20
+ justifyContent: "center",
21
+ fontFamily: theme("fontFamily.mono"),
22
+ // Matches typo-subdued
23
+ color: theme("colors.grey.600"),
24
+ // Should match display-caption
25
+ fontSize: theme("fontSize.sm"),
26
+ lineHeight: theme("lineHeight.sm"),
27
+ background: "linear-gradient(134deg, #e6e7ec 0%, #ffffff 70%)",
28
+ boxShadow: "\n 2px 1px 4px -2px rgba(35, 38, 59, 0.24),\n inset -0.6px -0.6px 1px #dcdde7, inset 0.6px 0.6px 1px #ffffff\n "
29
+ }
30
+ });
31
+ };
32
+
33
+ module.exports = keyboardKeyPlugin;
@@ -0,0 +1,2 @@
1
+ export * from "./KeyboardKey";
2
+ export { KeyboardKey as default } from "./KeyboardKey";
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {};
7
+ Object.defineProperty(exports, "default", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _KeyboardKey.KeyboardKey;
11
+ }
12
+ });
13
+
14
+ var _KeyboardKey = require("./KeyboardKey");
15
+
16
+ Object.keys(_KeyboardKey).forEach(function (key) {
17
+ if (key === "default" || key === "__esModule") return;
18
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
19
+ if (key in exports && exports[key] === _KeyboardKey[key]) return;
20
+ Object.defineProperty(exports, key, {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _KeyboardKey[key];
24
+ }
25
+ });
26
+ });
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = exports.Modal = void 0;
11
11
 
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
12
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
15
 
14
16
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
@@ -35,6 +37,8 @@ var _Card = _interopRequireDefault(require("../Card"));
35
37
 
36
38
  var _Button = require("../Button");
37
39
 
40
+ var _uniqueId = _interopRequireDefault(require("../utils/uniqueId"));
41
+
38
42
  var _ModalFooter = _interopRequireDefault(require("./components/ModalFooter"));
39
43
 
40
44
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
@@ -43,6 +47,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
43
47
 
44
48
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; }
45
49
 
50
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
51
+
52
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
53
+
46
54
  var ModalAnimation = function ModalAnimation(props) {
47
55
  return (
48
56
  /*#__PURE__*/
@@ -95,6 +103,9 @@ var Modal = function Modal(_ref) {
95
103
  var dialogRef = (0, _react.useRef)(null);
96
104
  var mouseDownTargetRef = (0, _react.useRef)(null);
97
105
  var ModalContainer = animate ? ModalAnimation : ModalNoAnimation;
106
+ var modalTitleId = (0, _react.useMemo)(function () {
107
+ return (0, _uniqueId["default"])("modal-title");
108
+ }, []);
98
109
  (0, _useLockBodyScroll["default"])(open);
99
110
  (0, _useKeyPressEvent["default"])("Escape", function () {
100
111
  if (open) onDismiss();
@@ -126,15 +137,23 @@ var Modal = function Modal(_ref) {
126
137
  modalWrapperRef.removeEventListener("mousedown", onMouseDown);
127
138
  };
128
139
  }, [modalWrapperRef, onDismiss]);
140
+
141
+ var modalAccessibilityProps = _objectSpread({
142
+ role: "dialog"
143
+ }, title ? {
144
+ "aria-labelledby": modalTitleId
145
+ } : {
146
+ "aria-label": "Modal"
147
+ });
148
+
129
149
  return /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react["default"].createElement(ModalContainer, {
130
150
  "in": open
131
151
  }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
132
152
  className: (0, _classnames["default"])((0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["bg-grey-900 bg-opacity-30 z-modalOverlay inset-x-0 inset-y-0 fixed w-full h-full"]))))
133
- }), /*#__PURE__*/_react["default"].createElement("div", {
153
+ }), /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
134
154
  className: (0, _classnames["default"])((0, _satellitePrefixer["default"])(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["modal-container inset-x-0 inset-y-0 fixed w-full h-full p-4 overflow-x-hidden overflow-y-auto"]))), centerY && (0, _satellitePrefixer["default"])(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["flex items-center"])))),
135
- ref: setModalWrapperRef,
136
- role: "dialog"
137
- }, /*#__PURE__*/_react["default"].createElement(_Card["default"], {
155
+ ref: setModalWrapperRef
156
+ }, modalAccessibilityProps), /*#__PURE__*/_react["default"].createElement(_Card["default"], {
138
157
  ref: dialogRef,
139
158
  elevation: "500",
140
159
  className: (0, _classnames["default"])((0, _satellitePrefixer["default"])(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["my-6 mx-auto"]))), SIZE_CLASSNAMES[size], className),
@@ -142,6 +161,7 @@ var Modal = function Modal(_ref) {
142
161
  }, /*#__PURE__*/_react["default"].createElement("header", {
143
162
  className: (0, _satellitePrefixer["default"])(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n px-8 min-h-14\n flex items-center justify-between space-x-2\n ", "\n ", "\n "])), title ? "border-b border-grey-100" : "justify-end", !title && hideCloseIcon && "hidden")
144
163
  }, title && /*#__PURE__*/_react["default"].createElement("h2", {
164
+ id: modalTitleId,
145
165
  className: (0, _satellitePrefixer["default"])(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["flex-1 display-heading truncate"])))
146
166
  }, title), !hideCloseIcon && /*#__PURE__*/_react["default"].createElement(_Button.IconButton, {
147
167
  icon: _reactFeather.X,
@@ -41,7 +41,10 @@ var ProgressSpinner = function ProgressSpinner(_ref) {
41
41
  className: (0, _classnames["default"])((0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["progress-spinner"]))), align && ALIGN_CLASSNAMES[align], className),
42
42
  viewBox: "".concat(size / 2, " ").concat(size / 2, " ").concat(size, " ").concat(size),
43
43
  width: size,
44
- height: size
44
+ height: size,
45
+ role: "status",
46
+ "aria-busy": true,
47
+ "aria-live": "polite"
45
48
  }), /*#__PURE__*/_react["default"].createElement("title", null, "Loading spinner"), /*#__PURE__*/_react["default"].createElement("circle", {
46
49
  cx: size,
47
50
  cy: size,
@@ -47,7 +47,7 @@ var RadioGroupItem = function RadioGroupItem(_ref) {
47
47
  var checked = value === contextValue;
48
48
  disabled = contextDisabled || disabled;
49
49
  return /*#__PURE__*/_react["default"].createElement("label", {
50
- className: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n flex items-center justify-between\n min-h-10 px-4 py-2\n hover:bg-grey-100 ", "\n ", "\n ", ""])), disabled && "text-grey-300", disabled ? "cursor-not-allowed" : "cursor-pointer", textPosition === "right" && "flex-row-reverse")
50
+ className: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n flex items-center justify-between\n min-h-10 px-4 py-2\n ", "\n ", "\n ", ""])), disabled ? "text-grey-300" : "hover:bg-grey-100", disabled ? "cursor-not-allowed" : "cursor-pointer", textPosition === "right" && "flex-row-reverse")
51
51
  }, /*#__PURE__*/_react["default"].createElement("span", {
52
52
  className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["flex-1 truncate ", ""])), textPosition === "right" ? "ml-2" : "mr-2")
53
53
  }, children), /*#__PURE__*/_react["default"].createElement(_RadioButton["default"], {
package/cjs/Tag/Tag.d.ts CHANGED
@@ -1,8 +1,12 @@
1
1
  import React from "react";
2
- import { ColorVariant } from "../types";
2
+ import type { ColorVariant } from "../types";
3
+ export declare type TagVariants = ColorVariant | "pink";
3
4
  export interface TagProps extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement> {
4
- /** @default "grey" */
5
- variant?: ColorVariant;
5
+ /**
6
+ * The "pink" variant should only be used for **Algolia admin** related things.
7
+ * @default "grey"
8
+ * */
9
+ variant?: TagVariants;
6
10
  onDelete?: React.MouseEventHandler<HTMLElement>;
7
11
  }
8
12
  /**
package/cjs/Tag/Tag.js CHANGED
@@ -25,7 +25,7 @@ var _satellitePrefixer = _interopRequireDefault(require("../styles/helpers/satel
25
25
 
26
26
  var _excluded = ["children", "variant", "className", "onDelete"];
27
27
 
28
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15;
28
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
29
29
 
30
30
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
31
 
@@ -37,15 +37,17 @@ var VARIANT_CLASSNAMES = {
37
37
  blue: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["bg-blue-100 border-blue-200 text-blue-700"]))),
38
38
  green: (0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["bg-green-100 border-green-300 text-green-800"]))),
39
39
  orange: (0, _satellitePrefixer["default"])(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["bg-orange-100 border-orange-300 text-orange-800"]))),
40
- red: (0, _satellitePrefixer["default"])(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["bg-red-100 border-red-200 text-red-700"])))
40
+ red: (0, _satellitePrefixer["default"])(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["bg-red-100 border-red-200 text-red-700"]))),
41
+ pink: (0, _satellitePrefixer["default"])(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["bg-pink-100 border-pink-200 text-pink-700"])))
41
42
  };
42
43
  var BUTTON_CLOSE_VARIANT_CLASSNAMES = {
43
- accent: (0, _satellitePrefixer["default"])(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["border-accent-200 hover:bg-accent-200 focus:bg-accent-200"]))),
44
- grey: (0, _satellitePrefixer["default"])(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["border-grey-200 hover:bg-grey-200 focus:bg-grey-200"]))),
45
- blue: (0, _satellitePrefixer["default"])(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["border-blue-200 hover:bg-blue-200 focus:bg-blue-200"]))),
46
- green: (0, _satellitePrefixer["default"])(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["border-green-300 hover:bg-green-300 focus:bg-green-300"]))),
47
- orange: (0, _satellitePrefixer["default"])(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["border-orange-300 hover:bg-orange-300 focus:bg-orange-300"]))),
48
- red: (0, _satellitePrefixer["default"])(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["border-red-200 hover:bg-red-200 focus:bg-red-200"])))
44
+ accent: (0, _satellitePrefixer["default"])(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["border-accent-200 hover:bg-accent-200 focus:bg-accent-200"]))),
45
+ grey: (0, _satellitePrefixer["default"])(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["border-grey-200 hover:bg-grey-200 focus:bg-grey-200"]))),
46
+ blue: (0, _satellitePrefixer["default"])(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["border-blue-200 hover:bg-blue-200 focus:bg-blue-200"]))),
47
+ green: (0, _satellitePrefixer["default"])(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["border-green-300 hover:bg-green-300 focus:bg-green-300"]))),
48
+ orange: (0, _satellitePrefixer["default"])(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["border-orange-300 hover:bg-orange-300 focus:bg-orange-300"]))),
49
+ red: (0, _satellitePrefixer["default"])(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["border-red-200 hover:bg-red-200 focus:bg-red-200"]))),
50
+ pink: (0, _satellitePrefixer["default"])(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["border-pink-200 hover:bg-pink-200 focus:bg-pink-200"])))
49
51
  };
50
52
  /**
51
53
  * Use tags to visually label UI objects for quick recognition and navigation. (!) **Tags can be added or removed from an object by users**.
@@ -77,7 +79,7 @@ var Tag = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
77
79
  onDelete = _ref.onDelete,
78
80
  props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
79
81
  var title = typeof children === "string" ? children : "tag";
80
- var tagClassName = (0, _classnames["default"])((0, _satellitePrefixer["default"])(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["tag"]))), VARIANT_CLASSNAMES[variant], className);
82
+ var tagClassName = (0, _classnames["default"])((0, _satellitePrefixer["default"])(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["tag"]))), VARIANT_CLASSNAMES[variant], className);
81
83
  var editable = Boolean(onDelete);
82
84
 
83
85
  var handleDelete = function handleDelete(evt) {
@@ -93,9 +95,9 @@ var Tag = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
93
95
  "aria-label": title,
94
96
  ref: ref
95
97
  }), /*#__PURE__*/_react["default"].createElement("span", {
96
- className: (0, _satellitePrefixer["default"])(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["truncate flex-1"])))
98
+ className: (0, _satellitePrefixer["default"])(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2["default"])(["truncate flex-1"])))
97
99
  }, children), editable && /*#__PURE__*/_react["default"].createElement("button", {
98
- className: (0, _classnames["default"])((0, _satellitePrefixer["default"])(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["tag-close-button"]))), BUTTON_CLOSE_VARIANT_CLASSNAMES[variant]),
100
+ className: (0, _classnames["default"])((0, _satellitePrefixer["default"])(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteral2["default"])(["tag-close-button"]))), BUTTON_CLOSE_VARIANT_CLASSNAMES[variant]),
99
101
  type: "button",
100
102
  onClick: handleDelete,
101
103
  "aria-label": "Remove ".concat(title)
package/cjs/index.d.ts CHANGED
@@ -24,6 +24,7 @@ export * from "./FlexGrid";
24
24
  export * from "./HelpUnderline";
25
25
  export * from "./Input";
26
26
  export * from "./Insert";
27
+ export * from "./KeyboardKey";
27
28
  export * from "./Link";
28
29
  export * from "./Medallion";
29
30
  export * from "./Modal";
package/cjs/index.js CHANGED
@@ -352,6 +352,20 @@ Object.keys(_Insert).forEach(function (key) {
352
352
  });
353
353
  });
354
354
 
355
+ var _KeyboardKey = require("./KeyboardKey");
356
+
357
+ Object.keys(_KeyboardKey).forEach(function (key) {
358
+ if (key === "default" || key === "__esModule") return;
359
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
360
+ if (key in exports && exports[key] === _KeyboardKey[key]) return;
361
+ Object.defineProperty(exports, key, {
362
+ enumerable: true,
363
+ get: function get() {
364
+ return _KeyboardKey[key];
365
+ }
366
+ });
367
+ });
368
+
355
369
  var _Link = require("./Link");
356
370
 
357
371
  Object.keys(_Link).forEach(function (key) {
@@ -151,5 +151,5 @@ module.exports = {
151
151
  borderWidth: ["responsive", "first"],
152
152
  visibility: ["responsive", "group-hover"]
153
153
  },
154
- plugins: [require("./base.tailwind"), typography.plugin, require("../FlexGrid/FlexGrid.tailwind"), require("../AutoComplete/AutoComplete.tailwind"), require("../Button/Button.tailwind"), require("../Card/Card.tailwind"), require("../Checkbox/Checkbox.tailwind"), require("../EmptyState/EmptyState.tailwind"), require("../Flag/Flag.tailwind"), require("../HelpUnderline/HelpUnderline.tailwind"), require("../Input/Input.tailwind"), require("../InstantSearch/InstantSearch.tailwind"), require("../Medallion/Medallion.tailwind"), require("../Modal/Modal.tailwind"), require("../ProgressBar/ProgressBar.tailwind"), require("../ProgressSpinner/ProgressSpinner.tailwind"), require("../RadioGroup/RadioButton.tailwind"), require("../RangeSlider/RangeSlider.tailwind"), require("../ScrollIndicator/ScrollIndicator.tailwind"), require("../Select/Select.tailwind"), require("../Sidebar/Sidebar.tailwind"), require("../Switch/Switch.tailwind"), require("../Tabs/Tabs.tailwind"), require("../Tables/DataTable/DataTable.tailwind"), require("../Tables/Table/Table.tailwind"), require("../Tag/Tag.tailwind"), require("../TextArea/TextArea.tailwind"), require("../Toggle/Toggle.tailwind"), require("../Tooltip/Tooltip.tailwind"), require("../UserContent/UserContent.tailwind"), require("../DatePicker/DatePicker.tailwind")]
154
+ plugins: [require("./base.tailwind"), require("../utilities/utilities.tailwind"), typography.plugin, require("../FlexGrid/FlexGrid.tailwind"), require("../AutoComplete/AutoComplete.tailwind"), require("../Button/Button.tailwind"), require("../Card/Card.tailwind"), require("../Checkbox/Checkbox.tailwind"), require("../EmptyState/EmptyState.tailwind"), require("../Flag/Flag.tailwind"), require("../HelpUnderline/HelpUnderline.tailwind"), require("../Input/Input.tailwind"), require("../InstantSearch/InstantSearch.tailwind"), require("../KeyboardKey/KeyboardKey.tailwind"), require("../Medallion/Medallion.tailwind"), require("../Modal/Modal.tailwind"), require("../ProgressBar/ProgressBar.tailwind"), require("../ProgressSpinner/ProgressSpinner.tailwind"), require("../RadioGroup/RadioButton.tailwind"), require("../RangeSlider/RangeSlider.tailwind"), require("../ScrollIndicator/ScrollIndicator.tailwind"), require("../Select/Select.tailwind"), require("../Sidebar/Sidebar.tailwind"), require("../Switch/Switch.tailwind"), require("../Tabs/Tabs.tailwind"), require("../Tables/DataTable/DataTable.tailwind"), require("../Tables/Table/Table.tailwind"), require("../Tag/Tag.tailwind"), require("../TextArea/TextArea.tailwind"), require("../Toggle/Toggle.tailwind"), require("../Tooltip/Tooltip.tailwind"), require("../UserContent/UserContent.tailwind"), require("../DatePicker/DatePicker.tailwind")]
155
155
  };
@@ -0,0 +1,2 @@
1
+ declare const _exports: import('../tailwind-types').TailwindPlugin;
2
+ export = _exports;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
+
7
+ // @ts-check
8
+
9
+ /**
10
+ * @type {import('../tailwind-types').TailwindPlugin}
11
+ */
12
+ module.exports = function (_ref) {
13
+ var addUtilities = _ref.addUtilities;
14
+ addUtilities({
15
+ ".no-scrollbar": {
16
+ // for Firefox
17
+ "scrollbar-width": "none",
18
+ // for Internet Explorer, Edge
19
+ "-ms-overflow-style": "none",
20
+ // for Chrome, Safari, and Opera
21
+ "&::-webkit-scrollbar": {
22
+ display: "none",
23
+ width: 0
24
+ }
25
+ },
26
+ ".no-search-input-decoration": {
27
+ "&[type='search']": (0, _defineProperty2["default"])({}, "&::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration", {
28
+ display: "none"
29
+ })
30
+ }
31
+ });
32
+ };
@@ -4,7 +4,9 @@ import { MedallionVariant } from "../../Medallion";
4
4
  export interface AutoCompleteEmptyStateProps {
5
5
  icon?: IconComponentType;
6
6
  variant?: MedallionVariant;
7
+ /** Descriptive title for state */
7
8
  title: React.ReactNode;
9
+ /** Optional description to explain why the screen is empty or define next steps */
8
10
  description?: React.ReactNode;
9
11
  }
10
12
  export declare const AutoCompleteEmptyState: ({ icon, variant, title, description, }: AutoCompleteEmptyStateProps) => JSX.Element;
@@ -1,9 +1,9 @@
1
1
  import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
 
4
- var _templateObject, _templateObject2;
4
+ var _templateObject, _templateObject2, _templateObject3;
5
5
 
6
- import React, { useState } from "react";
6
+ import React, { useEffect, useState } from "react";
7
7
  import cx from "classnames";
8
8
  import stl from "../styles/helpers/satellitePrefixer";
9
9
  import { getUserInitials, getUserBackgroundClassName } from "./utils";
@@ -19,23 +19,28 @@ export var UserAvatar = function UserAvatar(_ref) {
19
19
 
20
20
  var _useState = useState(false),
21
21
  _useState2 = _slicedToArray(_useState, 2),
22
- failedToLoadAvatar = _useState2[0],
23
- setFailedToLoadAvatar = _useState2[1];
22
+ imageLoaded = _useState2[0],
23
+ setImageLoaded = _useState2[1];
24
24
 
25
25
  var initials = getUserInitials(user);
26
- var hasValidAvatar = user.avatar && !failedToLoadAvatar;
26
+ useEffect(function () {
27
+ return setImageLoaded(false);
28
+ }, [user.avatar]);
27
29
  return /*#__PURE__*/React.createElement("div", {
28
- className: cx(stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["relative overflow-hidden flex justify-center items-center rounded-full text-white uppercase"]))), !hasValidAvatar && getUserBackgroundClassName((_user$email = user.email) !== null && _user$email !== void 0 ? _user$email : "no-email"), className),
30
+ className: cx(stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["relative overflow-hidden flex justify-center items-center rounded-full text-white uppercase transition-colors"]))), imageLoaded ? stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["bg-white"]))) : getUserBackgroundClassName((_user$email = user.email) !== null && _user$email !== void 0 ? _user$email : "no-email"), className),
29
31
  style: {
30
32
  width: size,
31
33
  height: size
32
34
  }
33
- }, /*#__PURE__*/React.createElement("span", null, initials), hasValidAvatar && /*#__PURE__*/React.createElement("img", {
34
- className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["w-full absolute top-0 left-0"]))),
35
+ }, /*#__PURE__*/React.createElement("span", null, initials), /*#__PURE__*/React.createElement("img", {
36
+ className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n w-full absolute top-0 left-0\n transition-opacity ", "\n "])), imageLoaded ? "opacity-100" : "opacity-0"),
35
37
  src: user.avatar,
36
- alt: "".concat(user.name || user.email, "'s avatar"),
38
+ alt: imageLoaded ? "".concat(user.name || user.email, "'s avatar") : "",
39
+ onLoad: function onLoad() {
40
+ return setImageLoaded(true);
41
+ },
37
42
  onError: function onError() {
38
- return setFailedToLoadAvatar(true);
43
+ return setImageLoaded(false);
39
44
  }
40
45
  }));
41
46
  };
@@ -14,14 +14,17 @@ export interface BannerPropsBase {
14
14
  export interface BannerPageProps extends BannerPropsBase {
15
15
  /**
16
16
  * Usage context description
17
- * @default content
17
+ * @default page
18
18
  */
19
19
  usageContext?: "page";
20
20
  }
21
21
  export interface BannerDefaultProps extends BannerPropsBase {
22
- /** Usage context description */
22
+ /**
23
+ * Usage context description
24
+ * @default content
25
+ */
23
26
  usageContext?: "inline" | "content" | "section";
24
- /** Notification title */
27
+ /** Descriptive title for the `Banner` */
25
28
  title?: React.ReactNode;
26
29
  }
27
30
  export declare type BannerProps = BannerPageProps | BannerDefaultProps;
@@ -142,7 +142,7 @@ export var Banner = function Banner(props) {
142
142
  }, children)), onDismiss && /*#__PURE__*/React.createElement("span", {
143
143
  className: stl(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral(["absolute top-2 right-2"])))
144
144
  }, /*#__PURE__*/React.createElement(IconButton, {
145
- title: "Close banner",
145
+ title: "Close",
146
146
  variant: "subtle",
147
147
  size: "small",
148
148
  icon: X,
@@ -1,16 +1,20 @@
1
1
  import React, { FunctionComponent } from "react";
2
2
  import { ColorVariant, IconComponentType } from "../../types";
3
3
  export declare type AlertContextType = "page" | "section";
4
- declare type AlertColorVariant = Exclude<ColorVariant, "blue">;
4
+ export declare type AlertColorVariant = Exclude<ColorVariant, "blue">;
5
5
  export interface AlertProps {
6
6
  /** @ignore */
7
7
  className?: string;
8
8
  /** @ignore */
9
9
  style?: React.CSSProperties;
10
+ /** Descriptive title for `Alert` */
10
11
  title?: React.ReactNode;
11
12
  /** @default grey */
12
13
  variant?: AlertColorVariant;
13
- /** @default section */
14
+ /**
15
+ * Usage context description
16
+ * @default section
17
+ */
14
18
  usageContext?: AlertContextType;
15
19
  icon?: IconComponentType;
16
20
  onDismiss?(): void;
@@ -115,7 +115,7 @@ export var Alert = function Alert(_ref) {
115
115
  className: stl(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["absolute top-2 right-2"])))
116
116
  }, /*#__PURE__*/React.createElement(IconButton, {
117
117
  icon: X,
118
- title: "Close banner",
118
+ title: "Close",
119
119
  variant: "subtle",
120
120
  size: "small",
121
121
  onClick: function onClick(evt) {
@@ -10,9 +10,9 @@ interface WidePromoteProps {
10
10
  illustration?: React.ReactNode;
11
11
  }
12
12
  export declare type PromoteProps = {
13
- /** Product context for the banner (either a string or a React component) */
13
+ /** Product context for the banner */
14
14
  context?: React.ReactNode;
15
- /** Descriptive title for banner (either a string or a React component) */
15
+ /** Descriptive title for banner */
16
16
  title: React.ReactNode;
17
17
  /** Buttons */
18
18
  actions?: React.ReactNode;
@@ -83,7 +83,7 @@ export var Promote = function Promote(_ref) {
83
83
  className: stl(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["absolute top-2 right-2"])))
84
84
  }, /*#__PURE__*/React.createElement(IconButton, {
85
85
  icon: X,
86
- title: "Close banner",
86
+ title: "Close",
87
87
  variant: "subtle",
88
88
  size: "small",
89
89
  onClick: function onClick(evt) {
@@ -16,7 +16,7 @@ interface RenderTargetParams {
16
16
  toggle: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
17
17
  isOpen: boolean;
18
18
  }
19
- export interface DatePickerProps {
19
+ export declare type DatePickerProps = {
20
20
  calendarProps?: Pick<CalendarProps, "fromMonth" | "toMonth" | "disabledDays">;
21
21
  onOpen?: DisplayProps["onClick"];
22
22
  onChange?: (value: Date | null) => void;
@@ -30,6 +30,11 @@ export interface DatePickerProps {
30
30
  initialValue?: Date | null;
31
31
  buttonSize?: DisplayProps["size"];
32
32
  modalPlacement?: ModalProps["placement"];
33
- }
33
+ } & ({
34
+ editableYear?: false;
35
+ } | {
36
+ editableYear: true;
37
+ years?: number[];
38
+ });
34
39
  declare const DatePicker: FunctionComponent<DatePickerProps>;
35
40
  export default DatePicker;
@@ -4,7 +4,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
 
5
5
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
6
6
 
7
- import React, { useState } from "react";
7
+ import React, { useMemo, useState } from "react";
8
8
  import stl from "../../styles/helpers/satellitePrefixer";
9
9
  import Modal from "../components/Modal";
10
10
  import Footer from "../components/Footer";
@@ -77,6 +77,17 @@ var DatePicker = function DatePicker(props) {
77
77
  }
78
78
  };
79
79
 
80
+ var yearProps = useMemo(function () {
81
+ var _state$selected;
82
+
83
+ return props.editableYear ? {
84
+ editableYear: true,
85
+ initialDate: (_state$selected = state.selected) !== null && _state$selected !== void 0 ? _state$selected : undefined,
86
+ years: props.years
87
+ } : {
88
+ editableYear: false
89
+ };
90
+ }, [props]);
80
91
  return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", {
81
92
  ref: setTargetElement,
82
93
  className: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["inline-block"])))
@@ -108,7 +119,7 @@ var DatePicker = function DatePicker(props) {
108
119
  }, (_props$calendarProps = props === null || props === void 0 ? void 0 : props.calendarProps) !== null && _props$calendarProps !== void 0 ? _props$calendarProps : {}, {
109
120
  selectedDays: value !== null && value !== void 0 ? value : undefined,
110
121
  onDayClick: handleDayClick
111
- })), /*#__PURE__*/React.createElement(Footer, null, props.renderLeftFooter && /*#__PURE__*/React.createElement("div", null, props.renderLeftFooter({
122
+ }, yearProps)), /*#__PURE__*/React.createElement(Footer, null, props.renderLeftFooter && /*#__PURE__*/React.createElement("div", null, props.renderLeftFooter({
112
123
  state: state,
113
124
  dispatch: dispatch
114
125
  })), !props.renderRightPanel && /*#__PURE__*/React.createElement(FooterActions, {
@@ -24,8 +24,16 @@ var datePickerPlugin = function datePickerPlugin(_ref) {
24
24
  };
25
25
 
26
26
  addComponents((_addComponents = {
27
- ".DayPicker-Caption": {
28
- textAlign: "center"
27
+ ".DayPicker-Year": {
28
+ // ChevronDown svg from react-feather,
29
+ backgroundImage: 'url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>\')',
30
+ backgroundRepeat: "no-repeat",
31
+ backgroundPositionX: "100%",
32
+ backgroundPositionY: "5px",
33
+ paddingRight: "1rem"
34
+ },
35
+ ".DayPicker-Month": {
36
+ marginTop: "0rem"
29
37
  }
30
38
  }, _defineProperty(_addComponents, prefix(".date-picker, .date-range-picker"), {
31
39
  "& .DayPicker-Months": {
@@ -16,7 +16,7 @@ interface RenderTargetParams {
16
16
  toggle: () => void;
17
17
  isOpen: boolean;
18
18
  }
19
- export interface DateRangePickerProps {
19
+ export declare type DateRangePickerProps = {
20
20
  id?: string;
21
21
  range: DateRangePickerTimeRange | null;
22
22
  displayOnlyRanges?: DateRangePickerTimeRange[];
@@ -30,6 +30,11 @@ export interface DateRangePickerProps {
30
30
  renderRightPanel?: (args: RightSidePanelComponentArgs) => React.ReactNode;
31
31
  buttonSize?: DateRangePickerDisplayProps["buttonSize"];
32
32
  modalPlacement?: ModalProps["placement"];
33
- }
33
+ } & ({
34
+ editableYear?: false;
35
+ } | {
36
+ editableYear: true;
37
+ years?: number[];
38
+ });
34
39
  declare const DateRangePicker: FunctionComponent<DateRangePickerProps>;
35
40
  export default DateRangePicker;
@@ -1,10 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
5
 
5
6
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
6
7
 
7
- import React, { useState } from "react";
8
+ var _excluded = ["id", "range", "displayOnlyRanges", "calendarProps", "initialState", "stateReducer", "onAction", "validate", "renderTarget", "renderLeftFooter", "renderRightPanel", "buttonSize", "modalPlacement"];
9
+ import React, { useMemo, useState } from "react";
8
10
  import stl from "../../styles/helpers/satellitePrefixer";
9
11
  import Modal from "../components/Modal";
10
12
  import Footer from "../components/Footer";
@@ -39,7 +41,8 @@ var DateRangePicker = function DateRangePicker(_ref2) {
39
41
  renderLeftFooter = _ref2.renderLeftFooter,
40
42
  renderRightPanel = _ref2.renderRightPanel,
41
43
  buttonSize = _ref2.buttonSize,
42
- modalPlacement = _ref2.modalPlacement;
44
+ modalPlacement = _ref2.modalPlacement,
45
+ props = _objectWithoutProperties(_ref2, _excluded);
43
46
 
44
47
  var _useState = useState(null),
45
48
  _useState2 = _slicedToArray(_useState, 2),
@@ -147,6 +150,17 @@ var DateRangePicker = function DateRangePicker(_ref2) {
147
150
  }),
148
151
  hoveredTo: (_state$hovered = state.hovered) !== null && _state$hovered !== void 0 ? _state$hovered : undefined
149
152
  };
153
+ var yearProps = useMemo(function () {
154
+ var _ref3, _displayedRange$start3;
155
+
156
+ return props.editableYear ? {
157
+ editableYear: true,
158
+ initialDate: (_ref3 = (_displayedRange$start3 = displayedRange.start) !== null && _displayedRange$start3 !== void 0 ? _displayedRange$start3 : displayedRange.end) !== null && _ref3 !== void 0 ? _ref3 : undefined,
159
+ years: props.years
160
+ } : {
161
+ editableYear: false
162
+ };
163
+ }, [props, displayedRange]);
150
164
  return /*#__PURE__*/React.createElement("div", {
151
165
  className: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["date-range-picker"])))
152
166
  }, /*#__PURE__*/React.createElement("span", {
@@ -186,7 +200,7 @@ var DateRangePicker = function DateRangePicker(_ref2) {
186
200
  onDayClick: handleDayClick,
187
201
  onDayMouseEnter: handleMouseEnter,
188
202
  onDayMouseLeave: handleMouseLeave
189
- })), /*#__PURE__*/React.createElement(Footer, null, renderLeftFooter && /*#__PURE__*/React.createElement("div", null, renderLeftFooter({
203
+ }, yearProps)), /*#__PURE__*/React.createElement(Footer, null, renderLeftFooter && /*#__PURE__*/React.createElement("div", null, renderLeftFooter({
190
204
  state: state,
191
205
  dispatch: dispatch
192
206
  })), !renderRightPanel && /*#__PURE__*/React.createElement(FooterActions, {