@algolia/satellite 1.0.0-beta.126 → 1.0.0-beta.129
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/cjs/AutoComplete/components/AutoCompleteEmptyState.d.ts +2 -0
- package/cjs/Avatars/UserAvatar.js +14 -9
- package/cjs/Banner/Banner.d.ts +6 -3
- package/cjs/Banner/Banner.js +1 -1
- package/cjs/Banners/Alert/Alert.d.ts +6 -2
- package/cjs/Banners/Alert/Alert.js +1 -1
- package/cjs/Banners/Promote/Promote.d.ts +2 -2
- package/cjs/Banners/Promote/Promote.js +1 -1
- package/cjs/DatePicker/DatePicker/DatePicker.d.ts +7 -2
- package/cjs/DatePicker/DatePicker/DatePicker.js +12 -1
- package/cjs/DatePicker/DatePicker.tailwind.js +10 -2
- package/cjs/DatePicker/DateRangePicker/DateRangePicker.d.ts +7 -2
- package/cjs/DatePicker/DateRangePicker/DateRangePicker.js +18 -2
- package/cjs/DatePicker/components/Calendar.d.ts +8 -2
- package/cjs/DatePicker/components/Calendar.js +50 -3
- package/cjs/DatePicker/components/NavBar.d.ts +8 -1
- package/cjs/DatePicker/components/NavBar.js +28 -4
- package/cjs/Dropdown/DropdownButton.d.ts +1 -1
- package/cjs/Dropzone/Dropzone.d.ts +16 -0
- package/cjs/Dropzone/Dropzone.js +180 -0
- package/cjs/Dropzone/index.d.ts +2 -0
- package/cjs/Dropzone/index.js +32 -0
- package/cjs/EmptyState/types.d.ts +1 -1
- package/cjs/Insert/Insert.d.ts +1 -0
- package/cjs/Medallion/Medallion.js +5 -4
- package/cjs/Medallion/Medallion.tailwind.js +3 -3
- package/cjs/Medallion/types.d.ts +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +14 -0
- package/cjs/utils/formatters.d.ts +25 -0
- package/cjs/utils/formatters.js +51 -0
- package/esm/AutoComplete/components/AutoCompleteEmptyState.d.ts +2 -0
- package/esm/Avatars/UserAvatar.js +15 -10
- package/esm/Banner/Banner.d.ts +6 -3
- package/esm/Banner/Banner.js +1 -1
- package/esm/Banners/Alert/Alert.d.ts +6 -2
- package/esm/Banners/Alert/Alert.js +1 -1
- package/esm/Banners/Promote/Promote.d.ts +2 -2
- package/esm/Banners/Promote/Promote.js +1 -1
- package/esm/DatePicker/DatePicker/DatePicker.d.ts +7 -2
- package/esm/DatePicker/DatePicker/DatePicker.js +13 -2
- package/esm/DatePicker/DatePicker.tailwind.js +10 -2
- package/esm/DatePicker/DateRangePicker/DateRangePicker.d.ts +7 -2
- package/esm/DatePicker/DateRangePicker/DateRangePicker.js +17 -3
- package/esm/DatePicker/components/Calendar.d.ts +8 -2
- package/esm/DatePicker/components/Calendar.js +43 -3
- package/esm/DatePicker/components/NavBar.d.ts +8 -1
- package/esm/DatePicker/components/NavBar.js +26 -4
- package/esm/Dropdown/DropdownButton.d.ts +1 -1
- package/esm/Dropzone/Dropzone.d.ts +16 -0
- package/esm/Dropzone/Dropzone.js +149 -0
- package/esm/Dropzone/index.d.ts +2 -0
- package/esm/Dropzone/index.js +2 -0
- package/esm/EmptyState/types.d.ts +1 -1
- package/esm/Insert/Insert.d.ts +1 -0
- package/esm/Medallion/Medallion.js +5 -4
- package/esm/Medallion/Medallion.tailwind.js +3 -3
- package/esm/Medallion/types.d.ts +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.js +1 -0
- package/esm/utils/formatters.d.ts +25 -0
- package/esm/utils/formatters.js +40 -0
- package/package.json +13 -7
- package/satellite.css +22 -9
- package/satellite.min.css +1 -1
@@ -16,7 +16,7 @@ interface RenderTargetParams {
|
|
16
16
|
toggle: () => void;
|
17
17
|
isOpen: boolean;
|
18
18
|
}
|
19
|
-
export
|
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
|
-
|
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, {
|
@@ -1,7 +1,13 @@
|
|
1
1
|
import { FunctionComponent } from "react";
|
2
2
|
import { DayPickerProps } from "react-day-picker";
|
3
3
|
declare type ExcludedDayPickerProps = "captionElement" | "showOutsideDays" | "enableOutsideDaysClick" | "fixedWeeks" | "labels" | "navbarElement" | "onTodayButtonClick" | "pagedNavigation" | "renderDay" | "renderWeek" | "reverseMonths" | "showWeekNumbers" | "showWeekDays" | "todayButton" | "weekdayElement" | "weekdaysLong" | "weekdaysShort";
|
4
|
-
export
|
5
|
-
|
4
|
+
export declare type EditableYearProps = {
|
5
|
+
editableYear?: false;
|
6
|
+
} | {
|
7
|
+
editableYear: true;
|
8
|
+
years?: number[];
|
9
|
+
initialDate?: Date;
|
10
|
+
};
|
11
|
+
export declare type CalendarProps = Omit<DayPickerProps, ExcludedDayPickerProps> & EditableYearProps;
|
6
12
|
declare const Calendar: FunctionComponent<CalendarProps>;
|
7
13
|
export default Calendar;
|
@@ -1,24 +1,64 @@
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
3
|
-
import React from "react";
|
3
|
+
import React, { useCallback, useMemo, useState } from "react";
|
4
4
|
import DayPicker from "react-day-picker";
|
5
|
+
import { add, eachYearOfInterval, getYear, setYear } from "date-fns";
|
5
6
|
import NavBar from "./NavBar";
|
6
7
|
var excludedDayPickerPropsList = ["captionElement", "showOutsideDays", "enableOutsideDaysClick", "fixedWeeks", "labels", "navbarElement", "onTodayButtonClick", "pagedNavigation", "renderDay", "renderWeek", "reverseMonths", "showWeekNumbers", "showWeekDays", "todayButton", "weekdayElement", "weekdaysLong", "weekdaysShort"];
|
7
8
|
|
8
9
|
var Calendar = function Calendar(props) {
|
10
|
+
var initialDate = useMemo(function () {
|
11
|
+
return props.editableYear && props.initialDate ? props.initialDate : new Date();
|
12
|
+
}, [props]);
|
13
|
+
|
14
|
+
var _useState = useState(initialDate),
|
15
|
+
_useState2 = _slicedToArray(_useState, 2),
|
16
|
+
month = _useState2[0],
|
17
|
+
setMonth = _useState2[1];
|
18
|
+
|
19
|
+
var years = useMemo(function () {
|
20
|
+
if (!props.editableYear) return [];
|
21
|
+
if (props.years) return props.years;
|
22
|
+
return eachYearOfInterval({
|
23
|
+
start: add(initialDate, {
|
24
|
+
years: -5
|
25
|
+
}),
|
26
|
+
end: add(initialDate, {
|
27
|
+
years: 10
|
28
|
+
})
|
29
|
+
}).map(getYear);
|
30
|
+
}, [props, initialDate]);
|
31
|
+
var onYearChange = useCallback(function (year) {
|
32
|
+
return setMonth(setYear(month, year));
|
33
|
+
}, [month]);
|
9
34
|
var curatedProps = Object.fromEntries(Object.entries(props).filter(function (_ref) {
|
10
35
|
var _ref2 = _slicedToArray(_ref, 1),
|
11
36
|
key = _ref2[0];
|
12
37
|
|
13
|
-
return (// @ts-
|
38
|
+
return (// @ts-expect-error
|
14
39
|
!excludedDayPickerPropsList.includes(key)
|
15
40
|
);
|
16
41
|
}));
|
42
|
+
var yearsProps = useMemo(function () {
|
43
|
+
return props.editableYear ? {
|
44
|
+
editableYear: true,
|
45
|
+
years: years,
|
46
|
+
onYearChange: onYearChange
|
47
|
+
} : {
|
48
|
+
editableYear: false
|
49
|
+
};
|
50
|
+
}, [onYearChange, props, years]);
|
17
51
|
return /*#__PURE__*/React.createElement(DayPicker, _extends({}, curatedProps, {
|
52
|
+
month: props.editableYear ? month : undefined,
|
18
53
|
showOutsideDays: false,
|
19
54
|
enableOutsideDaysClick: false,
|
20
55
|
fixedWeeks: false,
|
21
|
-
navbarElement:
|
56
|
+
navbarElement: function navbarElement(navBarProps) {
|
57
|
+
return /*#__PURE__*/React.createElement(NavBar, _extends({}, navBarProps, yearsProps));
|
58
|
+
},
|
59
|
+
captionElement: function captionElement() {
|
60
|
+
return null;
|
61
|
+
}
|
22
62
|
}));
|
23
63
|
};
|
24
64
|
|
@@ -1,5 +1,12 @@
|
|
1
1
|
import { FunctionComponent } from "react";
|
2
2
|
import { NavbarElementProps } from "react-day-picker";
|
3
|
-
export declare type
|
3
|
+
export declare type NavBarYearProps = {
|
4
|
+
editableYear?: false;
|
5
|
+
} | {
|
6
|
+
editableYear: true;
|
7
|
+
years: number[];
|
8
|
+
onYearChange: (year: number) => void;
|
9
|
+
};
|
10
|
+
export declare type NavBarProps = NavbarElementProps & NavBarYearProps;
|
4
11
|
declare const NavBar: FunctionComponent<NavBarProps>;
|
5
12
|
export default NavBar;
|
@@ -1,7 +1,10 @@
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
2
3
|
|
3
|
-
var _templateObject;
|
4
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
4
5
|
|
6
|
+
var _excluded = ["onPreviousClick", "onNextClick", "showPreviousButton", "showNextButton", "month", "localeUtils"];
|
7
|
+
import cx from "classnames";
|
5
8
|
import React from "react";
|
6
9
|
import { ChevronLeft, ChevronRight } from "react-feather";
|
7
10
|
import stl from "../../styles/helpers/satellitePrefixer";
|
@@ -11,9 +14,13 @@ var NavBar = function NavBar(_ref) {
|
|
11
14
|
var onPreviousClick = _ref.onPreviousClick,
|
12
15
|
onNextClick = _ref.onNextClick,
|
13
16
|
showPreviousButton = _ref.showPreviousButton,
|
14
|
-
showNextButton = _ref.showNextButton
|
17
|
+
showNextButton = _ref.showNextButton,
|
18
|
+
month = _ref.month,
|
19
|
+
localeUtils = _ref.localeUtils,
|
20
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
21
|
+
|
15
22
|
return /*#__PURE__*/React.createElement("div", {
|
16
|
-
className: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["w-full
|
23
|
+
className: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["w-full top-3 left-0 pt-5 px-5 pb-2 flex justify-between"])))
|
17
24
|
}, /*#__PURE__*/React.createElement(IconButton, {
|
18
25
|
icon: ChevronLeft,
|
19
26
|
title: "Previous month",
|
@@ -21,7 +28,22 @@ var NavBar = function NavBar(_ref) {
|
|
21
28
|
return onPreviousClick();
|
22
29
|
},
|
23
30
|
disabled: !showPreviousButton
|
24
|
-
}), /*#__PURE__*/React.createElement(
|
31
|
+
}), /*#__PURE__*/React.createElement("div", {
|
32
|
+
className: cx(stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["flex items-center text-center"]))))
|
33
|
+
}, /*#__PURE__*/React.createElement("div", {
|
34
|
+
className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["font-medium text-md"])))
|
35
|
+
}, localeUtils.getMonths()[month.getMonth()], " ", props.editableYear ? /*#__PURE__*/React.createElement("select", {
|
36
|
+
className: cx("DayPicker-Year", stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["pl-0.5 font-medium outline-none border-transparent border-2 rounded focus:border-nebula-600 focus:shadow-z100 appearance-none"])))),
|
37
|
+
value: month.getFullYear(),
|
38
|
+
onChange: function onChange(e) {
|
39
|
+
return props.onYearChange(parseInt(e.currentTarget.value));
|
40
|
+
}
|
41
|
+
}, props.years.map(function (year) {
|
42
|
+
return /*#__PURE__*/React.createElement("option", {
|
43
|
+
key: year,
|
44
|
+
value: year
|
45
|
+
}, year);
|
46
|
+
})) : month.getFullYear())), /*#__PURE__*/React.createElement(IconButton, {
|
25
47
|
icon: ChevronRight,
|
26
48
|
title: "Next month",
|
27
49
|
onClick: function onClick() {
|
@@ -2,7 +2,7 @@ import React, { FunctionComponent } from "react";
|
|
2
2
|
import { ButtonProps } from "../Button";
|
3
3
|
import { RenderTargetParams } from "./Dropdown";
|
4
4
|
export interface DropdownButtonProps extends Omit<ButtonProps<"button">, "title" | "endIcon"> {
|
5
|
-
/**
|
5
|
+
/** Descriptive title for `Dropdown` */
|
6
6
|
title: React.ReactNode;
|
7
7
|
renderFooter?: (args: RenderTargetParams) => React.ReactNode;
|
8
8
|
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { FC } from "react";
|
2
|
+
import { DropzoneProps as ReactDropZoneProps, FileRejection } from "react-dropzone";
|
3
|
+
interface DropzoneBaseProps {
|
4
|
+
id?: string;
|
5
|
+
onChange?(acceptedFiles: File[], fileRejections: FileRejection[]): void;
|
6
|
+
placeholder?: string;
|
7
|
+
/** @default false */
|
8
|
+
clearable?: boolean;
|
9
|
+
/** @ignore */
|
10
|
+
className?: string;
|
11
|
+
/** @default false */
|
12
|
+
multiple?: boolean;
|
13
|
+
}
|
14
|
+
export declare type DropzoneProps = DropzoneBaseProps & Omit<ReactDropZoneProps, "onDrop" | "onDropAccepted" | "onDropRejected" | "multiple">;
|
15
|
+
export declare const Dropzone: FC<DropzoneProps>;
|
16
|
+
export default Dropzone;
|
@@ -0,0 +1,149 @@
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
2
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
4
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
5
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
6
|
+
var _excluded = ["id", "placeholder", "disabled", "multiple", "clearable", "onChange", "className"];
|
7
|
+
|
8
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
|
9
|
+
|
10
|
+
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; }
|
11
|
+
|
12
|
+
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; }
|
13
|
+
|
14
|
+
import cx from "classnames";
|
15
|
+
import React, { useCallback, useMemo, useState } from "react";
|
16
|
+
import { useDropzone } from "react-dropzone";
|
17
|
+
import { Check, UploadCloud, X } from "react-feather";
|
18
|
+
import { IconButton } from "../Button";
|
19
|
+
import { useFieldState } from "../Field";
|
20
|
+
import stl from "../styles/helpers/satellitePrefixer";
|
21
|
+
import { formatHumanSize } from "../utils/formatters";
|
22
|
+
import { uniqueId } from "../utils/uniqueId";
|
23
|
+
|
24
|
+
var DropzoneFileItem = function DropzoneFileItem(_ref) {
|
25
|
+
var file = _ref.file;
|
26
|
+
return /*#__PURE__*/React.createElement("span", {
|
27
|
+
className: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["truncate text-grey-900"])))
|
28
|
+
}, file.name, " - ", formatHumanSize(file.size));
|
29
|
+
};
|
30
|
+
|
31
|
+
var STATUS_CLASSNAMES = {
|
32
|
+
"default": "",
|
33
|
+
invalid: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["input-invalid"]))),
|
34
|
+
validated: ""
|
35
|
+
};
|
36
|
+
|
37
|
+
var InvalidIcon = function InvalidIcon() {
|
38
|
+
return /*#__PURE__*/React.createElement(X, {
|
39
|
+
className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["mr-4 h-4 w-4 text-white bg-red-700 p-px rounded-full"])))
|
40
|
+
});
|
41
|
+
};
|
42
|
+
|
43
|
+
var ValidatedIcon = function ValidatedIcon() {
|
44
|
+
return /*#__PURE__*/React.createElement(Check, {
|
45
|
+
className: stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["mr-4 h-4 w-4 text-white bg-accent-700 p-px rounded-full"])))
|
46
|
+
});
|
47
|
+
};
|
48
|
+
|
49
|
+
export var Dropzone = function Dropzone(_ref2) {
|
50
|
+
var id = _ref2.id,
|
51
|
+
placeholder = _ref2.placeholder,
|
52
|
+
disabled = _ref2.disabled,
|
53
|
+
_ref2$multiple = _ref2.multiple,
|
54
|
+
multiple = _ref2$multiple === void 0 ? false : _ref2$multiple,
|
55
|
+
_ref2$clearable = _ref2.clearable,
|
56
|
+
clearable = _ref2$clearable === void 0 ? false : _ref2$clearable,
|
57
|
+
onChange = _ref2.onChange,
|
58
|
+
className = _ref2.className,
|
59
|
+
props = _objectWithoutProperties(_ref2, _excluded);
|
60
|
+
|
61
|
+
var _useState = useState([]),
|
62
|
+
_useState2 = _slicedToArray(_useState, 2),
|
63
|
+
files = _useState2[0],
|
64
|
+
setFiles = _useState2[1];
|
65
|
+
|
66
|
+
var _useState3 = useState(false),
|
67
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
68
|
+
focused = _useState4[0],
|
69
|
+
setFocused = _useState4[1];
|
70
|
+
|
71
|
+
var _useFieldState = useFieldState(),
|
72
|
+
status = _useFieldState.status;
|
73
|
+
|
74
|
+
var onDrop = useCallback(function (acceptedFiles, fileRejections) {
|
75
|
+
var updatedFiles = multiple ? [].concat(_toConsumableArray(files), _toConsumableArray(acceptedFiles)) : acceptedFiles;
|
76
|
+
setFiles(updatedFiles);
|
77
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(updatedFiles, fileRejections);
|
78
|
+
}, [multiple, files, onChange]);
|
79
|
+
|
80
|
+
var handleClear = function handleClear(evt) {
|
81
|
+
evt.stopPropagation();
|
82
|
+
setFiles([]);
|
83
|
+
onChange === null || onChange === void 0 ? void 0 : onChange([], []);
|
84
|
+
};
|
85
|
+
|
86
|
+
var _useDropzone = useDropzone(_objectSpread(_objectSpread({
|
87
|
+
disabled: disabled,
|
88
|
+
multiple: multiple
|
89
|
+
}, props), {}, {
|
90
|
+
onDrop: onDrop
|
91
|
+
})),
|
92
|
+
getRootProps = _useDropzone.getRootProps,
|
93
|
+
getInputProps = _useDropzone.getInputProps,
|
94
|
+
isDragActive = _useDropzone.isDragActive,
|
95
|
+
isDragReject = _useDropzone.isDragReject;
|
96
|
+
|
97
|
+
var dropzoneId = useMemo(function () {
|
98
|
+
return id !== null && id !== void 0 ? id : uniqueId("dropzone");
|
99
|
+
}, [id]);
|
100
|
+
var isValueEmpty = files.length === 0;
|
101
|
+
var StatusIcon = status === "invalid" ? InvalidIcon : status === "validated" ? ValidatedIcon : React.Fragment;
|
102
|
+
return /*#__PURE__*/React.createElement("div", getRootProps({
|
103
|
+
"aria-controls": dropzoneId,
|
104
|
+
className: cx(stl(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n input group\n ", "\n ", "\n min-h-16 cursor-pointer\n ", ""])), focused && "input-focused", disabled && "input-disabled cursor-not-allowed", isDragReject ? "border-red-200 cursor-not-allowed" : isDragActive ? "border-nebula-500" : null), STATUS_CLASSNAMES[status], className),
|
105
|
+
onClick: function onClick(evt) {
|
106
|
+
// Helps with https://github.com/react-dropzone/react-dropzone/issues/182
|
107
|
+
if (evt.target.closest("label")) {
|
108
|
+
evt.stopPropagation();
|
109
|
+
}
|
110
|
+
}
|
111
|
+
}), /*#__PURE__*/React.createElement("input", getInputProps({
|
112
|
+
id: dropzoneId,
|
113
|
+
onFocus: function onFocus() {
|
114
|
+
return setFocused(true);
|
115
|
+
},
|
116
|
+
onBlur: function onBlur() {
|
117
|
+
return setFocused(false);
|
118
|
+
}
|
119
|
+
})), /*#__PURE__*/React.createElement("div", {
|
120
|
+
className: stl(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["flex-1 flex items-center justify-center space-x-2 display-body"])))
|
121
|
+
}, files.length > 0 ? files.length > 1 ? /*#__PURE__*/React.createElement("ul", null, files.map(function (file) {
|
122
|
+
return /*#__PURE__*/React.createElement("li", {
|
123
|
+
key: file.name
|
124
|
+
}, /*#__PURE__*/React.createElement(DropzoneFileItem, {
|
125
|
+
file: file
|
126
|
+
}));
|
127
|
+
})) : /*#__PURE__*/React.createElement(DropzoneFileItem, {
|
128
|
+
file: files[0]
|
129
|
+
}) : /*#__PURE__*/React.createElement("div", {
|
130
|
+
className: stl(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["flex items-center justify-center space-x-2 display-body"])))
|
131
|
+
}, /*#__PURE__*/React.createElement(UploadCloud, {
|
132
|
+
size: "1rem",
|
133
|
+
className: stl(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["", ""])), disabled ? "text-grey-200" : "text-grey-500")
|
134
|
+
}), /*#__PURE__*/React.createElement("p", {
|
135
|
+
className: stl(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["", ""])), disabled ? "text-grey-300" : "typo-subdued")
|
136
|
+
}, placeholder !== null && placeholder !== void 0 ? placeholder : "Drop ".concat(multiple ? "files" : "file", " here or click to select.")))), clearable && !disabled && !isValueEmpty && /*#__PURE__*/React.createElement("span", {
|
137
|
+
className: stl(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral([""])))
|
138
|
+
}, /*#__PURE__*/React.createElement(IconButton, {
|
139
|
+
className: stl(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["mr-2 ", ""])), focused ? "visible" : "invisible group-hover:visible"),
|
140
|
+
title: "Clear input",
|
141
|
+
icon: X,
|
142
|
+
variant: "subtle",
|
143
|
+
size: "small",
|
144
|
+
tabIndex: -1,
|
145
|
+
"aria-hidden": true,
|
146
|
+
onClick: handleClear
|
147
|
+
})), /*#__PURE__*/React.createElement(StatusIcon, null));
|
148
|
+
};
|
149
|
+
export default Dropzone;
|
@@ -3,7 +3,7 @@ import { FlexGridDirection } from "../FlexGrid";
|
|
3
3
|
export declare type EmptyStateUsageContexts = "result" | "feature" | "page";
|
4
4
|
export declare type EmptyStateWidths = "medium" | "large" | "xlarge";
|
5
5
|
export interface EmptyStatePropsAll {
|
6
|
-
/** Descriptive title for the state
|
6
|
+
/** Descriptive title for the state */
|
7
7
|
title: React.ReactNode;
|
8
8
|
/** Optional description to explain why the screen is empty or define next steps */
|
9
9
|
description?: React.ReactNode;
|
package/esm/Insert/Insert.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
2
2
|
|
3
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
|
3
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
|
4
4
|
|
5
5
|
import React from "react";
|
6
6
|
import cx from "classnames";
|
@@ -12,7 +12,8 @@ var VARIANT_CLASSNAMES = {
|
|
12
12
|
blue: stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["medallion-blue text-blue-600"]))),
|
13
13
|
green: stl(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["medallion-green text-green-700"]))),
|
14
14
|
orange: stl(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["medallion-orange text-orange-600"]))),
|
15
|
-
red: stl(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["medallion-red text-red-600"])))
|
15
|
+
red: stl(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["medallion-red text-red-600"]))),
|
16
|
+
white: stl(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["medallion-white text-nebula-500"])))
|
16
17
|
};
|
17
18
|
export var Medallion = function Medallion(_ref) {
|
18
19
|
var Icon = _ref.icon,
|
@@ -23,9 +24,9 @@ export var Medallion = function Medallion(_ref) {
|
|
23
24
|
className = _ref.className;
|
24
25
|
var medallionClassName = VARIANT_CLASSNAMES[variant];
|
25
26
|
return /*#__PURE__*/React.createElement("div", {
|
26
|
-
className: cx(stl(
|
27
|
+
className: cx(stl(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["medallion inline-flex items-center justify-center rounded-full ", ""])), size === "large" && "medallion-large"), medallionClassName, className)
|
27
28
|
}, /*#__PURE__*/React.createElement(Icon, {
|
28
|
-
className: stl(
|
29
|
+
className: stl(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["p-1 ", ""])), size === "large" && "w-10 h-10")
|
29
30
|
}));
|
30
31
|
};
|
31
32
|
export default Medallion;
|
@@ -9,7 +9,7 @@ var rgba = _rgba;
|
|
9
9
|
var medallionPlugin = function medallionPlugin(_ref) {
|
10
10
|
var addComponents = _ref.addComponents,
|
11
11
|
theme = _ref.theme;
|
12
|
-
var colors = ["grey", "pink", "accent", "blue", "green", "orange", "red"];
|
12
|
+
var colors = ["grey", "pink", "accent", "blue", "green", "orange", "red", "white"];
|
13
13
|
addComponents({
|
14
14
|
".medallion": {
|
15
15
|
height: 40,
|
@@ -23,8 +23,8 @@ var medallionPlugin = function medallionPlugin(_ref) {
|
|
23
23
|
|
24
24
|
colors.map(function (color) {
|
25
25
|
return addComponents(_defineProperty({}, ".medallion-".concat(color), {
|
26
|
-
backgroundImage: "linear-gradient(to bottom, ".concat(theme("colors.".concat(color, ".100")), " 0%, ").concat(theme("colors.".concat(color, ".200")), " 100%)"),
|
27
|
-
boxShadow: "
|
26
|
+
backgroundImage: color === "white" ? "linear-gradient(to bottom, ".concat(theme("colors.white"), " 0%, ").concat(theme("colors.grey.100"), " 100%)") : "linear-gradient(to bottom, ".concat(theme("colors.".concat(color, ".100")), " 0%, ").concat(theme("colors.".concat(color, ".200")), " 100%)"),
|
27
|
+
boxShadow: color === "white" ? "0px 4px 8px -2px rgba(33, 36, 61, 0.25), inset 0px -2px 2px rgba(35, 38, 59, 0.03)" : "0px 4px 8px -2px rgba(33, 36, 61, 0.25), inset 0px -2px 2px ".concat(rgba(theme("colors.".concat(color, ".300")), 0.03))
|
28
28
|
}));
|
29
29
|
});
|
30
30
|
};
|
package/esm/Medallion/types.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export declare type MedallionVariant = "accent" | "grey" | "pink" | "blue" | "green" | "orange" | "red";
|
1
|
+
export declare type MedallionVariant = "accent" | "grey" | "pink" | "blue" | "green" | "orange" | "red" | "white";
|
2
2
|
export declare type MedallionSize = "default" | "large";
|
package/esm/index.d.ts
CHANGED
package/esm/index.js
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
declare const defaultHumanSizes: string[];
|
2
|
+
export declare function numberWithCommas(x: number | string, precision?: number): string;
|
3
|
+
export declare function formatHumanNumber(bytes: number, options?: {
|
4
|
+
/** @default 2 */
|
5
|
+
decimals?: number;
|
6
|
+
/** @default ['', 'K', 'M', 'B', 'T'] */
|
7
|
+
sizes?: typeof defaultHumanSizes;
|
8
|
+
/** @default 1000 */
|
9
|
+
divider?: number;
|
10
|
+
/**
|
11
|
+
* Hides the decimal points if they're 0
|
12
|
+
* @default false
|
13
|
+
*/
|
14
|
+
prettyDecimals?: boolean;
|
15
|
+
}): string;
|
16
|
+
export declare function formatHumanSize(nb: number, options?: {
|
17
|
+
/** @default 2 */
|
18
|
+
decimals?: number;
|
19
|
+
/**
|
20
|
+
* Hides the decimal points if they're 0
|
21
|
+
* @default false
|
22
|
+
*/
|
23
|
+
prettyDecimals?: boolean;
|
24
|
+
}): string;
|
25
|
+
export {};
|
@@ -0,0 +1,40 @@
|
|
1
|
+
var defaultHumanSizes = ["", "K", "M", "B", "T"];
|
2
|
+
export function numberWithCommas(x) {
|
3
|
+
var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
4
|
+
|
5
|
+
if (typeof x !== "number") {
|
6
|
+
return x;
|
7
|
+
}
|
8
|
+
|
9
|
+
return (x || 0).toFixed(precision).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
10
|
+
}
|
11
|
+
export function formatHumanNumber(bytes, options) {
|
12
|
+
var _ref = options !== null && options !== void 0 ? options : {},
|
13
|
+
_ref$decimals = _ref.decimals,
|
14
|
+
decimals = _ref$decimals === void 0 ? 2 : _ref$decimals,
|
15
|
+
_ref$sizes = _ref.sizes,
|
16
|
+
sizes = _ref$sizes === void 0 ? defaultHumanSizes : _ref$sizes,
|
17
|
+
_ref$divider = _ref.divider,
|
18
|
+
divider = _ref$divider === void 0 ? 1000 : _ref$divider,
|
19
|
+
_ref$prettyDecimals = _ref.prettyDecimals,
|
20
|
+
prettyDecimals = _ref$prettyDecimals === void 0 ? false : _ref$prettyDecimals;
|
21
|
+
|
22
|
+
if (bytes === 0) return "0";
|
23
|
+
var i = Math.min(Math.max(0, Math.floor(Math.log(Math.abs(bytes)) / Math.log(divider))), sizes.length - 1);
|
24
|
+
var nb = bytes / Math.pow(divider, i);
|
25
|
+
return (Math.abs(nb) > 1000 ? numberWithCommas(nb, decimals) : prettyDecimals ? parseFloat(nb.toFixed(decimals)) : nb.toFixed(decimals)) + sizes[i];
|
26
|
+
}
|
27
|
+
export function formatHumanSize(nb, options) {
|
28
|
+
var _ref2 = options !== null && options !== void 0 ? options : {},
|
29
|
+
_ref2$decimals = _ref2.decimals,
|
30
|
+
decimals = _ref2$decimals === void 0 ? 2 : _ref2$decimals,
|
31
|
+
_ref2$prettyDecimals = _ref2.prettyDecimals,
|
32
|
+
prettyDecimals = _ref2$prettyDecimals === void 0 ? false : _ref2$prettyDecimals;
|
33
|
+
|
34
|
+
return formatHumanNumber(nb, {
|
35
|
+
decimals: decimals,
|
36
|
+
sizes: ["", "K", "M", "G", "T"],
|
37
|
+
divider: 1000,
|
38
|
+
prettyDecimals: prettyDecimals
|
39
|
+
}) + "B";
|
40
|
+
}
|
package/package.json
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
{
|
2
2
|
"name": "@algolia/satellite",
|
3
|
-
"version": "1.0.0-beta.
|
3
|
+
"version": "1.0.0-beta.129",
|
4
4
|
"description": "Algolia design system React components",
|
5
5
|
"scripts": {
|
6
|
-
"clean": "
|
6
|
+
"clean": "rimraf dist",
|
7
7
|
"prebuild": "yarn clean",
|
8
8
|
"build": "cross-env NODE_ENV=production run-p build:types build:js build:manifests build:css build:css-min build:scss",
|
9
9
|
"build:_js": "babel src --extensions \".ts,.tsx,.js\" --ignore \"src/**/*.d.ts,src/**/*.stories.tsx,src/**/*.test.ts,src/**/*.test.tsx\"",
|
10
10
|
"build:esm": "cross-env BABEL_MODULE_TYPE=ESM yarn build:_js --out-dir dist/esm",
|
11
11
|
"build:cjs": "cross-env BABEL_MODULE_TYPE=CJS yarn build:_js --out-dir dist/cjs",
|
12
12
|
"build:js": "run-p build:esm build:cjs",
|
13
|
-
"build:css": "NODE_ENV= postcss -o dist/satellite.css src/styles/satellite.css",
|
14
|
-
"build:css-min": "NODE_ENV=production postcss -o dist/satellite.min.css src/styles/satellite.css",
|
15
|
-
"build:css-storybook": "NODE_ENV=storybook postcss -o dist/satellite.css src/styles/satellite.css",
|
13
|
+
"build:css": "cross-env NODE_ENV= postcss -o dist/satellite.css src/styles/satellite.css",
|
14
|
+
"build:css-min": "cross-env NODE_ENV=production postcss -o dist/satellite.min.css src/styles/satellite.css",
|
15
|
+
"build:css-storybook": "cross-env NODE_ENV=storybook postcss -o dist/satellite.css src/styles/satellite.css",
|
16
16
|
"build:scss": "node ./scripts/build-scss-variables.js",
|
17
17
|
"build:types": "node ./scripts/build-types.js",
|
18
18
|
"build:manifests": "node ./scripts/prepare-manifests.js",
|
@@ -29,7 +29,7 @@
|
|
29
29
|
"version": "yarn changelog && git add CHANGELOG.md",
|
30
30
|
"postversion": "git push && git push --tags",
|
31
31
|
"release": "./scripts/release.sh",
|
32
|
-
"chromatic": "NODE_ENV=storybook chromatic --build-script-name build:storybook --exit-zero-on-changes --auto-accept-changes master"
|
32
|
+
"chromatic": "cross-env NODE_ENV=storybook chromatic --build-script-name build:storybook --exit-zero-on-changes --auto-accept-changes master"
|
33
33
|
},
|
34
34
|
"publishConfig": {
|
35
35
|
"access": "public"
|
@@ -43,7 +43,12 @@
|
|
43
43
|
"react",
|
44
44
|
"design"
|
45
45
|
],
|
46
|
-
"author": "Algolia
|
46
|
+
"author": "Algolia <contact@algolia.com>",
|
47
|
+
"contributors": [
|
48
|
+
"Vincent Lemeunier <vincent.lemeunier@algolia.com>",
|
49
|
+
"Kevin Østerkilde <kevin.osterkilde@algolia.com>",
|
50
|
+
"Clément Aupiais <clement.aupiais@algolia.com>"
|
51
|
+
],
|
47
52
|
"license": "MIT",
|
48
53
|
"bugs": {
|
49
54
|
"url": "https://github.com/algolia/satellite/issues"
|
@@ -72,6 +77,7 @@
|
|
72
77
|
"downshift": "^2.0.10",
|
73
78
|
"lodash.throttle": "^4.1.1",
|
74
79
|
"react-day-picker": "7.4.10",
|
80
|
+
"react-dropzone": "^11.5.1",
|
75
81
|
"react-popper": "^2.2.5",
|
76
82
|
"react-transition-group": "4.4.2",
|
77
83
|
"react-use": "^15.3.8",
|