@algolia/satellite 1.0.0-beta.121 → 1.0.0-beta.125

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 (102) hide show
  1. package/cjs/Button/styles.d.ts +1 -1
  2. package/cjs/Checkbox/Checkbox.js +1 -0
  3. package/cjs/DatePicker/DatePicker.tailwind.js +7 -2
  4. package/cjs/Dropdown/DropdownButton.d.ts +1 -1
  5. package/cjs/Pagination/DotPagination/DotPagination.d.ts +2 -1
  6. package/cjs/Pagination/DotPagination/DotPagination.js +4 -2
  7. package/cjs/Pagination/Pagination/Pagination.js +3 -0
  8. package/cjs/ProgressSpinner/ProgressSpinner.js +1 -1
  9. package/cjs/Tables/DataTable/DataTable.d.ts +41 -0
  10. package/cjs/Tables/DataTable/DataTable.js +275 -0
  11. package/cjs/Tables/DataTable/DataTable.tailwind.d.ts +5 -0
  12. package/cjs/Tables/DataTable/DataTable.tailwind.js +23 -0
  13. package/cjs/Tables/DataTable/components/Body.d.ts +14 -0
  14. package/cjs/Tables/DataTable/components/Body.js +125 -0
  15. package/cjs/Tables/DataTable/components/Footer.d.ts +8 -0
  16. package/cjs/Tables/DataTable/components/Footer.js +81 -0
  17. package/cjs/Tables/DataTable/components/Header.d.ts +10 -0
  18. package/cjs/Tables/DataTable/components/Header.js +44 -0
  19. package/cjs/Tables/DataTable/components/HeaderCell.d.ts +11 -0
  20. package/cjs/Tables/DataTable/components/HeaderCell.js +61 -0
  21. package/cjs/Tables/DataTable/components/Loader.d.ts +6 -0
  22. package/cjs/Tables/DataTable/components/Loader.js +63 -0
  23. package/cjs/Tables/DataTable/components/index.d.ts +5 -0
  24. package/cjs/Tables/DataTable/components/index.js +70 -0
  25. package/cjs/Tables/DataTable/index.d.ts +3 -0
  26. package/cjs/Tables/DataTable/index.js +46 -0
  27. package/cjs/Tables/DataTable/types.d.ts +49 -0
  28. package/cjs/Tables/DataTable/types.js +5 -0
  29. package/cjs/Tables/DataTable/utils.d.ts +4 -0
  30. package/cjs/Tables/DataTable/utils.js +32 -0
  31. package/cjs/{Table → Tables/Table}/Table.d.ts +1 -1
  32. package/cjs/{Table → Tables/Table}/Table.js +8 -6
  33. package/cjs/Tables/Table/Table.tailwind.d.ts +5 -0
  34. package/cjs/{Table → Tables/Table}/Table.tailwind.js +6 -20
  35. package/cjs/Tables/Table/components/Footer.d.ts +8 -0
  36. package/cjs/Tables/Table/components/Footer.js +35 -0
  37. package/cjs/Tables/Table/index.d.ts +2 -0
  38. package/cjs/{Table → Tables/Table}/index.js +7 -5
  39. package/cjs/Tables/index.d.ts +3 -0
  40. package/cjs/Tables/index.js +46 -0
  41. package/cjs/index.d.ts +1 -1
  42. package/cjs/index.js +4 -4
  43. package/cjs/styles/tailwind.config.js +1 -1
  44. package/cjs/utils/index.d.ts +1 -0
  45. package/cjs/utils/index.js +9 -1
  46. package/cjs/utils/toSentenceCase.d.ts +3 -0
  47. package/cjs/utils/toSentenceCase.js +21 -0
  48. package/esm/Button/styles.d.ts +1 -1
  49. package/esm/Checkbox/Checkbox.js +1 -0
  50. package/esm/DatePicker/DatePicker.tailwind.js +7 -2
  51. package/esm/Dropdown/DropdownButton.d.ts +1 -1
  52. package/esm/Pagination/DotPagination/DotPagination.d.ts +2 -1
  53. package/esm/Pagination/DotPagination/DotPagination.js +4 -2
  54. package/esm/Pagination/Pagination/Pagination.js +3 -0
  55. package/esm/ProgressSpinner/ProgressSpinner.js +1 -1
  56. package/esm/Tables/DataTable/DataTable.d.ts +41 -0
  57. package/esm/Tables/DataTable/DataTable.js +243 -0
  58. package/esm/Tables/DataTable/DataTable.tailwind.d.ts +5 -0
  59. package/esm/Tables/DataTable/DataTable.tailwind.js +21 -0
  60. package/esm/Tables/DataTable/components/Body.d.ts +14 -0
  61. package/esm/Tables/DataTable/components/Body.js +106 -0
  62. package/esm/Tables/DataTable/components/Footer.d.ts +8 -0
  63. package/esm/Tables/DataTable/components/Footer.js +60 -0
  64. package/esm/Tables/DataTable/components/Header.d.ts +10 -0
  65. package/esm/Tables/DataTable/components/Header.js +29 -0
  66. package/esm/Tables/DataTable/components/HeaderCell.d.ts +11 -0
  67. package/esm/Tables/DataTable/components/HeaderCell.js +42 -0
  68. package/esm/Tables/DataTable/components/Loader.d.ts +6 -0
  69. package/esm/Tables/DataTable/components/Loader.js +40 -0
  70. package/esm/Tables/DataTable/components/index.d.ts +5 -0
  71. package/esm/Tables/DataTable/components/index.js +5 -0
  72. package/esm/Tables/DataTable/index.d.ts +3 -0
  73. package/esm/Tables/DataTable/index.js +3 -0
  74. package/esm/Tables/DataTable/types.d.ts +49 -0
  75. package/esm/Tables/DataTable/types.js +1 -0
  76. package/esm/Tables/DataTable/utils.d.ts +4 -0
  77. package/esm/Tables/DataTable/utils.js +14 -0
  78. package/esm/{Table → Tables/Table}/Table.d.ts +1 -1
  79. package/esm/{Table → Tables/Table}/Table.js +7 -6
  80. package/esm/Tables/Table/Table.tailwind.d.ts +5 -0
  81. package/esm/{Table → Tables/Table}/Table.tailwind.js +6 -20
  82. package/esm/Tables/Table/components/Footer.d.ts +8 -0
  83. package/esm/Tables/Table/components/Footer.js +20 -0
  84. package/esm/Tables/Table/index.d.ts +2 -0
  85. package/esm/Tables/Table/index.js +2 -0
  86. package/esm/Tables/index.d.ts +3 -0
  87. package/esm/Tables/index.js +3 -0
  88. package/esm/index.d.ts +1 -1
  89. package/esm/index.js +1 -1
  90. package/esm/styles/tailwind.config.js +1 -1
  91. package/esm/utils/index.d.ts +1 -0
  92. package/esm/utils/index.js +2 -1
  93. package/esm/utils/toSentenceCase.d.ts +3 -0
  94. package/esm/utils/toSentenceCase.js +9 -0
  95. package/package.json +1 -1
  96. package/satellite.css +18 -18
  97. package/satellite.min.css +1 -1
  98. package/cjs/Table/Table.tailwind.d.ts +0 -5
  99. package/cjs/Table/index.d.ts +0 -3
  100. package/esm/Table/Table.tailwind.d.ts +0 -5
  101. package/esm/Table/index.d.ts +0 -3
  102. package/esm/Table/index.js +0 -3
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.Footer = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
16
+ var _satellitePrefixer = _interopRequireDefault(require("../../../styles/helpers/satellitePrefixer"));
17
+
18
+ var _templateObject, _templateObject2, _templateObject3;
19
+
20
+ var Footer = function Footer(_ref) {
21
+ var _ref$size = _ref.size,
22
+ size = _ref$size === void 0 ? "default" : _ref$size,
23
+ children = _ref.children;
24
+ var SIZE_CLASSNAMES = {
25
+ "default": (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["py-3 px-4"]))),
26
+ small: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["py-1 px-4"])))
27
+ };
28
+ return /*#__PURE__*/_react["default"].createElement("div", {
29
+ className: (0, _classnames["default"])((0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["bg-grey-100 border-t border-grey-200 text-grey-600 flex items-center justify-center"]))), SIZE_CLASSNAMES[size])
30
+ }, children);
31
+ };
32
+
33
+ exports.Footer = Footer;
34
+ var _default = Footer;
35
+ exports["default"] = _default;
@@ -0,0 +1,2 @@
1
+ export * from "./Table";
2
+ export { default } from "./Table";
@@ -6,7 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  var _exportNames = {};
9
- exports["default"] = void 0;
9
+ Object.defineProperty(exports, "default", {
10
+ enumerable: true,
11
+ get: function get() {
12
+ return _Table["default"];
13
+ }
14
+ });
10
15
 
