@algolia/satellite 1.9.0 → 1.10.1

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 (51) 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 +2 -2
  21. package/dist/cjs/Overlay/Modal/Modal.js +10 -5
  22. package/dist/cjs/Overlay/Popover/Popover.js +8 -5
  23. package/dist/cjs/Overlay/Popover/types.d.ts +27 -5
  24. package/dist/esm/Actions/index.d.ts +1 -2
  25. package/dist/esm/Actions/index.js +3 -2
  26. package/dist/esm/Fields/DatePicker/DatePicker/DatePicker.js +70 -77
  27. package/dist/esm/Fields/DatePicker/DateRangePicker/DateRangePicker.js +71 -79
  28. package/dist/esm/Fields/DatePicker/DateRangePicker/DateRangePickerDisplay.d.ts +2 -3
  29. package/dist/esm/Fields/DatePicker/DateRangePicker/DateRangePickerDisplay.js +14 -7
  30. package/dist/esm/Fields/DatePicker/components/Display.d.ts +0 -1
  31. package/dist/esm/Fields/DatePicker/components/Display.js +1 -3
  32. package/dist/esm/Fields/DatePicker/components/FooterActions.d.ts +2 -2
  33. package/dist/esm/Fields/DatePicker/components/FooterActions.js +5 -2
  34. package/dist/esm/Fields/DatePicker/components/Popover.d.ts +13 -0
  35. package/dist/esm/Fields/DatePicker/components/Popover.js +41 -0
  36. package/dist/esm/Fields/DatePicker/components/index.d.ts +1 -1
  37. package/dist/esm/Fields/DatePicker/components/index.js +1 -1
  38. package/dist/esm/Fields/DatePicker/types.d.ts +3 -2
  39. package/dist/esm/Fields/DatePicker/utils.js +2 -1
  40. package/dist/esm/Helpers/ClickAwayContainer/ClickAwayContainer.d.ts +3 -0
  41. package/dist/esm/Helpers/ClickAwayContainer/ClickAwayContainer.js +3 -0
  42. package/dist/esm/Layout/Tables/DataTable/DataTable.js +2 -2
  43. package/dist/esm/Overlay/Modal/Modal.js +10 -5
  44. package/dist/esm/Overlay/Popover/Popover.js +8 -5
  45. package/dist/esm/Overlay/Popover/types.d.ts +27 -5
  46. package/dist/satellite.min.css +1 -1
  47. package/package.json +16 -15
  48. package/dist/cjs/Fields/DatePicker/components/Modal.d.ts +0 -15
  49. package/dist/cjs/Fields/DatePicker/components/Modal.js +0 -66
  50. package/dist/esm/Fields/DatePicker/components/Modal.d.ts +0 -15
  51. package/dist/esm/Fields/DatePicker/components/Modal.js +0 -59
@@ -1,4 +1,4 @@
1
- import type { VFC } from "react";
1
+ /// <reference types="react" />
2
2
  import type { ButtonProps } from "../../../Actions";
3
3
  import type { WithRequiredProperty } from "../../../types";
4
4
  import type { DatePickerLocale } from "../types";
@@ -8,4 +8,4 @@ export interface DatePickerFooterActionsProps {
8
8
  disableApply: boolean;
9
9
  locale: WithRequiredProperty<DatePickerLocale, "cancel" | "apply">;
10
10
  }
11
- export declare const DatePickerFooterActions: VFC<DatePickerFooterActionsProps>;
11
+ export declare const DatePickerFooterActions: import("react").ForwardRefExoticComponent<DatePickerFooterActionsProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -6,11 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.DatePickerFooterActions = void 0;
8
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _react = require("react");
9
10
  var _Actions = require("../../../Actions");
10
11
  var _satellitePrefixer = _interopRequireDefault(require("../../../styles/helpers/satellitePrefixer"));
11
12
  var _jsxRuntime = require("react/jsx-runtime");
12
13
  var _templateObject, _templateObject2;
