@algolia/satellite 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +26 -22
  2. package/dist/cjs/Actions/index.d.ts +1 -2
  3. package/dist/cjs/Actions/index.js +10 -17
  4. package/dist/cjs/Fields/DatePicker/DatePicker/DatePicker.js +68 -75
  5. package/dist/cjs/Fields/DatePicker/DateRangePicker/DateRangePicker.js +69 -77
  6. package/dist/cjs/Fields/DatePicker/DateRangePicker/DateRangePickerDisplay.d.ts +2 -3
  7. package/dist/cjs/Fields/DatePicker/DateRangePicker/DateRangePickerDisplay.js +14 -7
  8. package/dist/cjs/Fields/DatePicker/components/Display.d.ts +0 -1
  9. package/dist/cjs/Fields/DatePicker/components/Display.js +1 -3
  10. package/dist/cjs/Fields/DatePicker/components/FooterActions.d.ts +2 -2
  11. package/dist/cjs/Fields/DatePicker/components/FooterActions.js +5 -2
  12. package/dist/cjs/Fields/DatePicker/components/Popover.d.ts +13 -0
  13. package/dist/cjs/Fields/DatePicker/components/Popover.js +51 -0
  14. package/dist/cjs/Fields/DatePicker/components/index.d.ts +1 -1
  15. package/dist/cjs/Fields/DatePicker/components/index.js +4 -4
  16. package/dist/cjs/Fields/DatePicker/types.d.ts +3 -2
  17. package/dist/cjs/Fields/DatePicker/utils.js +2 -1
  18. package/dist/cjs/Helpers/ClickAwayContainer/ClickAwayContainer.d.ts +3 -0
  19. package/dist/cjs/Helpers/ClickAwayContainer/ClickAwayContainer.js +3 -0
  20. package/dist/cjs/Layout/Tables/DataTable/DataTable.js +3 -15
  21. package/dist/cjs/Layout/Tables/DataTable/types.d.ts +0 -2
  22. package/dist/cjs/Overlay/Modal/Modal.js +10 -5
  23. package/dist/cjs/Overlay/Popover/Popover.js +8 -5
  24. package/dist/cjs/Overlay/Popover/types.d.ts +27 -5
  25. package/dist/esm/Actions/index.d.ts +1 -2
  26. package/dist/esm/Actions/index.js +3 -2
  27. package/dist/esm/Fields/DatePicker/DatePicker/DatePicker.js +70 -77
  28. package/dist/esm/Fields/DatePicker/DateRangePicker/DateRangePicker.js +71 -79
  29. package/dist/esm/Fields/DatePicker/DateRangePicker/DateRangePickerDisplay.d.ts +2 -3
  30. package/dist/esm/Fields/DatePicker/DateRangePicker/DateRangePickerDisplay.js +14 -7
  31. package/dist/esm/Fields/DatePicker/components/Display.d.ts +0 -1
  32. package/dist/esm/Fields/DatePicker/components/Display.js +1 -3
  33. package/dist/esm/Fields/DatePicker/components/FooterActions.d.ts +2 -2
  34. package/dist/esm/Fields/DatePicker/components/FooterActions.js +5 -2
  35. package/dist/esm/Fields/DatePicker/components/Popover.d.ts +13 -0
  36. package/dist/esm/Fields/DatePicker/components/Popover.js +41 -0
  37. package/dist/esm/Fields/DatePicker/components/index.d.ts +1 -1
  38. package/dist/esm/Fields/DatePicker/components/index.js +1 -1
  39. package/dist/esm/Fields/DatePicker/types.d.ts +3 -2
  40. package/dist/esm/Fields/DatePicker/utils.js +2 -1
  41. package/dist/esm/Helpers/ClickAwayContainer/ClickAwayContainer.d.ts +3 -0
  42. package/dist/esm/Helpers/ClickAwayContainer/ClickAwayContainer.js +3 -0
  43. package/dist/esm/Layout/Tables/DataTable/DataTable.js +3 -15
  44. package/dist/esm/Layout/Tables/DataTable/types.d.ts +0 -2
  45. package/dist/esm/Overlay/Modal/Modal.js +10 -5
  46. package/dist/esm/Overlay/Popover/Popover.js +8 -5
  47. package/dist/esm/Overlay/Popover/types.d.ts +27 -5
  48. package/dist/satellite.min.css +1 -1
  49. package/package.json +16 -15
  50. package/dist/cjs/Fields/DatePicker/components/Modal.d.ts +0 -15
  51. package/dist/cjs/Fields/DatePicker/components/Modal.js +0 -66
  52. package/dist/esm/Fields/DatePicker/components/Modal.d.ts +0 -15
  53. package/dist/esm/Fields/DatePicker/components/Modal.js +0 -59