11
16
  var _Table = _interopRequireWildcard(require("./Table"));
12
17
 
@@ -24,7 +29,4 @@ Object.keys(_Table).forEach(function (key) {
24
29
 
25
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); }
26
31
 
27
- 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; }
28
-
29
- var _default = _Table["default"];
30
- exports["default"] = _default;
32
+ 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; }
@@ -0,0 +1,3 @@
1
+ export * from "./Table";
2
+ export * from "./DataTable";
3
+ export { default } from "./Table";
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ var _exportNames = {};
9
+ Object.defineProperty(exports, "default", {
10
+ enumerable: true,
11
+ get: function get() {
12
+ return _Table["default"];
13
+ }
14
+ });
15
+
16
+ var _Table = _interopRequireWildcard(require("./Table"));
17
+
18
+ Object.keys(_Table).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
21
+ if (key in exports && exports[key] === _Table[key]) return;
22
+ Object.defineProperty(exports, key, {
23
+ enumerable: true,
24
+ get: function get() {
25
+ return _Table[key];
26
+ }
27
+ });
28
+ });
29
+
30
+ var _DataTable = require("./DataTable");
31
+
32
+ Object.keys(_DataTable).forEach(function (key) {
33
+ if (key === "default" || key === "__esModule") return;
34
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
35
+ if (key in exports && exports[key] === _DataTable[key]) return;
36
+ Object.defineProperty(exports, key, {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _DataTable[key];
40
+ }
41
+ });
42
+ });
43
+
44
+ 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); }
45
+
46
+ 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; }
package/cjs/index.d.ts CHANGED
@@ -34,7 +34,7 @@ export * from "./Satellite";
34
34
  export * from "./Select";