13
- var DatePickerFooterActions = exports.DatePickerFooterActions = function DatePickerFooterActions(_ref) {
14
+ var DatePickerFooterActions = exports.DatePickerFooterActions = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
14
15
  var onCancel = _ref.onCancel,
15
16
  onApply = _ref.onApply,
16
17
  disableApply = _ref.disableApply,
@@ -20,6 +21,7 @@ var DatePickerFooterActions = exports.DatePickerFooterActions = function DatePic
20
21
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Actions.Button, {
21
22
  onClick: onCancel,
22
23
  className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["mr-2"]))),
24
+ ref: ref,
23
25
  children: locale.cancel
24
26
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Actions.Button, {
25
27
  disabled: disableApply,
@@ -28,4 +30,5 @@ var DatePickerFooterActions = exports.DatePickerFooterActions = function DatePic
28
30
  children: locale.apply
29
31
  })]
30
32
  });
31
- };
33
+ });
34
+ DatePickerFooterActions.displayName = "AccordionItem";
@@ -0,0 +1,13 @@
1
+ import * as Popover from "@radix-ui/react-popover";
2
+ import type { FC, ReactNode } from "react";
3
+ export interface DatePickerPopoverProps {
4
+ isOpen: boolean;
5
+ onOpenChange: (open: boolean) => void;
6
+ trigger: ReactNode;
7
+ children: ReactNode;
8
+ placement?: Popover.PopoverContentProps["side"] | `${Popover.PopoverContentProps["side"] & string}-${Popover.PopoverContentProps["align"] & string}`;
9
+ onOpenAutoFocus?: (event: Event) => void;
10
+ title?: string;
11
+ className?: string;
12
+ }
13
+ export declare const DatePickerPopover: FC<DatePickerPopoverProps>;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DatePickerPopover = void 0;
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
12
+ var _clsx = _interopRequireDefault(require("clsx"));
13
+ var _Satellite = require("../../../Satellite");
14
+ var _satellitePrefixer = _interopRequireDefault(require("../../../styles/helpers/satellitePrefixer"));
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ var _templateObject;
17
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
19
+ var DatePickerPopover = exports.DatePickerPopover = function DatePickerPopover(_ref) {
20
+ var isOpen = _ref.isOpen,
21
+ onOpenChange = _ref.onOpenChange,
22
+ trigger = _ref.trigger,
23
+ children = _ref.children,
24
+ _ref$placement = _ref.placement,
25
+ placement = _ref$placement === void 0 ? "bottom-start" : _ref$placement,
26
+ onOpenAutoFocus = _ref.onOpenAutoFocus,
27
+ title = _ref.title,
28
+ className = _ref.className;
29
+ var createPortal = (0, _Satellite.useCreatePortal)();
30
+ var _ref2 = placement.split("-"),
31
+ _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
32
+ side = _ref3[0],
33
+ align = _ref3[1];
34
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Popover.Root, {
35
+ open: isOpen,
36
+ onOpenChange: onOpenChange,
37
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Popover.Trigger, {
38
+ asChild: true,
39
+ children: trigger
40
+ }), createPortal( /*#__PURE__*/(0, _jsxRuntime.jsx)(Popover.Content, {
41
+ side: side,
42
+ sideOffset: 16,
43
+ align: align,
44
+ collisionPadding: 16,
45
+ className: (0, _clsx["default"])((0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["flex bg-white shadow-z400 z-popover relative overflow-auto max-w-[var(--radix-popover-content-available-width)] max-h-[var(--radix-popover-content-available-height)]"]))), className),
46
+ onOpenAutoFocus: onOpenAutoFocus,
47
+ "aria-label": title,
48
+ children: children
49
+ }))]
50
+ });
51
+ };
@@ -3,5 +3,5 @@ export { DatePickerCalendar } from "./Calendar";
3
3
  export * from "./Display";
4
4
  export * from "./Footer";