package/README.md CHANGED
@@ -18,12 +18,12 @@ import ReactDOM from "react-dom";
18
18
 
19
19
  import "@algolia/satellite/satellite.min.css";
20
20
 
21
- import { Button } from "@algolia/satellite";
21
+ import { Satellite, Button } from "@algolia/satellite";
22
22
 
23
23
  const App = () => (
24
- <div>
24
+ <Satellite>
25
25
  <Button>Hurray!</Button>
26
- </div>
26
+ </Satellite>
27
27
  );
28
28
 
29
29
  ReactDOM.render(<App />, document.getElementById("root"));
@@ -54,20 +54,22 @@ import ReactDOM from "react-dom";
54
54
 
55
55
  import "@algolia/satellite/satellite.min.css";
56
56
 
57
- import { Button, stl } from "@algolia/satellite/Button";
57
+ import { Satellite, Button, stl } from "@algolia/satellite/Button";
58
58
 
59
59
  const loading = true;
60
60
 
61
61
  const App = () => (
62
- <div
63
- className={stl`
64
- flex flex-col m-4
65
- ${loading && "hidden"}
66
- `}
67
- >
68
- <Button className={stl`mb-2`}>Clap your hands!</Button>
69
- <Button>Hurray!</Button>
70
- </div>
62
+ <Satellite>
63
+ <div
64
+ className={stl`
65
+ flex flex-col m-4
66
+ ${loading && "hidden"}
67
+ `}
68
+ >
69
+ <Button className={stl`mb-2`}>Clap your hands!</Button>
70
+ <Button>Hurray!</Button>
71
+ </div>
72
+ </Satellite>
71
73
  );
72
74
 
73
75
  ReactDOM.render(<App />, document.getElementById("root"));
@@ -146,19 +148,21 @@ import ReactDOM from "react-dom";
146
148
 
147
149
  import "./main.css";
148
150
 
149
- import { Button, stl } from "@algolia/satellite";
151
+ import { Satellite, Button, stl } from "@algolia/satellite";
150
152
 
151
153
  const loading = true;
152
154
 
153
155
  const App = () => (
154
- <div
155
- className={stl`
156
- flex items-center justify-center
157
- ${loading && "hidden"}
158
- `}
159
- >
160
- <Button>Hurray!</Button>
161
- </div>
156
+ <Satellite>
157
+ <div
158
+ className={stl`
159
+ flex items-center justify-center
160
+ ${loading && "hidden"}
161
+ `}
162
+ >
163
+ <Button>Hurray!</Button>
164
+ </div>
165
+ </Satellite>
162
166
  );
163
167
 
164
168
  ReactDOM.render(<App />, document.getElementById("root"));
@@ -1,5 +1,4 @@
1
- export type { AccordionProps as ExperimentalAccordionProps, AccordionContentProps as ExperimentalAccordionContentProps, AccordionHeaderProps as ExperimentalAccordionHeaderProps, AccordionItemProps as ExperimentalAccordionItemProps, } from "./Accordion/Accordion";
2
- export { Accordion as ExperimentalAccordion } from "./Accordion/Accordion";
1
+ export * from "./Accordion/Accordion";
3
2
  export * from "./Button/Button";
4
3
  export * from "./ButtonGroup/ButtonGroup";
5
4
  export * from "./ButtonLink/ButtonLink";
@@ -3,20 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var _exportNames = {
7
- ExperimentalAccordion: true
8
- };
9
- Object.defineProperty(exports, "ExperimentalAccordion", {
10
- enumerable: true,
11
- get: function get() {
12
- return _Accordion.Accordion;
13
- }
14
- });
15
6
  var _Accordion = require("./Accordion/Accordion");