35
35
  export * from "./Sidebar";
36
36
  export * from "./Switch";
37
- export * from "./Table";
37
+ export * from "./Tables";
38
38
  export * from "./Tabs";
39
39
  export * from "./Tag";
40
40
  export * from "./TextArea";
package/cjs/index.js CHANGED
@@ -492,16 +492,16 @@ Object.keys(_Switch).forEach(function (key) {
492
492
  });
493
493
  });
494
494
 
495
- var _Table = require("./Table");
495
+ var _Tables = require("./Tables");
496
496
 
497
- Object.keys(_Table).forEach(function (key) {
497
+ Object.keys(_Tables).forEach(function (key) {
498
498
  if (key === "default" || key === "__esModule") return;
499
499
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
500
- if (key in exports && exports[key] === _Table[key]) return;
500
+ if (key in exports && exports[key] === _Tables[key]) return;
501
501
  Object.defineProperty(exports, key, {
502
502
  enumerable: true,
503
503
  get: function get() {
504
- return _Table[key];
504
+ return _Tables[key];
505
505
  }
506
506
  });
507
507
  });
@@ -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("../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"), 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")]
155
155
  };
@@ -4,4 +4,5 @@ export { range } from "./range";
4
4
  export { uniqBy } from "./uniqBy";
5
5
  export { uniqueId } from "./uniqueId";
6
6
  export { isNil } from "./isNil";
7
+ export { toSentenceCase } from "./toSentenceCase";
7
8
  export declare type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "range", {
27
27
  return _range.range;
28
28
  }
29
29
  });