5
5
  export * from "./FooterActions";
6
- export * from "./Modal";
6
+ export * from "./Popover";
7
7
  export * from "./SidePanel";
@@ -49,15 +49,15 @@ Object.keys(_FooterActions).forEach(function (key) {
49
49
  }
50
50
  });
51
51
  });
52
- var _Modal = require("./Modal");
53
- Object.keys(_Modal).forEach(function (key) {
52
+ var _Popover = require("./Popover");
53
+ Object.keys(_Popover).forEach(function (key) {
54
54
  if (key === "default" || key === "__esModule") return;
55
55
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
56
- if (key in exports && exports[key] === _Modal[key]) return;
56
+ if (key in exports && exports[key] === _Popover[key]) return;
57
57
  Object.defineProperty(exports, key, {
58
58
  enumerable: true,
59
59
  get: function get() {
60
- return _Modal[key];
60
+ return _Popover[key];
61
61
  }
62
62
  });
63
63
  });
@@ -1,5 +1,5 @@
1
1
  import type { Locale as DateFnsLocale } from "date-fns";
2
- import type { DatePickerModalProps } from "./components/Modal";
2
+ import type { DatePickerPopoverProps } from "./components";
3
3
  export declare type DatePickerLocale = {
4
4
  /** The date-fns locale object used to localize dates. Defaults to* `en-US`. */
5
5
  formatter?: DateFnsLocale;
@@ -14,9 +14,10 @@ export declare type DatePickerLocale = {
14
14
  apply?: string;
15
15
  nextMonth?: string;
16
16
  previousMonth?: string;
17
+ title?: string;
17
18
  };
18
19
  export declare type SharedDatePickerProps = {
19
- modalPlacement?: DatePickerModalProps["placement"];
20
+ modalPlacement?: DatePickerPopoverProps["placement"];
20
21
  locale?: DatePickerLocale;
21
22
  } & ({
22
23
  editableYear?: false;
@@ -15,5 +15,6 @@ var DEFAULT_DATE_PICKER_LOCALE = exports.DEFAULT_DATE_PICKER_LOCALE = {
15
15
  cancel: "Cancel",
16
16
  openButton: "Enter a date...",
17
17
  previousMonth: "Previous month",
18
- nextMonth: "Next month"
18
+ nextMonth: "Next month",
19
+ title: "Date Picker"
19
20
  };
@@ -22,6 +22,9 @@ export interface ClickAwayContainerProps {
22
22
  * Most libraries handling "click outside" functionality assume that the dom tree matches the React tree,
23
23
  * but it's not the case when using portals.
24
24
  * This component allows click-away functionality even when portals are involved.
25
+ *
26
+ * @deprecated This component is deprecated and will be removed in a future version.
27
+ * Please use the Popover component, which provides built-in click-away behavior and is more accessible.
25
28
  */
26
29
  export declare const ClickAwayContainer: VFC<ClickAwayContainerProps>;
27
30
  export {};
@@ -23,6 +23,9 @@ var AWAY_EVENTS = ["mousedown", "touchstart", "focusin"];
23
23
  * Most libraries handling "click outside" functionality assume that the dom tree matches the React tree,
24
24
  * but it's not the case when using portals.
25
25
  * This component allows click-away functionality even when portals are involved.
26
+ *
27
+ * @deprecated This component is deprecated and will be removed in a future version.
28
+ * Please use the Popover component, which provides built-in click-away behavior and is more accessible.
26
29
  */
27
30
  var ClickAwayContainer = exports.ClickAwayContainer = function ClickAwayContainer(_ref) {
28
31
  var element = _ref.element,
@@ -107,7 +107,7 @@ var DataTable = exports.DataTable = function DataTable(_ref) {
107
107
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Fields.RadioButton, {
108
108
  defaultChecked: row.selected,
109
109
  disabled: !row.selectable,
110
- className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["", ""])), row.hovered || row.selected ? "opacity-100" : "opacity-0 select-none")
110
+ className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["", ""])), !row.selected && "select-none")
111
111
  })
112
112
  });