7
+ Object.keys(_Accordion).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _Accordion[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _Accordion[key];
14
+ }
15
+ });
16
+ });
16
17
  var _Button = require("./Button/Button");
17
18
  Object.keys(_Button).forEach(function (key) {
18
19
  if (key === "default" || key === "__esModule") return;
19
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
20
20
  if (key in exports && exports[key] === _Button[key]) return;
21
21
  Object.defineProperty(exports, key, {
22
22
  enumerable: true,
@@ -28,7 +28,6 @@ Object.keys(_Button).forEach(function (key) {
28
28
  var _ButtonGroup = require("./ButtonGroup/ButtonGroup");
29
29
  Object.keys(_ButtonGroup).forEach(function (key) {
30
30
  if (key === "default" || key === "__esModule") return;
31
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
32
31
  if (key in exports && exports[key] === _ButtonGroup[key]) return;
33
32
  Object.defineProperty(exports, key, {
34
33
  enumerable: true,
@@ -40,7 +39,6 @@ Object.keys(_ButtonGroup).forEach(function (key) {
40
39
  var _ButtonLink = require("./ButtonLink/ButtonLink");
41
40
  Object.keys(_ButtonLink).forEach(function (key) {
42
41
  if (key === "default" || key === "__esModule") return;
43
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
44
42
  if (key in exports && exports[key] === _ButtonLink[key]) return;
45
43
  Object.defineProperty(exports, key, {
46
44
  enumerable: true,
@@ -52,7 +50,6 @@ Object.keys(_ButtonLink).forEach(function (key) {
52
50
  var _IconButton = require("./IconButton/IconButton");
53
51
  Object.keys(_IconButton).forEach(function (key) {
54
52
  if (key === "default" || key === "__esModule") return;
55
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
56
53
  if (key in exports && exports[key] === _IconButton[key]) return;
57
54
  Object.defineProperty(exports, key, {
58
55
  enumerable: true,
@@ -64,7 +61,6 @@ Object.keys(_IconButton).forEach(function (key) {
64
61
  var _IconButtonLink = require("./IconButtonLink/IconButtonLink");
65
62
  Object.keys(_IconButtonLink).forEach(function (key) {
66
63
  if (key === "default" || key === "__esModule") return;
67
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
68
64
  if (key in exports && exports[key] === _IconButtonLink[key]) return;
69
65
  Object.defineProperty(exports, key, {
70
66
  enumerable: true,
@@ -76,7 +72,6 @@ Object.keys(_IconButtonLink).forEach(function (key) {
76
72
  var _Switch = require("./Switch");
77
73
  Object.keys(_Switch).forEach(function (key) {
78
74
  if (key === "default" || key === "__esModule") return;
79
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
80
75
  if (key in exports && exports[key] === _Switch[key]) return;
81
76
  Object.defineProperty(exports, key, {
82
77
  enumerable: true,
@@ -88,7 +83,6 @@ Object.keys(_Switch).forEach(function (key) {
88
83
  var _ToggleButton = require("./ToggleButton/ToggleButton");
89
84
  Object.keys(_ToggleButton).forEach(function (key) {
90
85
  if (key === "default" || key === "__esModule") return;
91
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
92
86
  if (key in exports && exports[key] === _ToggleButton[key]) return;
93
87
  Object.defineProperty(exports, key, {
94
88
  enumerable: true,
@@ -100,7 +94,6 @@ Object.keys(_ToggleButton).forEach(function (key) {
100
94
  var _ToggleGroup = require("./ToggleGroup/ToggleGroup");
101
95
  Object.keys(_ToggleGroup).forEach(function (key) {
102
96
  if (key === "default" || key === "__esModule") return;
103
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
104
97
  if (key in exports && exports[key] === _ToggleGroup[key]) return;
105
98
  Object.defineProperty(exports, key, {
106
99
  enumerable: true,
@@ -16,12 +16,12 @@ var _Calendar = require("../components/Calendar");
16
16
  var _Display = require("../components/Display");
17
17
  var _Footer = require("../components/Footer");
18
18
  var _FooterActions = require("../components/FooterActions");
19
- var _Modal = require("../components/Modal");
19
+ var _Popover = require("../components/Popover");
20
20
  var _SidePanel = require("../components/SidePanel");
21
21
  var _utils = require("../utils");
22
22
  var _datePickerReducer = require("./datePickerReducer");
23
23
  var _jsxRuntime = require("react/jsx-runtime");
24
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
24
+ var _templateObject, _templateObject2, _templateObject3;
25
25
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
26
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27
27
  /**
@@ -33,10 +33,6 @@ var DatePicker = exports.DatePicker = /*#__PURE__*/(0, _react.forwardRef)(functi
33
33
  var _props$initialValue, _props$validate, _props$id, _props$calendarProps;
34
34
  var contextLocale = (0, _Satellite.useLocale)("datePicker");
35
35
  var locale = _objectSpread(_objectSpread(_objectSpread({}, _utils.DEFAULT_DATE_PICKER_LOCALE), contextLocale), props.locale);
36
- var _useState = (0, _react.useState)(null),
37
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
38
- targetElement = _useState2[0],
39
- setTargetElement = _useState2[1];
40
36
  var isControlled = props.value !== undefined;
41
37
  var _useReducer = (0, _react.useReducer)(_datePickerReducer.datePickerReducer, isControlled ? {} : {
42
38
  selected: (_props$initialValue = props.initialValue) !== null && _props$initialValue !== void 0 ? _props$initialValue : null
@@ -101,79 +97,76 @@ var DatePicker = exports.DatePicker = /*#__PURE__*/(0, _react.forwardRef)(functi
101
97
  status = _useField.state.status,
102
98
  inputId = _useField.inputId;
103
99
  var isInvalid = status === "invalid";
104
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
105
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
106
- ref: setTargetElement,
107
- className: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["inline-block"]))),
108
- children: props.renderTarget ? props.renderTarget({
109
- toggle: state.show ? handleClose : handleOpen,
110
- isOpen: state.show
111
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Display.DatePickerDisplay, {
112
- id: (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : inputId,
113
- ref: ref,
114
- onClick: state.show ? handleClose : handleOpen,
115
- size: props.buttonSize,
116
- className: isInvalid ? (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["border-red-700 bg-red-100 bg-none focus:outline-1 focus:outline focus:outline-red-700 focus:shadow-none focus:bg-none focus:bg-red-100 focus:border-red-700 hover:border-red-700 hover:bg-red-50 hover:bg-none"]))) : undefined,
117
- children: value ? /*#__PURE__*/(0, _jsxRuntime.jsx)("time", {
118
- dateTime: value.toISOString(),
119
- children: (0, _utils.formatDate)(value)
120
- }) : locale.openButton
121
- })
122
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Modal.DatePickerModal, {
123
- className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["date-picker"]))),
124
- show: state.show,
125
- onClickAway: function onClickAway(evt) {
126
- if (!(targetElement !== null && targetElement !== void 0 && targetElement.contains(evt.target))) {
127
- dispatch({
128
- type: _datePickerReducer.DatePickerActionTypes.show,
129
- payload: false
130
- });
131
- }
132
- },
133
- targetElement: targetElement,
134
- placement: props.modalPlacement,
135
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
136
- className: (0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["flex"]))),
137
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
138
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Calendar.DatePickerCalendar, _objectSpread(_objectSpread(_objectSpread({
139
- mode: "single",
140
- numberOfMonths: 1,
141
- defaultMonth: value !== null && value !== void 0 ? value : undefined
142
- }, (_props$calendarProps = props === null || props === void 0 ? void 0 : props.calendarProps) !== null && _props$calendarProps !== void 0 ? _props$calendarProps : {}), {}, {
143
- selected: value !== null && value !== void 0 ? value : undefined,
144
- onDayClick: handleDayClick
145
- }, yearProps), {}, {
146
- locale: locale
147
- })), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Footer.DatePickerFooter, {
148
- children: [props.renderLeftFooter && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
149
- children: props.renderLeftFooter({
150
- state: state,
151
- dispatch: dispatch
152
- })
153
- }), !props.renderRightPanel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_FooterActions.DatePickerFooterActions, {
154
- onCancel: handleClose,
155
- onApply: handleApply,
156
- disableApply: !isValid,
157
- locale: locale
158
- })]
159
- })]
160
- }), props.renderRightPanel && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
161
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
162
- className: (0, _satellitePrefixer["default"])(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["h-full w-px bg-red-800"])))
163
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_SidePanel.DatePickerSidePanel, {
164
- children: [props.renderRightPanel({
100
+ var cancelElementRef = (0, _react.useRef)(null);
101
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.DatePickerPopover, {
102
+ isOpen: state.show,
103
+ onOpenChange: function onOpenChange(open) {
104
+ return dispatch({
105
+ type: _datePickerReducer.DatePickerActionTypes.show,
106
+ payload: open
107
+ });
108
+ },
109
+ placement: props.modalPlacement,
110
+ title: locale.title,
111
+ className: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["date-picker"]))),
112
+ onOpenAutoFocus: function onOpenAutoFocus(evt) {
113
+ var _cancelElementRef$cur;
114
+ evt.preventDefault();
115
+ (_cancelElementRef$cur = cancelElementRef.current) === null || _cancelElementRef$cur === void 0 || _cancelElementRef$cur.focus();
116
+ },
117
+ trigger: props.renderTarget ? props.renderTarget({
118
+ toggle: state.show ? handleClose : handleOpen,
119
+ isOpen: state.show
120
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Display.DatePickerDisplay, {
121
+ id: (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : inputId,
122
+ ref: ref,
123
+ onClick: state.show ? handleClose : handleOpen,
124
+ size: props.buttonSize,
125
+ className: isInvalid ? (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["border-red-700 bg-red-100 bg-none focus:outline-1 focus:outline focus:outline-red-700 focus:shadow-none focus:bg-none focus:bg-red-100 focus:border-red-700 hover:border-red-700 hover:bg-red-50 hover:bg-none"]))) : undefined,
126
+ children: value ? /*#__PURE__*/(0, _jsxRuntime.jsx)("time", {
127
+ dateTime: value.toISOString(),
128
+ children: (0, _utils.formatDate)(value)
129
+ }) : locale.openButton
130
+ }),
131
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
132
+ className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["flex"]))),
133
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
134
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Calendar.DatePickerCalendar, _objectSpread(_objectSpread(_objectSpread({
135
+ mode: "single",
136
+ numberOfMonths: 1,
137
+ defaultMonth: value !== null && value !== void 0 ? value : undefined
138
+ }, (_props$calendarProps = props === null || props === void 0 ? void 0 : props.calendarProps) !== null && _props$calendarProps !== void 0 ? _props$calendarProps : {}), {}, {
139
+ selected: value !== null && value !== void 0 ? value : undefined,
140
+ onDayClick: handleDayClick
141
+ }, yearProps), {}, {
142
+ locale: locale
143
+ })), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Footer.DatePickerFooter, {
144
+ children: [props.renderLeftFooter && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
145
+ children: props.renderLeftFooter({
165
146
  state: state,
166
147
  dispatch: dispatch
167
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FooterActions.DatePickerFooterActions, {
168
- onCancel: handleClose,
169
- onApply: handleApply,
170
- disableApply: !isValid,
171
- locale: locale
172
- })]
148
+ })
149
+ }), !props.renderRightPanel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_FooterActions.DatePickerFooterActions, {
150
+ onCancel: handleClose,
151
+ onApply: handleApply,
152
+ disableApply: !isValid,
153
+ locale: locale,
154
+ ref: cancelElementRef
173
155
  })]
174
156
  })]
175
- })
176
- })]
157
+ }), props.renderRightPanel && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_SidePanel.DatePickerSidePanel, {
158
+ children: [props.renderRightPanel({
159
+ state: state,
160
+ dispatch: dispatch
161
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FooterActions.DatePickerFooterActions, {
162
+ onCancel: handleClose,
163
+ onApply: handleApply,
164
+ disableApply: !isValid,
165
+ locale: locale,
166
+ ref: cancelElementRef
167
+ })]
168
+ })]
169
+ })
177
170
  });
178
171
  });
179
172
  DatePicker.displayName = "DatePicker";
@@ -15,14 +15,14 @@ var _satellitePrefixer = _interopRequireDefault(require("../../../styles/helpers
15
15
  var _Calendar = require("../components/Calendar");
16
16
  var _Footer = require("../components/Footer");
17
17
  var _FooterActions = require("../components/FooterActions");
18
- var _Modal = require("../components/Modal");
18
+ var _Popover = require("../components/Popover");
19
19
  var _SidePanel = require("../components/SidePanel");
20
20
  var _utils = require("../utils");
21
21
  var _DateRangePickerDisplay = require("./DateRangePickerDisplay");
22
22
  var _dateRangePickerReducer = require("./dateRangePickerReducer");
23
23
  var _dateRangePickerTimeRange = require("./dateRangePickerTimeRange");
24
24
  var _jsxRuntime = require("react/jsx-runtime");
25
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
25
+ var _templateObject, _templateObject2;
26
26
  var _excluded = ["id", "range", "displayOnlyRanges", "calendarProps", "initialState", "stateReducer", "onAction", "validate", "renderTarget", "renderLeftFooter", "renderRightPanel", "buttonSize", "modalPlacement", "locale"];
27
27
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
28
28
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -31,7 +31,8 @@ var defaultValidator = function defaultValidator(_ref) {
31
31
  return (0, _dateRangePickerTimeRange.isCompleteTimeRange)(candidateRange) ? null : [new Error("Invalid time range")];
32
32
  };
33
33
  var DEFAULT_DATE_RANGE_PICKER_LOCALE = _objectSpread(_objectSpread({}, _utils.DEFAULT_DATE_PICKER_LOCALE), {}, {
34
- openButton: "Enter a date period..."
34
+ openButton: "Enter a date period...",
35
+ title: "Date Range Picker"
35
36
  });
36
37
 
37
38
  /**
@@ -62,16 +63,13 @@ var DateRangePicker = exports.DateRangePicker = function DateRangePicker(_ref2)
62
63
  props = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
63
64
  var contextLocale = (0, _Satellite.useLocale)("datePicker");
64
65
  var locale = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_DATE_RANGE_PICKER_LOCALE), contextLocale), propsLocale);
65
- var _useState = (0, _react.useState)(null),
66
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
67
- targetElement = _useState2[0],
68
- setTargetElement = _useState2[1];
69
66
  var _useReducer = (0, _react.useReducer)(function (state, action) {
70
67
  return stateReducer(state, action, _dateRangePickerReducer.dateRangePickerReducer);
71
68
  }, initialState, _dateRangePickerReducer.initDateRangePickerReducer),
72
69
  _useReducer2 = (0, _slicedToArray2["default"])(_useReducer, 2),
73
70
  state = _useReducer2[0],
74
71
  baseDispatch = _useReducer2[1];
72
+ var cancelElementRef = (0, _react.useRef)(null);
75
73
 
76
74
  // Computed properties
77
75
  var isValid = !((_validate = validate(state)) !== null && _validate !== void 0 && _validate.length);
@@ -181,81 +179,75 @@ var DateRangePicker = exports.DateRangePicker = function DateRangePicker(_ref2)
181
179
  editableYear: false
182
180
  };
183
181
  }, [props, displayedRange]);
184
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
182
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.DatePickerPopover, {
183
+ isOpen: state.show,
184
+ onOpenChange: function onOpenChange(open) {
185
+ return dispatch({
186
+ type: _dateRangePickerReducer.DateRangePickerActionTypes.show,
187
+ payload: open
188
+ });
189
+ },
190
+ placement: modalPlacement,
191
+ title: locale.title,
185
192
  className: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["date-range-picker"]))),
186
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
187
- ref: setTargetElement,
188
- className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["inline-block"]))),
189
- children: renderTarget ? renderTarget({
190
- toggle: state.show ? handleClose : handleOpen,
191
- isOpen: state.show
192
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_DateRangePickerDisplay.DateRangePickerDisplay, {
193
- id: id,
194
- onClick: state.show ? handleClose : handleOpen,
195
- range: initialRange !== null && initialRange !== void 0 ? initialRange : {
196
- start: null,
197
- end: null
198
- },
199
- buttonSize: buttonSize,
200
- locale: locale
201
- })
202
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Modal.DatePickerModal, {
203
- className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["date-range-picker"]))),
204
- show: state.show,
205
- onClickAway: function onClickAway(evt) {
206
- if (!(targetElement !== null && targetElement !== void 0 && targetElement.contains(evt.target))) {
207
- dispatch({
208
- type: _dateRangePickerReducer.DateRangePickerActionTypes.show,
209
- payload: false
210
- });
211
- }
193
+ onOpenAutoFocus: function onOpenAutoFocus(evt) {
194
+ var _cancelElementRef$cur;
195
+ evt.preventDefault();
196
+ (_cancelElementRef$cur = cancelElementRef.current) === null || _cancelElementRef$cur === void 0 || _cancelElementRef$cur.focus();
197
+ },
198
+ trigger: renderTarget ? renderTarget({
199
+ toggle: state.show ? handleClose : handleOpen,
200
+ isOpen: state.show
201
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_DateRangePickerDisplay.DateRangePickerDisplay, {
202
+ id: id,
203
+ range: initialRange !== null && initialRange !== void 0 ? initialRange : {
204
+ start: null,
205
+ end: null
212
206
  },
213
- targetElement: targetElement,
214
- placement: modalPlacement,
215
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
216
- className: (0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["flex"]))),
217
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
218
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Calendar.DatePickerCalendar, _objectSpread(_objectSpread(_objectSpread({
219
- mode: "default",
220
- defaultMonth: (_initialRange$start = initialRange === null || initialRange === void 0 ? void 0 : initialRange.start) !== null && _initialRange$start !== void 0 ? _initialRange$start : undefined,
221
- numberOfMonths: 2
222
- }, calendarProps), {}, {
223
- selected: selectedDays,
224
- modifiers: modifiers,
225
- onDayClick: handleDayClick,
226
- onDayMouseEnter: handleMouseEnter,
227
- onDayMouseLeave: handleMouseLeave
228
- }, yearProps), {}, {
229
- locale: locale
230
- })), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Footer.DatePickerFooter, {
231
- children: [renderLeftFooter && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
232
- children: renderLeftFooter({
233
- state: state,
234
- dispatch: dispatch
235
- })
236
- }), !renderRightPanel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_FooterActions.DatePickerFooterActions, {
237
- onCancel: handleCancel,
238
- onApply: handleApply,
239
- disableApply: !isValid,
240
- locale: locale
241
- })]
242
- })]
243
- }), renderRightPanel && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
244
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
245
- className: (0, _satellitePrefixer["default"])(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["h-full w-px bg-red-800"])))
246
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_SidePanel.DatePickerSidePanel, {
247
- children: [renderRightPanel({
207
+ buttonSize: buttonSize,
208
+ locale: locale
209
+ }),
210
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
211
+ className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["flex"]))),
212
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
213
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Calendar.DatePickerCalendar, _objectSpread(_objectSpread(_objectSpread({
214
+ mode: "default",
215
+ defaultMonth: (_initialRange$start = initialRange === null || initialRange === void 0 ? void 0 : initialRange.start) !== null && _initialRange$start !== void 0 ? _initialRange$start : undefined,
216
+ numberOfMonths: 2
217
+ }, calendarProps), {}, {
218
+ selected: selectedDays,
219
+ modifiers: modifiers,
220
+ onDayClick: handleDayClick,
221
+ onDayMouseEnter: handleMouseEnter,
222
+ onDayMouseLeave: handleMouseLeave
223
+ }, yearProps), {}, {
224
+ locale: locale
225
+ })), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Footer.DatePickerFooter, {
226
+ children: [renderLeftFooter && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
227
+ children: renderLeftFooter({
248
228
  state: state,
249
229
  dispatch: dispatch
250
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FooterActions.DatePickerFooterActions, {
251
- onCancel: handleCancel,
252
- onApply: handleApply,
253
- disableApply: !isValid,
254
- locale: locale
255
- })]
230
+ })
231
+ }), !renderRightPanel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_FooterActions.DatePickerFooterActions, {
232
+ onCancel: handleCancel,
233
+ onApply: handleApply,
234
+ disableApply: !isValid,
235
+ locale: locale,
236
+ ref: cancelElementRef
256
237
  })]
257
238
  })]
258
- })
259
- })]
239
+ }), renderRightPanel && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_SidePanel.DatePickerSidePanel, {
240
+ children: [renderRightPanel({
241
+ state: state,
242
+ dispatch: dispatch
243
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_FooterActions.DatePickerFooterActions, {
244
+ onCancel: handleCancel,
245
+ onApply: handleApply,
246
+ disableApply: !isValid,
247
+ locale: locale,
248
+ ref: cancelElementRef
249
+ })]
250
+ })]
251
+ })
260
252
  });
261
253
  };
@@ -1,13 +1,12 @@
1
- import type { VFC } from "react";
1
+ /// <reference types="react" />
2
2
  import type { WithRequiredProperty } from "../../../types";
3
3
  import { type DatePickerDisplayProps } from "../components/Display";
4
4
  import type { DatePickerLocale } from "../types";
5
5
  import type { DateRangePickerTimeRange } from "./dateRangePickerTimeRange";
6
6
  export interface DateRangePickerDisplayProps {
7
7
  id?: string;
8
- onClick: DatePickerDisplayProps["onClick"];
9
8
  range: DateRangePickerTimeRange;
10
9
  buttonSize?: DatePickerDisplayProps["size"];
11
10
  locale: WithRequiredProperty<DatePickerLocale, "openButton">;
12
11
  }
13
- export declare const DateRangePickerDisplay: VFC<DateRangePickerDisplayProps>;
12
+ export declare const DateRangePickerDisplay: import("react").ForwardRefExoticComponent<DateRangePickerDisplayProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -5,23 +5,29 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.DateRangePickerDisplay = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = require("react");
9
12
  var _satellitePrefixer = _interopRequireDefault(require("../../../styles/helpers/satellitePrefixer"));
10
13
  var _Display = require("../components/Display");
11
14
  var _utils = require("../utils");
12
15
  var _dateRangePickerTimeRange = require("./dateRangePickerTimeRange");
13
16
  var _jsxRuntime = require("react/jsx-runtime");
14
17
  var _templateObject;
15
- var DateRangePickerDisplay = exports.DateRangePickerDisplay = function DateRangePickerDisplay(_ref) {
18
+ var _excluded = ["id", "range", "buttonSize", "locale"];
19
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21
+ var DateRangePickerDisplay = exports.DateRangePickerDisplay = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
16
22
  var id = _ref.id,
17
- onClick = _ref.onClick,
18
23
  range = _ref.range,
19
24
  buttonSize = _ref.buttonSize,
20
- locale = _ref.locale;
21
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Display.DatePickerDisplay, {
25
+ locale = _ref.locale,
26
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
27
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Display.DatePickerDisplay, _objectSpread(_objectSpread({}, props), {}, {
22
28
  id: id,
23
- onClick: onClick,
24
29
  size: buttonSize,
30
+ ref: ref,
25
31
  children: (0, _dateRangePickerTimeRange.isCompleteTimeRange)(range) ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
26
32
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("time", {
27
33
  dateTime: range.start.toISOString(),
@@ -33,5 +39,6 @@ var DateRangePickerDisplay = exports.DateRangePickerDisplay = function DateRange
33
39
  children: (0, _utils.formatDate)(range.end)
34
40
  })]
35
41
  }) : locale.openButton
36
- });
37
- };
42
+ }));
43
+ });
44
+ DateRangePickerDisplay.displayName = "DateRangePickerDisplay";
@@ -2,7 +2,6 @@ import type { ReactNode } from "react";
2
2
  import type { ButtonProps, ButtonSize } from "../../../Actions";
3
3
  export interface DatePickerDisplayProps extends ButtonProps {
4
4
  id?: string;
5
- onClick: ButtonProps["onClick"];
6
5
  children: ReactNode;
7
6
  size?: ButtonSize;
8
7
  }
@@ -11,20 +11,18 @@ var _react = require("react");
11
11
  var _Actions = require("../../../Actions");
12
12
  var _Icons = require("../../../Icons");
13
13
  var _jsxRuntime = require("react/jsx-runtime");
14
- var _excluded = ["id", "size", "onClick", "children"];
14
+ var _excluded = ["id", "size", "children"];
15
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
17
  var DatePickerDisplay = exports.DatePickerDisplay = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
18
18
  var id = _ref.id,
19
19
  size = _ref.size,
20
- onClick = _ref.onClick,
21
20
  children = _ref.children,
22
21
  props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
23
22
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Actions.Button, _objectSpread(_objectSpread({
24
23
  id: id,
25
24
  size: size,
26
25
  startIcon: _Icons.CalendarIcon,
27
- onClick: onClick,
28
26
  ref: ref
29
27
  }, props), {}, {
30
28
  children: children