30
+ Object.defineProperty(exports, "toSentenceCase", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _toSentenceCase.toSentenceCase;
34
+ }
35
+ });
30
36
  Object.defineProperty(exports, "uniqBy", {
31
37
  enumerable: true,
32
38
  get: function get() {
@@ -50,4 +56,6 @@ var _uniqBy = require("./uniqBy");
50
56
 
51
57
  var _uniqueId = require("./uniqueId");
52
58
 
53
- var _isNil = require("./isNil");
59
+ var _isNil = require("./isNil");
60
+
61
+ var _toSentenceCase = require("./toSentenceCase");
@@ -0,0 +1,3 @@
1
+ /** Converts PascalCase and camelCase to Sentence case */
2
+ export declare const toSentenceCase: (str: string) => string;
3
+ export default toSentenceCase;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.toSentenceCase = exports["default"] = void 0;
9
+
10
+ var _capitalize = _interopRequireDefault(require("lodash/capitalize"));
11
+
12
+ /** Converts PascalCase and camelCase to Sentence case */
13
+ var toSentenceCase = function toSentenceCase(str) {
14
+ var firstChar = str.charAt(0);
15
+ var remainingChars = str.slice(1).replace(/\s/g, "").replace(/([A-Z]+)/g, "$1").replace(/([A-Z][a-z])/g, " $1").trim();
16
+ return (0, _capitalize["default"])("".concat(firstChar).concat(remainingChars));
17
+ };
18
+
19
+ exports.toSentenceCase = toSentenceCase;
20
+ var _default = toSentenceCase;
21
+ exports["default"] = _default;
@@ -2,4 +2,4 @@ import { ButtonBaseProps, ButtonSize, ButtonVariant } from "./types";
2
2
  export declare const BUTTON_SIZE_CLASSNAMES: Record<ButtonSize, string>;
3
3
  export declare const BUTTON_LOADER_ICON_SIZES: Record<ButtonSize, number>;
4
4
  export declare const BUTTON_VARIANT_CLASSNAMES: Record<ButtonVariant, string>;
5
- export declare const getIconColorClassName: ({ disabled, variant }: ButtonBaseProps) => string;
5
+ export declare const getIconColorClassName: ({ disabled, variant }: Pick<ButtonBaseProps, "disabled" | "variant">) => string;
@@ -77,6 +77,7 @@ export var Checkbox = /*#__PURE__*/forwardRef(function (_ref, ref) {
77
77
  }, /*#__PURE__*/React.createElement(CheckboxIcon, {
78
78
  className: stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["checkbox-icon"])))
79
79
  }), /*#__PURE__*/React.createElement("input", _extends({}, checkboxProps, {
80
+ "aria-checked": indeterminate ? "mixed" : isChecked,
80
81
  id: id,
81
82
  className: stl(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n opacity-0 absolute inset-0 cursor-pointer\n ", "\n "])), disabled && "cursor-not-allowed"),
82
83
  type: "checkbox",
@@ -28,6 +28,10 @@ var datePickerPlugin = function datePickerPlugin(_ref) {
28
28
  textAlign: "center"
29
29
  }
30
30
  }, _defineProperty(_addComponents, prefix(".date-picker, .date-range-picker"), {
31
+ "& .DayPicker-Months": {
32
+ // Hack to align dates on the same grid
33
+ alignItems: "start"
34
+ },
31
35
  "& .DayPicker-Day": (_DayPickerDay = {
32
36
  borderRadius: defaultRadius
33
37
  }, _defineProperty(_DayPickerDay, "&--today".concat(not("outside")), {
@@ -42,8 +46,9 @@ var datePickerPlugin = function datePickerPlugin(_ref) {
42
46
  borderRadius: 9999,
43
47
  width: 32,
44
48
  height: 32,
45
- left: 2,
46
- top: 4,
49
+ left: "50%",
50
+ top: "50%",
51
+ transform: "translate(-50%, -50%)",
47
52
  zIndex: -1
48
53
  }
49
54
  }), _defineProperty(_DayPickerDay, "&--selected".concat(not("outside")), {
@@ -1,7 +1,7 @@
1
1
  import React, { FunctionComponent } from "react";
2
2
  import { ButtonProps } from "../Button";
3
3
  import { RenderTargetParams } from "./Dropdown";
4
- export interface DropdownButtonProps extends Omit<ButtonProps<"button">, "title"> {
4
+ export interface DropdownButtonProps extends Omit<ButtonProps<"button">, "title" | "endIcon"> {
5
5
  /** Title displayed in the `Dropdown` */
6
6
  title: React.ReactNode;
7
7
  renderFooter?: (args: RenderTargetParams) => React.ReactNode;
@@ -4,6 +4,7 @@ export declare type DotPaginationProps = {
4
4
  currentPage: number;
5
5
  onChange: (page: number) => void;
6
6
  nbPages: number;
7
+ size?: "small" | "medium";
7
8
  };
8
- export declare const DotPagination: ({ currentPage, onChange, nbPages }: DotPaginationProps) => JSX.Element;
9
+ export declare const DotPagination: ({ currentPage, onChange, nbPages, size }: DotPaginationProps) => JSX.Element;
9
10
  export default DotPagination;
@@ -7,7 +7,9 @@ import stl from "../../styles/helpers/satellitePrefixer";
7
7
  export var DotPagination = function DotPagination(_ref) {
8
8
  var currentPage = _ref.currentPage,
9
9
  onChange = _ref.onChange,
10
- nbPages = _ref.nbPages;
10
+ nbPages = _ref.nbPages,
11
+ _ref$size = _ref.size,
12
+ size = _ref$size === void 0 ? "medium" : _ref$size;
11
13
  return /*#__PURE__*/React.createElement("ul", {
12
14
  className: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["flex"])))
13
15
  }, new Array(nbPages).fill(undefined).map(function (_, idx) {
@@ -16,7 +18,7 @@ export var DotPagination = function DotPagination(_ref) {
16
18
  key: idx
17
19
  }, /*#__PURE__*/React.createElement("button", {
18
20
  "aria-label": "Go to page ".concat(pageIdx),
19
- className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n h-3 w-3 rounded-full mx-1\n ", "\n "])), currentPage === pageIdx ? "bg-accent-600" : "bg-grey-200"),
21
+ className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n rounded-full mx-1\n ", "\n ", "\n "])), currentPage === pageIdx ? "bg-accent-600" : "bg-grey-200", size === "medium" ? "h-3 w-3" : "h-2 w-2"),
20
22
  onClick: function onClick() {
21
23
  return onChange(pageIdx);
22
24
  }
@@ -23,6 +23,7 @@ var Group = function Group(_ref) {
23
23
  onChange = _ref.onChange;
24
24
  return /*#__PURE__*/React.createElement(React.Fragment, null, group.map(function (index) {
25
25
  return /*#__PURE__*/React.createElement(Button, {
26
+ "aria-label": "Go to page ".concat(index),
26
27
  key: index,
27
28
  variant: index === currentPage ? "primary" : "neutral",
28
29
  onClick: function onClick() {
@@ -63,6 +64,7 @@ export var Pagination = function Pagination(_ref2) {
63
64
  return /*#__PURE__*/React.createElement(ButtonGroup, {
64
65
  as: "nav"
65
66
  }, /*#__PURE__*/React.createElement(Button, {
67
+ "aria-label": "Go to previous page",
66
68
  disabled: currentPage === 1,
67
69
  onClick: function onClick() {
68
70
  return onChange(currentPage - 1);
@@ -82,6 +84,7 @@ export var Pagination = function Pagination(_ref2) {
82
84
  onChange: onChange,
83
85
  group: groups[2]
84
86
  }), /*#__PURE__*/React.createElement(Button, {
87
+ "aria-label": "Go to next page",
85
88
  disabled: currentPage === nbPages,
86
89
  onClick: function onClick() {
87
90
  return onChange(currentPage + 1);
@@ -28,7 +28,7 @@ export var ProgressSpinner = function ProgressSpinner(_ref) {
28
28
  viewBox: "".concat(size / 2, " ").concat(size / 2, " ").concat(size, " ").concat(size),
29
29
  width: size,
30
30
  height: size
31
- }), /*#__PURE__*/React.createElement("circle", {
31
+ }), /*#__PURE__*/React.createElement("title", null, "Loading spinner"), /*#__PURE__*/React.createElement("circle", {
32
32
  cx: size,
33
33
  cy: size,
34
34
  r: (size - thickness) / 2,
@@ -0,0 +1,41 @@
1
+ import React from "react";
2
+ import type { ColumnDefinition, Row, Status, SelectMode, PaginationConfiguration, Sorting, DataConfiguration, GetItemId } from "./types";
3
+ declare type CanSelectItem<Item> = (item: Item, idx: number) => boolean;
4
+ export interface DataTableProps<Item> {
5
+ data: Item[];
6
+ itemId?: GetItemId<Item>;
7
+ pagination?: PaginationConfiguration;
8
+ sorting?: Sorting[];
9
+ onChange?(dataConfiguration: DataConfiguration): void;
10
+ status?: Status;
11
+ noDataContent?: React.ReactNode;
12
+ errorContent?: React.ReactNode;
13
+ columns: ColumnDefinition<Item>[];
14
+ selectMode?: SelectMode;
15
+ selection?: string[];
16
+ onSelectionChange?(rowId: string[]): void;
17
+ canSelectItem?: CanSelectItem<Item>;
18
+ canHoverRow?(row: Row<Item>): boolean;
19
+ onRowHoveredChanged?(row: Row<Item> | null): void;
20
+ }
21
+ /**
22
+ * Tables are used to structure content in a grid to make it easier to see relationships and to facilitate understanding.
23
+ *
24
+ * #### Do
25
+ *
26
+ * - Organize columns and rows based on the needs of your users. To help people read the table, order the columns by importance from left to right, with the key pieces of content opening the row
27
+ * - Include units of measurement symbols in the header so you don't need to repeat them throughout the columns
28
+ * - Indicate sorting capabilities of a column with a chevron in the cell header
29
+ * - Start by columns with highest value to the user, and continue with less important ones
30
+ *
31
+ * #### Do not
32
+ *
33
+ * - Center align text in cells
34
+ *
35
+ * ## Best practices
36
+ *
37
+ * - If a cell is empty or unavailable, keep the cell empty to reduce noise and help with legibility.
38
+ * - Truncate long text to make it fit into a cell. However, choose column width wisely based on expected values, and adjust the table accordingly
39
+ */
40
+ export declare const DataTable: <Item extends {}>({ data, itemId, columns, onChange, status, noDataContent, errorContent, sorting, pagination, selectMode, selection, onSelectionChange, canSelectItem, canHoverRow, onRowHoveredChanged, }: DataTableProps<Item>) => JSX.Element;
41
+ export default DataTable;
@@ -0,0 +1,243 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
3
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
+
6
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
7
+
8
+ 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; }
9
+
10
+ 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) { _defineProperty(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; }
11
+
12
+ import React, { useEffect, useState } from "react";
13
+ import compact from "lodash/compact";
14
+ import get from "lodash/get";
15
+ import stl from "../../styles/helpers/satellitePrefixer";
16
+ import Checkbox from "../../Checkbox";
17
+ import { RadioButton } from "../../RadioGroup";
18
+ import { toSentenceCase } from "../../utils";
19
+ import Table from "../Table";
20
+ import DataTableHeader from "./components/Header";
21
+ import DataTableFooter from "./components/Footer";
22
+ import DataTableBody from "./components/Body";
23
+ import DataTableLoader from "./components/Loader";
24
+
25
+ var DEFAULT_GET_ITEM_ID = function DEFAULT_GET_ITEM_ID(_, idx) {
26
+ return String(idx);
27
+ };
28
+ /**
29
+ * Tables are used to structure content in a grid to make it easier to see relationships and to facilitate understanding.
30
+ *
31
+ * #### Do
32
+ *
33
+ * - Organize columns and rows based on the needs of your users. To help people read the table, order the columns by importance from left to right, with the key pieces of content opening the row
34
+ * - Include units of measurement symbols in the header so you don't need to repeat them throughout the columns
35
+ * - Indicate sorting capabilities of a column with a chevron in the cell header
36
+ * - Start by columns with highest value to the user, and continue with less important ones
37
+ *
38
+ * #### Do not
39
+ *
40
+ * - Center align text in cells
41
+ *
42
+ * ## Best practices
43
+ *
44
+ * - If a cell is empty or unavailable, keep the cell empty to reduce noise and help with legibility.
45
+ * - Truncate long text to make it fit into a cell. However, choose column width wisely based on expected values, and adjust the table accordingly
46
+ */
47
+
48
+
49
+ export var DataTable = function DataTable(_ref) {
50
+ var data = _ref.data,
51
+ itemId = _ref.itemId,
52
+ columns = _ref.columns,
53
+ onChange = _ref.onChange,
54
+ _ref$status = _ref.status,
55
+ status = _ref$status === void 0 ? "success" : _ref$status,
56
+ noDataContent = _ref.noDataContent,
57
+ errorContent = _ref.errorContent,
58
+ _ref$sorting = _ref.sorting,
59
+ sorting = _ref$sorting === void 0 ? [] : _ref$sorting,
60
+ _ref$pagination = _ref.pagination,
61
+ pagination = _ref$pagination === void 0 ? false : _ref$pagination,
62
+ _ref$selectMode = _ref.selectMode,
63
+ selectMode = _ref$selectMode === void 0 ? "none" : _ref$selectMode,
64
+ selection = _ref.selection,
65
+ onSelectionChange = _ref.onSelectionChange,
66
+ canSelectItem = _ref.canSelectItem,
67
+ canHoverRow = _ref.canHoverRow,
68
+ onRowHoveredChanged = _ref.onRowHoveredChanged;
69
+
70
+ if (process.env.NODE_ENV !== "production") {
71
+ var _selection$length;
72
+
73
+ if (itemId === undefined && (sorting.length > 0 || selectMode !== null)) {
74
+ console.warn("You did not provide a custom `itemId` function, but you have defined `sorting` and/or `selectMode`. This can lead to unexpected results.");
75
+ }
76
+
77
+ if (selectMode === "single" && ((_selection$length = selection === null || selection === void 0 ? void 0 : selection.length) !== null && _selection$length !== void 0 ? _selection$length : 0) > 1) {
78
+ console.warn("You can only have one selected item at a time in single `selectMode`.");
79
+ }
80
+
81
+ if (pagination && data.length > pagination.itemsPerPage) {
82
+ console.warn("`pagination.itemsPerPage` (".concat(pagination.itemsPerPage, ") doesn't match `data.length` (").concat(data.length, ")."));
83
+ }
84
+ }
85
+
86
+ var _useState = useState(),
87
+ _useState2 = _slicedToArray(_useState, 2),
88
+ hoveredRowId = _useState2[0],
89
+ setHoveredRowId = _useState2[1];
90
+
91
+ useEffect(function () {
92
+ // Reset hovered row when data changes to avoid inconsistent state
93
+ setHoveredRowId(undefined);
94
+ }, [data]);
95
+ var computedColumns = compact([selectMode === "single" && {
96
+ id: "_internal_singleSelect",
97
+ accessor: "_internal_singleSelect",
98
+ Header: false,
99
+ Cell: function Cell(_ref2) {
100
+ var row = _ref2.row;
101
+ return /*#__PURE__*/React.createElement("div", {
102
+ className: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["flex"])))
103
+ }, /*#__PURE__*/React.createElement(RadioButton, {
104
+ defaultChecked: row.selected,
105
+ disabled: !row.selectable,
106
+ className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["", ""])), row.hovered || row.selected ? "opacity-100" : "opacity-0 select-none")
107
+ }));
108
+ },
109
+ className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["w-3"])))
110
+ }, selectMode === "multi" && {
111
+ id: "_internal_multiSelect",
112
+ accessor: "_internal_multiSelect",
113
+ Header: function Header() {
114
+ var unselectableRows = rows.filter(function (row) {
115
+ return !row.selectable && row.selected;
116
+ }).map(function (r) {
117
+ return r.id;
118
+ });
119
+ var selectableRows = rows.filter(function (row) {
120
+ return row.selectable;
121
+ }).map(function (r) {
122
+ return r.id;
123
+ });
124
+ var selectionLength = (selection !== null && selection !== void 0 ? selection : []).length;
125
+ var dataLength = pagination ? pagination.itemsPerPage : data.length;
126
+ var isChecked = selectionLength === dataLength;
127
+ var isIndeterminate = selectionLength > 0 && selectionLength !== dataLength;
128
+ return /*#__PURE__*/React.createElement(Checkbox, {
129
+ "aria-label": "Select all" // Small hack to position the checkbox in the center of the header
130
+ ,
131
+ className: stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["absolute mb-2.5"]))),
132
+ checked: isChecked,
133
+ indeterminate: isIndeterminate,
134
+ onClick: function onClick() {
135
+ return isChecked ? onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(unselectableRows) : isIndeterminate ? onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(selectionLength === selectableRows.length + unselectableRows.length ? unselectableRows : [].concat(_toConsumableArray(unselectableRows), _toConsumableArray(selectableRows))) : onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange([].concat(_toConsumableArray(unselectableRows), _toConsumableArray(selectableRows)));
136
+ }
137
+ });
138
+ },
139
+ Cell: function Cell(_ref3) {
140
+ var row = _ref3.row;
141
+ return /*#__PURE__*/React.createElement("div", {
142
+ className: stl(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["flex"])))
143
+ }, /*#__PURE__*/React.createElement(Checkbox, {
144
+ checked: row.selected,
145
+ disabled: !row.selectable,
146
+ className: stl(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["", ""])), row.hovered || row.selected ? "opacity-100" : "opacity-0 select-none")
147
+ }));
148
+ },
149
+ className: stl(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["w-3"])))
150
+ }].concat(_toConsumableArray(columns.map(function (c) {
151
+ var _c$Header;
152
+
153
+ return typeof c === "string" ? {
154
+ id: c,
155
+ accessor: c,
156
+ Header: toSentenceCase(c)
157
+ } : _objectSpread(_objectSpread({}, c), {}, {
158
+ Header: (_c$Header = c.Header) !== null && _c$Header !== void 0 ? _c$Header : toSentenceCase(c.id)
159
+ });
160
+ }))));
161
+ var getItemIdInternal = itemId || DEFAULT_GET_ITEM_ID;
162
+ var rows = data.map(function (item, index) {
163
+ var _ref4;
164
+
165
+ var id = typeof getItemIdInternal === "string" ? String(get(item, getItemIdInternal, DEFAULT_GET_ITEM_ID(item, index))) : getItemIdInternal(item, index);
166
+ var hovered = hoveredRowId === id;
167
+ var sanitizedSelection = (_ref4 = selectMode === "single" ? selection === null || selection === void 0 ? void 0 : selection.slice(0, 1) : selectMode === "none" ? [] : selection) !== null && _ref4 !== void 0 ? _ref4 : [];
168
+ var selected = sanitizedSelection.includes(id);
169
+ var selectable = selectMode !== "none" && (!canSelectItem || canSelectItem(item, index));
170
+ return {
171
+ item: item,
172
+ id: id,
173
+ hovered: hovered,
174
+ selected: selected,
175
+ selectable: selectable
176
+ };
177
+ });
178
+ var internalSorting = computedColumns.map(function (c) {
179
+ var _sorting$find$, _sorting$find;
180
+
181
+ return [c.id, c.sort ? (_sorting$find$ = (_sorting$find = sorting.find(function (_ref5) {
182
+ var _ref6 = _slicedToArray(_ref5, 1),
183
+ columnId = _ref6[0];
184
+
185
+ return columnId === c.id;
186
+ })) === null || _sorting$find === void 0 ? void 0 : _sorting$find[1]) !== null && _sorting$find$ !== void 0 ? _sorting$find$ : "desc" : "none"];
187
+ });
188
+
189
+ var onRowHoverChange = function onRowHoverChange(row) {
190
+ setHoveredRowId(row === null || row === void 0 ? void 0 : row.id);
191
+ onRowHoveredChanged === null || onRowHoveredChanged === void 0 ? void 0 : onRowHoveredChanged(row);
192
+ };
193
+
194
+ var handleToggleSort = function handleToggleSort(columnId, direction) {
195
+ var newSorting = internalSorting.map(function (_ref7) {
196
+ var _ref8 = _slicedToArray(_ref7, 2),
197
+ colId = _ref8[0],
198
+ d = _ref8[1];
199
+
200
+ return columnId === colId ? [columnId, direction] : [colId, d];
201
+ });
202
+ onChange === null || onChange === void 0 ? void 0 : onChange({
203
+ pagination: pagination,
204
+ sorting: newSorting
205
+ });
206
+ };
207
+
208
+ var handlePaginationChange = function handlePaginationChange(dataConfiguration) {
209
+ return onChange === null || onChange === void 0 ? void 0 : onChange(dataConfiguration);
210
+ };
211
+
212
+ return /*#__PURE__*/React.createElement("div", {
213
+ className: stl(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["relative"])))
214
+ }, status === "loading" && /*#__PURE__*/React.createElement("div", {
215
+ className: stl(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["absolute bg-white z-10 bg-opacity-50 w-full h-full flex items-center justify-center"])))
216
+ }, /*#__PURE__*/React.createElement(DataTableLoader, {
217
+ className: stl(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["-mt-12"])))
218
+ })), /*#__PURE__*/React.createElement(Table, {
219
+ className: stl(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["datatable ", " ", ""])), status === "loading" && "pointer-events-none select-none", status === "loading" && data.length === 0 && "h-48"),
220
+ highlight: false,
221
+ footer: pagination !== false && /*#__PURE__*/React.createElement(DataTableFooter, {
222
+ pagination: pagination,
223
+ onChange: handlePaginationChange
224
+ })
225
+ }, /*#__PURE__*/React.createElement(DataTableHeader, {
226
+ disabled: status !== "success" || rows.length === 0,
227
+ columns: computedColumns,
228
+ onToggleSort: handleToggleSort,
229
+ sorting: internalSorting
230
+ }), /*#__PURE__*/React.createElement(DataTableBody, {
231
+ rows: rows,
232
+ columns: computedColumns,
233
+ status: status,
234
+ noDataContent: noDataContent,
235
+ errorContent: errorContent,
236
+ selectMode: selectMode,
237
+ selection: selection,
238
+ canHoverRow: canHoverRow,
239
+ onRowHoverChange: onRowHoverChange,
240
+ onSelectionChange: onSelectionChange
241
+ })));
242
+ };
243
+ export default DataTable;
@@ -0,0 +1,5 @@
1
+ export = datatablePlugin;
2
+ /**
3
+ * @type {import('../../tailwind-types').TailwindPlugin}
4
+ */
5
+ declare const datatablePlugin: import('../../tailwind-types').TailwindPlugin;