113
113
  },
@@ -146,7 +146,7 @@ var DataTable = exports.DataTable = function DataTable(_ref) {
146
146
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Fields.Checkbox, {
147
147
  checked: row.selected,
148
148
  disabled: !row.selectable,
149
- className: (0, _satellitePrefixer["default"])(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["", ""])), row.hovered || row.selected ? "opacity-100" : "opacity-0 select-none")
149
+ className: (0, _satellitePrefixer["default"])(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["", ""])), !row.selected && "select-none")
150
150
  })
151
151
  });
152
152
  },
@@ -9,6 +9,7 @@ exports.Modal = void 0;
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
11
  var Dialog = _interopRequireWildcard(require("@radix-ui/react-dialog"));
12
+ var _reactVisuallyHidden = require("@radix-ui/react-visually-hidden");
12
13
  var _clsx = _interopRequireDefault(require("clsx"));
13
14
  var _react = require("react");
14
15
  var _Actions = require("../../Actions");
@@ -83,6 +84,7 @@ var Modal = exports.Modal = function Modal(_ref) {
83
84
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Dialog.Content, {
84
85
  ref: dialogContentRef,
85
86
  className: (0, _clsx["default"])((0, _satellitePrefixer["default"])(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["modal-content"]))), SIZE_CLASSNAMES[size], centerY && (0, _satellitePrefixer["default"])(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["flex m-auto"])))),
87
+ "aria-describedby": undefined,
86
88
  onOpenAutoFocus: function onOpenAutoFocus(e) {
87
89
  var _closeButtonRef$curre;
88
90
  if (!autoFocusOnOpenElement) return;
@@ -98,8 +100,6 @@ var Modal = exports.Modal = function Modal(_ref) {
98
100
  autoFocusOnCloseElement.focus();
99
101
  }
100
102
  },
101
- "aria-label": !title ? locale.modalTitle : undefined,
102
- "aria-describedby": undefined,
103
103
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
104
104
  className: (0, _satellitePrefixer["default"])(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["modal-container"]))),
105
105
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Layout.Card, {
@@ -109,9 +109,14 @@ var Modal = exports.Modal = function Modal(_ref) {
109
109
  fullBleed: true,
110
110
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("header", {
111
111
  className: (0, _clsx["default"])((0, _satellitePrefixer["default"])(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["min-h-14 flex items-center justify-between space-x-2"]))), title ? (0, _satellitePrefixer["default"])(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["border-b border-grey-100 pl-8 pr-16"]))) : (0, _satellitePrefixer["default"])(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["justify-end px-8"]))), !title && hideCloseIcon && (0, _satellitePrefixer["default"])(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["hidden"])))),
112
- children: !!title && /*#__PURE__*/(0, _jsxRuntime.jsx)(Dialog.Title, {
113
- className: (0, _satellitePrefixer["default"])(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["flex-1 display-heading truncate"]))),
114
- children: title
112
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Dialog.Title, {
113
+ asChild: true,
114
+ children: title ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
115
+ className: (0, _satellitePrefixer["default"])(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["flex-1 display-heading truncate"]))),
116
+ children: title
117
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactVisuallyHidden.VisuallyHidden, {
118
+ children: locale.modalTitle
119
+ })
115
120
  })
116
121
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
117
122
  className: (0, _clsx["default"])(!fullBleed && (0, _satellitePrefixer["default"])(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["p-10"])))),
@@ -19,7 +19,7 @@ var _satellitePrefixer = _interopRequireDefault(require("../../styles/helpers/sa
19
19
  var _utils = require("../../utils");
20
20
  var _jsxRuntime = require("react/jsx-runtime");
21
21
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
22
- var _excluded = ["children", "title", "subtitle", "content", "footer", "open", "onDismiss", "side", "sideOffset", "align", "alignOffset", "noArrow", "avoidCollisions", "autoFocusOnOpenElement", "locale"];
22
+ var _excluded = ["children", "title", "subtitle", "content", "footer", "open", "onDismiss", "side", "sideOffset", "align", "alignOffset", "noArrow", "noCloseButton", "avoidCollisions", "autoFocusOnOpenElement", "locale"];
23
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
24
24
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
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; }
@@ -52,6 +52,8 @@ var Popover = exports.Popover = function Popover(_ref) {
52
52
  alignOffset = _ref$alignOffset === void 0 ? 0 : _ref$alignOffset,
53
53
  _ref$noArrow = _ref.noArrow,
54
54
  noArrow = _ref$noArrow === void 0 ? false : _ref$noArrow,
55
+ _ref$noCloseButton = _ref.noCloseButton,
56
+ noCloseButton = _ref$noCloseButton === void 0 ? false : _ref$noCloseButton,
55
57
  _ref$avoidCollisions = _ref.avoidCollisions,
56
58
  avoidCollisions = _ref$avoidCollisions === void 0 ? true : _ref$avoidCollisions,
57
59
  autoFocusOnOpenElement = _ref.autoFocusOnOpenElement,
@@ -81,13 +83,14 @@ var Popover = exports.Popover = function Popover(_ref) {
81
83
  asChild: true,
82
84
  children: children
83
85
  }), createPortal( /*#__PURE__*/(0, _jsxRuntime.jsxs)(PopoverPrimitive.Content, _objectSpread(_objectSpread({}, props), {}, {
84
- "aria-labelledby": titleId,
86
+ "aria-labelledby": title ? titleId : undefined,
85
87
  className: (0, _clsx["default"])((0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["text-grey-900 bg-white z-popover shadow-z200 min-w-48 max-w-128 rounded typo-display-body animate-slide"]))), props.className),
86
88
  side: side,
87
89
  sideOffset: 8 + sideOffset,
88
90
  align: align,
89
91
  alignOffset: alignOffset,
90
92
  avoidCollisions: avoidCollisions,
93
+ collisionPadding: 16,
91
94
  onOpenAutoFocus: function onOpenAutoFocus(e) {
92
95
  if (autoFocusOnOpenElement === false) {
93
96
  e.preventDefault();
@@ -113,8 +116,8 @@ var Popover = exports.Popover = function Popover(_ref) {
113
116
  }
114
117
  },
115
118
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
116
- className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["relative p-4 flex flex-col gap-2 overflow-auto min-h-20 max-h-[calc(var(--radix-popover-content-available-height)-theme(spacing.4))]"]))),
117
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
119
+ className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["relative p-4 flex flex-col gap-2 overflow-auto min-h-20 max-w-[var(--radix-popover-content-available-width)] max-h-[var(--radix-popover-content-available-height)]"]))),
120
+ children: [!!title && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
118
121
  id: titleId,
119
122
  className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["font-semibold pr-8"]))),
120
123
  children: title
@@ -127,7 +130,7 @@ var Popover = exports.Popover = function Popover(_ref) {
127
130
  }), !!footer && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
128
131
  className: (0, _satellitePrefixer["default"])(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["mt-2"]))),
129
132
  children: footer
130
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(PopoverPrimitive.Close, {
133
+ }), !noCloseButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(PopoverPrimitive.Close, {
131
134
  ref: closeButtonRef,
132
135
  className: (0, _satellitePrefixer["default"])(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["absolute top-2 right-2"]))),
133
136
  asChild: true,
@@ -3,16 +3,12 @@ import type { HTMLAttributes, ReactElement, ReactNode } from "react";
3
3
  export declare type PopoverLocale = {
4
4
  dismissText?: string;
5
5
  };
6
- export interface PopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "content"> {
6
+ interface PopoverPropsBase extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "content" | "aria-label"> {
7
7
  /**
8
8
  * Defines the trigger element of the `Popover`.
9
9
  * It should be a button element.
10
10
  */
11
11
  children: ReactElement;
12
- /**
13
- * Defines the title of the `Popover`.
14
- */
15
- title: ReactNode;
16
12
  /**
17
13
  * Defines the subtitle of the `Popover`.
18
14
  */
@@ -57,6 +53,10 @@ export interface PopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, "titl
57
53
  * Defines whether the `Popover` arrow should be hidden.
58
54
  */
59
55
  noArrow?: boolean;
56
+ /**
57
+ * Defines whether the `Popover` close button should be hidden.
58
+ */
59
+ noCloseButton?: boolean;
60
60
  /**
61
61
  * Defines whether the `Popover` should avoid collisions with the viewport.
62
62
  */
@@ -74,3 +74,25 @@ export interface PopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, "titl
74
74
  */
75
75
  locale?: PopoverLocale;
76
76
  }
77
+ declare type PopoverPropsWithTitle = {
78
+ /**
79
+ * Defines the title of the `Popover`.
80
+ */
81
+ title: ReactNode;
82
+ /**
83
+ * Defines the aria-label of the `Popover`.
84
+ */
85
+ "aria-label"?: string;
86
+ } & PopoverPropsBase;
87
+ declare type PopoverPropsWithAriaLabel = {
88
+ /**
89
+ * Defines the title of the `Popover`.
90
+ */
91
+ title?: undefined;
92
+ /**
93
+ * Defines the aria-label of the `Popover`.
94
+ */
95
+ "aria-label": string;
96
+ } & PopoverPropsBase;
97
+ export declare type PopoverProps = PopoverPropsWithTitle | PopoverPropsWithAriaLabel;
98
+ export {};
@@ -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";
@@ -1,4 +1,4 @@
1
- export { Accordion as ExperimentalAccordion } from "./Accordion/Accordion";
1
+ export * from "./Accordion/Accordion";
2
2
  export * from "./Button/Button";
3
3
  export * from "./ButtonGroup/ButtonGroup";
4
4
  export * from "./ButtonLink/ButtonLink";
@@ -6,4 +6,5 @@ export * from "./IconButton/IconButton";
6
6
  export * from "./IconButtonLink/IconButtonLink";
7
7
  export * from "./Switch";
8
8
  export * from "./ToggleButton/ToggleButton";
9
- export * from "./ToggleGroup/ToggleGroup";
9
+ export * from "./ToggleGroup/ToggleGroup";
10
+ export {};
@@ -1,10 +1,10 @@
1
1
  import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
4
+ var _templateObject, _templateObject2, _templateObject3;
5
5
  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; }
6
6
  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) { _defineProperty(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; }
7
- import { forwardRef, useMemo, useReducer, useState } from "react";
7
+ import { forwardRef, useMemo, useReducer, useRef } from "react";
8
8
  import { useLocale } from "../../../Satellite";
9
9
  import stl from "../../../styles/helpers/satellitePrefixer";
10
10
  import { useField } from "../../Field";
@@ -12,11 +12,11 @@ import { DatePickerCalendar } from "../components/Calendar";
12
12
  import { DatePickerDisplay } from "../components/Display";
13
13
  import { DatePickerFooter } from "../components/Footer";
14
14
  import { DatePickerFooterActions } from "../components/FooterActions";
15
- import { DatePickerModal } from "../components/Modal";
15
+ import { DatePickerPopover } from "../components/Popover";
16
16
  import { DatePickerSidePanel } from "../components/SidePanel";
17
17
  import { DEFAULT_DATE_PICKER_LOCALE, formatDate } from "../utils";
18
18
  import { DatePickerActionTypes, datePickerReducer, initDatePickerReducer } from "./datePickerReducer";
19
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
19
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
20
  /**
21
21
  * The `DatePicker` component allows users to easily select a date, featuring a calendar view, month/year navigation, and custom options.
22
22
  *
@@ -26,10 +26,6 @@ export var DatePicker = /*#__PURE__*/forwardRef(function (props, ref) {
26
26
  var _props$initialValue, _props$validate, _props$id, _props$calendarProps;
27
27
  var contextLocale = useLocale("datePicker");
28
28
  var locale = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_DATE_PICKER_LOCALE), contextLocale), props.locale);
29
- var _useState = useState(null),
30
- _useState2 = _slicedToArray(_useState, 2),
31
- targetElement = _useState2[0],
32
- setTargetElement = _useState2[1];
33
29
  var isControlled = props.value !== undefined;
34
30
  var _useReducer = useReducer(datePickerReducer, isControlled ? {} : {
35
31
  selected: (_props$initialValue = props.initialValue) !== null && _props$initialValue !== void 0 ? _props$initialValue : null
@@ -94,79 +90,76 @@ export var DatePicker = /*#__PURE__*/forwardRef(function (props, ref) {
94
90
  status = _useField.state.status,
95
91
  inputId = _useField.inputId;
96
92
  var isInvalid = status === "invalid";
97
- return /*#__PURE__*/_jsxs("div", {
98
- children: [/*#__PURE__*/_jsx("span", {
99
- ref: setTargetElement,
100
- className: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["inline-block"]))),
101
- children: props.renderTarget ? props.renderTarget({
102
- toggle: state.show ? handleClose : handleOpen,
103
- isOpen: state.show
104
- }) : /*#__PURE__*/_jsx(DatePickerDisplay, {
105
- id: (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : inputId,
106
- ref: ref,
107
- onClick: state.show ? handleClose : handleOpen,
108
- size: props.buttonSize,
109
- className: isInvalid ? stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["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,
110
- children: value ? /*#__PURE__*/_jsx("time", {
111
- dateTime: value.toISOString(),
112
- children: formatDate(value)
113
- }) : locale.openButton
114
- })
115
- }), /*#__PURE__*/_jsx(DatePickerModal, {
116
- className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["date-picker"]))),
117
- show: state.show,
118
- onClickAway: function onClickAway(evt) {
119
- if (!(targetElement !== null && targetElement !== void 0 && targetElement.contains(evt.target))) {
120
- dispatch({
121
- type: DatePickerActionTypes.show,
122
- payload: false
123
- });
124
- }
125
- },
126
- targetElement: targetElement,
127
- placement: props.modalPlacement,
128
- children: /*#__PURE__*/_jsxs("div", {
129
- className: stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["flex"]))),
130
- children: [/*#__PURE__*/_jsxs("div", {
131
- children: [/*#__PURE__*/_jsx(DatePickerCalendar, _objectSpread(_objectSpread(_objectSpread({
132
- mode: "single",
133
- numberOfMonths: 1,
134
- defaultMonth: value !== null && value !== void 0 ? value : undefined
135
- }, (_props$calendarProps = props === null || props === void 0 ? void 0 : props.calendarProps) !== null && _props$calendarProps !== void 0 ? _props$calendarProps : {}), {}, {
136
- selected: value !== null && value !== void 0 ? value : undefined,
137
- onDayClick: handleDayClick
138
- }, yearProps), {}, {
139
- locale: locale
140
- })), /*#__PURE__*/_jsxs(DatePickerFooter, {
141
- children: [props.renderLeftFooter && /*#__PURE__*/_jsx("div", {
142
- children: props.renderLeftFooter({
143
- state: state,
144
- dispatch: dispatch
145
- })
146
- }), !props.renderRightPanel && /*#__PURE__*/_jsx(DatePickerFooterActions, {
147
- onCancel: handleClose,
148
- onApply: handleApply,
149
- disableApply: !isValid,
150
- locale: locale
151
- })]
152
- })]
153
- }), props.renderRightPanel && /*#__PURE__*/_jsxs(_Fragment, {
154
- children: [/*#__PURE__*/_jsx("div", {
155
- className: stl(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["h-full w-px bg-red-800"])))
156
- }), /*#__PURE__*/_jsxs(DatePickerSidePanel, {
157
- children: [props.renderRightPanel({
93
+ var cancelElementRef = useRef(null);
94
+ return /*#__PURE__*/_jsx(DatePickerPopover, {
95
+ isOpen: state.show,
96
+ onOpenChange: function onOpenChange(open) {
97
+ return dispatch({
98
+ type: DatePickerActionTypes.show,
99
+ payload: open
100
+ });
101
+ },
102
+ placement: props.modalPlacement,
103
+ title: locale.title,
104
+ className: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["date-picker"]))),
105
+ onOpenAutoFocus: function onOpenAutoFocus(evt) {
106
+ var _cancelElementRef$cur;
107
+ evt.preventDefault();
108
+ (_cancelElementRef$cur = cancelElementRef.current) === null || _cancelElementRef$cur === void 0 || _cancelElementRef$cur.focus();
109
+ },
110
+ trigger: props.renderTarget ? props.renderTarget({
111
+ toggle: state.show ? handleClose : handleOpen,
112
+ isOpen: state.show
113
+ }) : /*#__PURE__*/_jsx(DatePickerDisplay, {
114
+ id: (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : inputId,
115
+ ref: ref,
116
+ onClick: state.show ? handleClose : handleOpen,
117
+ size: props.buttonSize,
118
+ className: isInvalid ? stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["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,
119
+ children: value ? /*#__PURE__*/_jsx("time", {
120
+ dateTime: value.toISOString(),
121
+ children: formatDate(value)
122
+ }) : locale.openButton
123
+ }),
124
+ children: /*#__PURE__*/_jsxs("div", {
125
+ className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["flex"]))),
126
+ children: [/*#__PURE__*/_jsxs("div", {
127
+ children: [/*#__PURE__*/_jsx(DatePickerCalendar, _objectSpread(_objectSpread(_objectSpread({
128
+ mode: "single",
129
+ numberOfMonths: 1,
130
+ defaultMonth: value !== null && value !== void 0 ? value : undefined
131
+ }, (_props$calendarProps = props === null || props === void 0 ? void 0 : props.calendarProps) !== null && _props$calendarProps !== void 0 ? _props$calendarProps : {}), {}, {
132
+ selected: value !== null && value !== void 0 ? value : undefined,
133
+ onDayClick: handleDayClick
134
+ }, yearProps), {}, {
135
+ locale: locale
136
+ })), /*#__PURE__*/_jsxs(DatePickerFooter, {
137
+ children: [props.renderLeftFooter && /*#__PURE__*/_jsx("div", {
138
+ children: props.renderLeftFooter({
158
139
  state: state,
159
140
  dispatch: dispatch
160
- }), /*#__PURE__*/_jsx(DatePickerFooterActions, {
161
- onCancel: handleClose,
162
- onApply: handleApply,
163
- disableApply: !isValid,
164
- locale: locale
165
- })]
141
+ })
142
+ }), !props.renderRightPanel && /*#__PURE__*/_jsx(DatePickerFooterActions, {
143
+ onCancel: handleClose,
144
+ onApply: handleApply,
145
+ disableApply: !isValid,
146
+ locale: locale,
147
+ ref: cancelElementRef
166
148
  })]
167
149
  })]
168
- })
169
- })]
150
+ }), props.renderRightPanel && /*#__PURE__*/_jsxs(DatePickerSidePanel, {
151
+ children: [props.renderRightPanel({
152
+ state: state,
153
+ dispatch: dispatch
154
+ }), /*#__PURE__*/_jsx(DatePickerFooterActions, {
155
+ onCancel: handleClose,
156
+ onApply: handleApply,
157
+ disableApply: !isValid,
158
+ locale: locale,
159
+ ref: cancelElementRef
160
+ })]
161
+ })]
162
+ })
170
163
  });
171
164
  });
172
165
  DatePicker.displayName = "DatePicker";