@auth0/quantum-product 2.5.8 → 2.6.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.
- package/breadcrumbs/breadcrumbs-item/breadcrumbs-item.js +2 -2
- package/button/button.d.ts +1 -0
- package/button/button.js +2 -2
- package/card/card.d.ts +1 -0
- package/card/card.js +2 -2
- package/chip/chip.d.ts +1 -0
- package/chip/chip.js +2 -2
- package/date-picker/date-picker-classes.d.ts +10 -0
- package/date-picker/date-picker-classes.js +21 -0
- package/date-picker/date-picker-context.d.ts +10 -0
- package/date-picker/date-picker-context.js +36 -0
- package/date-picker/date-picker-popover.d.ts +4 -0
- package/date-picker/date-picker-popover.js +458 -0
- package/date-picker/date-picker-state.d.ts +24 -0
- package/date-picker/date-picker-state.js +95 -0
- package/date-picker/date-picker-types.d.ts +43 -0
- package/date-picker/date-picker-types.js +2 -0
- package/date-picker/date-picker-utils.d.ts +47 -0
- package/date-picker/date-picker-utils.js +165 -0
- package/date-picker/date-picker.d.ts +9 -0
- package/date-picker/date-picker.js +164 -0
- package/date-picker/index.d.ts +11 -0
- package/date-picker/index.js +17 -0
- package/esm/breadcrumbs/breadcrumbs-item/breadcrumbs-item.js +2 -2
- package/esm/button/button.js +2 -2
- package/esm/card/card.js +2 -2
- package/esm/chip/chip.js +2 -2
- package/esm/date-picker/date-picker-classes.js +16 -0
- package/esm/date-picker/date-picker-context.js +9 -0
- package/esm/date-picker/date-picker-popover.js +429 -0
- package/esm/date-picker/date-picker-state.js +66 -0
- package/esm/date-picker/date-picker-types.js +1 -0
- package/esm/date-picker/date-picker-utils.js +153 -0
- package/esm/date-picker/date-picker.js +135 -0
- package/esm/date-picker/index.js +5 -0
- package/esm/icon-button/icon-button.js +14 -3
- package/esm/index.js +1 -0
- package/esm/link/link.js +2 -2
- package/esm/tabs/tab/tab.js +2 -2
- package/icon-button/icon-button.d.ts +4 -0
- package/icon-button/icon-button.js +14 -3
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/link/link.d.ts +4 -0
- package/link/link.js +2 -2
- package/package.json +3 -2
- package/tabs/tab/tab.d.ts +1 -0
- package/tabs/tab/tab.js +2 -2
|
@@ -95,9 +95,9 @@ var EndIcon = (0, styled_1.styled)('span', {
|
|
|
95
95
|
});
|
|
96
96
|
});
|
|
97
97
|
exports.BreadcrumbsItem = React.forwardRef(function (props, ref) {
|
|
98
|
-
var label = props.label, startIcon = props.startIcon, endIcon = props.endIcon, className = props.className, isCurrent = props.isCurrent, children = props.children, propClasses = props.classes, rootProps = __rest(props, ["label", "startIcon", "endIcon", "className", "isCurrent", "children", "classes"]);
|
|
98
|
+
var label = props.label, startIcon = props.startIcon, endIcon = props.endIcon, className = props.className, isCurrent = props.isCurrent, children = props.children, propClasses = props.classes, analyticsId = props.analyticsId, rootProps = __rest(props, ["label", "startIcon", "endIcon", "className", "isCurrent", "children", "classes", "analyticsId"]);
|
|
99
99
|
var classes = (0, classes_1.useMergedClasses)(breadcrumbs_item_classes_1.breadcrumbsItemClasses, breadcrumbs_item_classes_1.getBreadcrumbsItemUtilityClass, propClasses);
|
|
100
|
-
return (React.createElement(Root, __assign({ variant: "subtitle2", color: isCurrent ? 'textPrimary' : 'textSecondary', className: (0, clsx_1.default)(classes.root, isCurrent && classes.current, className), "aria-current": isCurrent ? 'page' : undefined, ref: ref }, rootProps),
|
|
100
|
+
return (React.createElement(Root, __assign({ variant: "subtitle2", color: isCurrent ? 'textPrimary' : 'textSecondary', className: (0, clsx_1.default)(classes.root, isCurrent && classes.current, className), "aria-current": isCurrent ? 'page' : undefined, ref: ref, analyticsId: analyticsId }, rootProps),
|
|
101
101
|
!!startIcon && React.createElement(StartIcon, { className: (0, clsx_1.default)(classes.icon, classes.startIcon) }, startIcon),
|
|
102
102
|
React.createElement("span", { className: classes.label }, label || children),
|
|
103
103
|
!!endIcon && React.createElement(EndIcon, { className: (0, clsx_1.default)(classes.icon, classes.endIcon) }, endIcon)));
|
package/button/button.d.ts
CHANGED
package/button/button.js
CHANGED
|
@@ -86,14 +86,14 @@ var LabelSpan = (0, styled_1.styled)('span')(function (_a) {
|
|
|
86
86
|
});
|
|
87
87
|
});
|
|
88
88
|
exports.Button = React.forwardRef(function (_a, ref) {
|
|
89
|
-
var isLoading = _a.isLoading, label = _a.label, children = _a.children, disabled = _a.disabled, _b = _a.SpinnerProps, SpinnerProps = _b === void 0 ? {} : _b, _c = _a.color, color = _c === void 0 ? 'default' : _c, variant = _a.variant, maxWidth = _a.maxWidth, rootProps = __rest(_a, ["isLoading", "label", "children", "disabled", "SpinnerProps", "color", "variant", "maxWidth"]);
|
|
89
|
+
var isLoading = _a.isLoading, label = _a.label, children = _a.children, disabled = _a.disabled, _b = _a.SpinnerProps, SpinnerProps = _b === void 0 ? {} : _b, _c = _a.color, color = _c === void 0 ? 'default' : _c, variant = _a.variant, maxWidth = _a.maxWidth, analyticsId = _a.analyticsId, rootProps = __rest(_a, ["isLoading", "label", "children", "disabled", "SpinnerProps", "color", "variant", "maxWidth", "analyticsId"]);
|
|
90
90
|
var title = label ||
|
|
91
91
|
(typeof children === 'string'
|
|
92
92
|
? children
|
|
93
93
|
: React.Children.toArray(children)
|
|
94
94
|
.filter(function (child) { return typeof child === 'string'; })
|
|
95
95
|
.join(''));
|
|
96
|
-
return (React.createElement(Root, __assign({}, rootProps, { disabled: disabled || isLoading, ownerState: { isLoading: isLoading }, color: color, variant: variant, ref: ref, title: String(title) }),
|
|
96
|
+
return (React.createElement(Root, __assign({}, rootProps, { disabled: disabled || isLoading, ownerState: { isLoading: isLoading }, color: color, variant: variant, ref: ref, title: String(title) }, (analyticsId && { 'data-analytics-id': analyticsId })),
|
|
97
97
|
React.createElement(LabelSpan, { style: { maxWidth: rootProps.fullWidth ? 'none' : maxWidth || '100%' } }, label || children),
|
|
98
98
|
' ',
|
|
99
99
|
!!isLoading && React.createElement(ButtonSpinner, __assign({}, SpinnerProps))));
|
package/card/card.d.ts
CHANGED
package/card/card.js
CHANGED
|
@@ -121,7 +121,7 @@ var Root = (0, styled_1.styled)(Card_1.default, {
|
|
|
121
121
|
exports.Card = React.forwardRef(function (props, ref) {
|
|
122
122
|
var button = props.button, _a = props.component, component = _a === void 0 ? 'div' : _a, disabled = props.disabled, className = props.className, selected = props.selected, selectableButton = props.selectableButton, _b = props.size, size = _b === void 0 ? 'large' : _b,
|
|
123
123
|
// remove to prevent passing through to the root
|
|
124
|
-
propClasses = props.classes, rootProps = __rest(props, ["button", "component", "disabled", "className", "selected", "selectableButton", "size", "classes"]);
|
|
124
|
+
propClasses = props.classes, analyticsId = props.analyticsId, rootProps = __rest(props, ["button", "component", "disabled", "className", "selected", "selectableButton", "size", "classes", "analyticsId"]);
|
|
125
125
|
return (React.createElement(card_context_1.CardContext.Provider, { value: { size: size } },
|
|
126
126
|
React.createElement(Root, __assign({}, { component: component }, { ownerState: {
|
|
127
127
|
size: size,
|
|
@@ -129,5 +129,5 @@ exports.Card = React.forwardRef(function (props, ref) {
|
|
|
129
129
|
selectableButton: selectableButton,
|
|
130
130
|
button: button,
|
|
131
131
|
selected: selected,
|
|
132
|
-
} }, rootProps, { className: className, role: button ? 'button' : undefined, tabIndex: button && !disabled ? 0 : undefined, "aria-disabled": disabled, ref: ref }))));
|
|
132
|
+
} }, (analyticsId && { 'data-analytics-id': analyticsId }), rootProps, { className: className, role: button ? 'button' : undefined, tabIndex: button && !disabled ? 0 : undefined, "aria-disabled": disabled, ref: ref }))));
|
|
133
133
|
});
|
package/chip/chip.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ import { ChipProps } from '@mui/material/Chip';
|
|
|
3
3
|
export declare const chipComponentName: "QuantumChip";
|
|
4
4
|
export interface IChipProps extends Omit<ChipProps, 'color' | 'variant'> {
|
|
5
5
|
selected?: boolean;
|
|
6
|
+
analyticsId?: string;
|
|
6
7
|
}
|
|
7
8
|
export declare const Chip: React.ForwardRefExoticComponent<Omit<IChipProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
package/chip/chip.js
CHANGED
|
@@ -81,6 +81,6 @@ var Root = (0, styled_1.styled)(Chip_1.default, { name: exports.chipComponentNam
|
|
|
81
81
|
_b))));
|
|
82
82
|
});
|
|
83
83
|
exports.Chip = React.forwardRef(function (props, ref) {
|
|
84
|
-
var selected = props.selected, _a = props.deleteIcon, deleteIcon = _a === void 0 ? React.createElement(icon_1.XIcon, null) : _a, chipProps = __rest(props, ["selected", "deleteIcon"]);
|
|
85
|
-
return (React.createElement(Root, __assign({ ref: ref, deleteIcon: deleteIcon, ownerState: { selected: selected } }, chipProps, { title: props === null || props === void 0 ? void 0 : props.label })));
|
|
84
|
+
var selected = props.selected, _a = props.deleteIcon, deleteIcon = _a === void 0 ? React.createElement(icon_1.XIcon, null) : _a, analyticsId = props.analyticsId, chipProps = __rest(props, ["selected", "deleteIcon", "analyticsId"]);
|
|
85
|
+
return (React.createElement(Root, __assign({ ref: ref, deleteIcon: deleteIcon, ownerState: { selected: selected } }, (analyticsId && { 'data-analytics-id': analyticsId }), chipProps, { title: props === null || props === void 0 ? void 0 : props.label })));
|
|
86
86
|
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const datePickerComponentName: "QuantumDatePicker";
|
|
2
|
+
export declare const datePickerPopoverComponentName: "QuantumDatePickerPopover";
|
|
3
|
+
export declare function getDatePickerUtilityClass(slot: string): string;
|
|
4
|
+
export declare function getDatePickerPopoverUtilityClass(slot: string): string;
|
|
5
|
+
export declare const datePickerClasses: Record<"input" | "root", string>;
|
|
6
|
+
export declare const datePickerPopoverClasses: Record<"content" | "root" | "calendarWrapper" | "buttonContainer", string>;
|
|
7
|
+
export type DatePickerClasses = typeof datePickerClasses;
|
|
8
|
+
export type DatePickerClassKey = keyof DatePickerClasses;
|
|
9
|
+
export type DatePickerPopoverClasses = typeof datePickerPopoverClasses;
|
|
10
|
+
export type DatePickerPopoverClassKey = keyof DatePickerPopoverClasses;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.datePickerPopoverClasses = exports.datePickerClasses = exports.getDatePickerPopoverUtilityClass = exports.getDatePickerUtilityClass = exports.datePickerPopoverComponentName = exports.datePickerComponentName = void 0;
|
|
4
|
+
var classes_1 = require("../styles/classes");
|
|
5
|
+
exports.datePickerComponentName = 'QuantumDatePicker';
|
|
6
|
+
exports.datePickerPopoverComponentName = 'QuantumDatePickerPopover';
|
|
7
|
+
function getDatePickerUtilityClass(slot) {
|
|
8
|
+
return (0, classes_1.generateUtilityClass)(exports.datePickerComponentName, slot);
|
|
9
|
+
}
|
|
10
|
+
exports.getDatePickerUtilityClass = getDatePickerUtilityClass;
|
|
11
|
+
function getDatePickerPopoverUtilityClass(slot) {
|
|
12
|
+
return (0, classes_1.generateUtilityClass)(exports.datePickerPopoverComponentName, slot);
|
|
13
|
+
}
|
|
14
|
+
exports.getDatePickerPopoverUtilityClass = getDatePickerPopoverUtilityClass;
|
|
15
|
+
exports.datePickerClasses = (0, classes_1.generateUtilityClasses)(exports.datePickerComponentName, ['root', 'input']);
|
|
16
|
+
exports.datePickerPopoverClasses = (0, classes_1.generateUtilityClasses)(exports.datePickerPopoverComponentName, [
|
|
17
|
+
'root',
|
|
18
|
+
'content',
|
|
19
|
+
'calendarWrapper',
|
|
20
|
+
'buttonContainer',
|
|
21
|
+
]);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface IDatePickerContextValue {
|
|
3
|
+
dateFormat: string;
|
|
4
|
+
timeFormat?: string;
|
|
5
|
+
onSelectDate(date: string, shouldClose?: boolean): void;
|
|
6
|
+
isRangeSelection?: boolean;
|
|
7
|
+
showTimeInput?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const DatePickerContext: React.Context<IDatePickerContextValue>;
|
|
10
|
+
export declare const useDatePickerContext: () => IDatePickerContextValue;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.useDatePickerContext = exports.DatePickerContext = void 0;
|
|
27
|
+
var React = __importStar(require("react"));
|
|
28
|
+
exports.DatePickerContext = React.createContext({
|
|
29
|
+
dateFormat: 'MM/dd/yyyy',
|
|
30
|
+
timeFormat: 'HH:mm:ss',
|
|
31
|
+
onSelectDate: function () { return undefined; },
|
|
32
|
+
isRangeSelection: false,
|
|
33
|
+
showTimeInput: false,
|
|
34
|
+
});
|
|
35
|
+
var useDatePickerContext = function () { return React.useContext(exports.DatePickerContext); };
|
|
36
|
+
exports.useDatePickerContext = useDatePickerContext;
|
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
37
|
+
var t = {};
|
|
38
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
39
|
+
t[p] = s[p];
|
|
40
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
41
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
42
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
43
|
+
t[p[i]] = s[p[i]];
|
|
44
|
+
}
|
|
45
|
+
return t;
|
|
46
|
+
};
|
|
47
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
48
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
49
|
+
if (!m) return o;
|
|
50
|
+
var i = m.call(o), r, ar = [], e;
|
|
51
|
+
try {
|
|
52
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
53
|
+
}
|
|
54
|
+
catch (error) { e = { error: error }; }
|
|
55
|
+
finally {
|
|
56
|
+
try {
|
|
57
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
58
|
+
}
|
|
59
|
+
finally { if (e) throw e.error; }
|
|
60
|
+
}
|
|
61
|
+
return ar;
|
|
62
|
+
};
|
|
63
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
64
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
65
|
+
};
|
|
66
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
67
|
+
exports.DatePickerPopover = void 0;
|
|
68
|
+
require("react-day-picker/style.css");
|
|
69
|
+
var React = __importStar(require("react"));
|
|
70
|
+
var react_day_picker_1 = require("react-day-picker");
|
|
71
|
+
var box_1 = require("../box");
|
|
72
|
+
var button_1 = require("../button");
|
|
73
|
+
var card_1 = require("../card");
|
|
74
|
+
var dropdown_menu_1 = require("../dropdown-menu");
|
|
75
|
+
var popover_1 = require("../popover");
|
|
76
|
+
var styled_1 = require("../styled");
|
|
77
|
+
var classes_1 = require("../styles/classes");
|
|
78
|
+
var text_field_1 = require("../text-field");
|
|
79
|
+
var clsx_1 = __importDefault(require("../utils/clsx"));
|
|
80
|
+
var date_picker_classes_1 = require("./date-picker-classes");
|
|
81
|
+
var date_picker_utils_1 = require("./date-picker-utils");
|
|
82
|
+
var Root = (0, styled_1.styled)(popover_1.Popover, { name: date_picker_classes_1.datePickerPopoverComponentName, slot: 'Root' })(function (_a) {
|
|
83
|
+
var theme = _a.theme;
|
|
84
|
+
return ({
|
|
85
|
+
marginTop: theme.spacing(0.5),
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
var Content = (0, styled_1.styled)(card_1.Card, { name: date_picker_classes_1.datePickerPopoverComponentName, slot: 'Content' })(function (_a) {
|
|
89
|
+
var theme = _a.theme, ownerState = _a.ownerState;
|
|
90
|
+
return ({
|
|
91
|
+
maxHeight: 'calc(100% - 96px)',
|
|
92
|
+
minWidth: theme.typography.pxToRem(180),
|
|
93
|
+
width: ownerState.currentView === 'options'
|
|
94
|
+
? ownerState.inputWidth
|
|
95
|
+
? "".concat(ownerState.inputWidth, "px")
|
|
96
|
+
: 'auto'
|
|
97
|
+
: ownerState.showTwoMonths
|
|
98
|
+
? theme.typography.pxToRem(514) // Width for two months calendar view
|
|
99
|
+
: theme.typography.pxToRem(256),
|
|
100
|
+
WebkitOverflowScrolling: 'touch',
|
|
101
|
+
padding: theme.spacing(1),
|
|
102
|
+
border: "1px solid ".concat(theme.tokens.color_border_default),
|
|
103
|
+
borderRadius: 8,
|
|
104
|
+
borderColor: theme.tokens.color_border_default,
|
|
105
|
+
boxShadow: "0px 33px 80px rgba(0, 0, 0, 0.07), 0px 13.7866px 33.4221px rgba(0, 0, 0, 0.0503198), 0px 7.37098px 17.869px rgba(0, 0, 0, 0.0417275), 0px 4.13211px 10.0172px rgba(0, 0, 0, 0.035), 0px 2.19453px 5.32008px rgba(0, 0, 0, 0.0282725), 0px 0.913195px 2.21381px rgba(0, 0, 0, 0.0196802)",
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
var CalendarWrapper = (0, styled_1.styled)('div', { name: date_picker_classes_1.datePickerPopoverComponentName, slot: 'CalendarWrapper' })(function (_a) {
|
|
109
|
+
var theme = _a.theme;
|
|
110
|
+
return ({
|
|
111
|
+
padding: theme.spacing(1),
|
|
112
|
+
'.rdp': {
|
|
113
|
+
'--rdp-cell-size': theme.spacing(2),
|
|
114
|
+
'--rdp-accent-color': theme.tokens.color_bg_button_primary,
|
|
115
|
+
'--rdp-background-color': theme.tokens.color_bg_link_primary_hover,
|
|
116
|
+
'--rdp-day-width': theme.spacing(2),
|
|
117
|
+
'--rdp-day-height': theme.spacing(2),
|
|
118
|
+
'--rdp-day_button-width': theme.spacing(2),
|
|
119
|
+
'--rdp-day_button-height': theme.spacing(2),
|
|
120
|
+
margin: 0,
|
|
121
|
+
},
|
|
122
|
+
'.rdp-nav': {
|
|
123
|
+
width: '100%',
|
|
124
|
+
},
|
|
125
|
+
'.rdp-day': {
|
|
126
|
+
color: theme.tokens.color_fg_default,
|
|
127
|
+
fontSize: theme.spacing(1.75),
|
|
128
|
+
width: theme.spacing(4),
|
|
129
|
+
height: theme.spacing(4),
|
|
130
|
+
},
|
|
131
|
+
'.rdp-month_caption': {
|
|
132
|
+
justifyContent: 'center',
|
|
133
|
+
},
|
|
134
|
+
'.rdp-button_previous': {
|
|
135
|
+
'&:focus': {
|
|
136
|
+
outline: "2px solid ".concat(theme.tokens.color_border_focus_bold),
|
|
137
|
+
outlineOffset: 2,
|
|
138
|
+
},
|
|
139
|
+
border: "1px solid ".concat(theme.tokens.color_border_default),
|
|
140
|
+
position: 'absolute',
|
|
141
|
+
left: 0,
|
|
142
|
+
width: theme.spacing(3),
|
|
143
|
+
height: theme.spacing(3),
|
|
144
|
+
borderRadius: theme.spacing(0.5),
|
|
145
|
+
display: 'flex',
|
|
146
|
+
alignItems: 'center',
|
|
147
|
+
justifyContent: 'center',
|
|
148
|
+
},
|
|
149
|
+
'.rdp-button_next': {
|
|
150
|
+
'&:focus': {
|
|
151
|
+
outline: "2px solid ".concat(theme.tokens.color_border_focus_bold),
|
|
152
|
+
outlineOffset: 2,
|
|
153
|
+
},
|
|
154
|
+
border: "1px solid ".concat(theme.tokens.color_border_default),
|
|
155
|
+
position: 'absolute',
|
|
156
|
+
right: 0,
|
|
157
|
+
width: theme.spacing(3),
|
|
158
|
+
height: theme.spacing(3),
|
|
159
|
+
borderRadius: theme.spacing(0.5),
|
|
160
|
+
display: 'flex',
|
|
161
|
+
alignItems: 'center',
|
|
162
|
+
justifyContent: 'center',
|
|
163
|
+
},
|
|
164
|
+
'.rdp-chevron': {
|
|
165
|
+
width: theme.spacing(2),
|
|
166
|
+
height: theme.spacing(2),
|
|
167
|
+
display: 'inline-block',
|
|
168
|
+
margin: 0,
|
|
169
|
+
fill: theme.tokens.color_fg_bold,
|
|
170
|
+
},
|
|
171
|
+
'.rdp-day_button': {
|
|
172
|
+
width: theme.spacing(4),
|
|
173
|
+
height: theme.spacing(4),
|
|
174
|
+
},
|
|
175
|
+
'.rdp-range_start .rdp-day_button': {
|
|
176
|
+
backgroundColor: theme.tokens.color_bg_button_primary,
|
|
177
|
+
border: 'none',
|
|
178
|
+
borderRadius: theme.spacing(0.75),
|
|
179
|
+
},
|
|
180
|
+
'.rdp-range_end .rdp-day_button': {
|
|
181
|
+
backgroundColor: theme.tokens.color_bg_button_primary,
|
|
182
|
+
border: 'none',
|
|
183
|
+
borderRadius: theme.spacing(0.75),
|
|
184
|
+
},
|
|
185
|
+
'.rdp-range_middle': {
|
|
186
|
+
backgroundColor: theme.tokens.color_bg_brand_primary_subtle,
|
|
187
|
+
},
|
|
188
|
+
'.rdp-selected': {
|
|
189
|
+
color: theme.tokens.color_fg_bold,
|
|
190
|
+
fontWeight: 'inherit',
|
|
191
|
+
fontSize: theme.spacing(1.75),
|
|
192
|
+
},
|
|
193
|
+
'.rdp-caption_label': {
|
|
194
|
+
fontSize: 14,
|
|
195
|
+
},
|
|
196
|
+
'.rdp-day_selected': {
|
|
197
|
+
backgroundColor: theme.tokens.color_bg_button_primary,
|
|
198
|
+
color: theme.tokens.color_fg_on_button_primary,
|
|
199
|
+
},
|
|
200
|
+
'.rdp-day_selected:hover': {
|
|
201
|
+
backgroundColor: theme.tokens.color_bg_button_primary_hover,
|
|
202
|
+
},
|
|
203
|
+
'.rdp-day_range_start, .rdp-day_range_end': {
|
|
204
|
+
backgroundColor: theme.tokens.color_bg_button_primary,
|
|
205
|
+
color: theme.tokens.color_fg_on_button_primary,
|
|
206
|
+
},
|
|
207
|
+
'.rdp-day_range_middle': {
|
|
208
|
+
backgroundColor: theme.tokens.color_bg_link_primary_hover,
|
|
209
|
+
},
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
var ButtonContainer = (0, styled_1.styled)(box_1.Box, { name: date_picker_classes_1.datePickerPopoverComponentName, slot: 'ButtonContainer' })(function (_a) {
|
|
213
|
+
var theme = _a.theme;
|
|
214
|
+
return ({
|
|
215
|
+
display: 'flex',
|
|
216
|
+
justifyContent: 'flex-end',
|
|
217
|
+
padding: theme.spacing(1),
|
|
218
|
+
borderTop: "1px solid ".concat(theme.tokens.color_border_default),
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
var TimeInputContainer = (0, styled_1.styled)('div', { name: date_picker_classes_1.datePickerPopoverComponentName, slot: 'TimeInput' })(function (_a) {
|
|
222
|
+
var theme = _a.theme;
|
|
223
|
+
return ({
|
|
224
|
+
display: 'flex',
|
|
225
|
+
justifyContent: 'flex-start',
|
|
226
|
+
gap: theme.spacing(0.5),
|
|
227
|
+
padding: theme.spacing(1),
|
|
228
|
+
alignItems: 'center',
|
|
229
|
+
borderTop: "1px solid ".concat(theme.tokens.color_border_default),
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
var EndTimeInputContainer = (0, styled_1.styled)('div', { name: date_picker_classes_1.datePickerPopoverComponentName, slot: 'EndTimeInput' })(function (_a) {
|
|
233
|
+
var theme = _a.theme;
|
|
234
|
+
return ({
|
|
235
|
+
display: 'flex',
|
|
236
|
+
justifyContent: 'flex-start',
|
|
237
|
+
gap: theme.spacing(0.5),
|
|
238
|
+
alignItems: 'center',
|
|
239
|
+
marginLeft: theme.spacing(2),
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
var TimeInput = (0, styled_1.styled)(text_field_1.TextField, { name: date_picker_classes_1.datePickerPopoverComponentName, slot: 'TimeInputField' })({
|
|
243
|
+
width: '3rem',
|
|
244
|
+
});
|
|
245
|
+
var TimeInputLabel = (0, styled_1.styled)('span', { name: date_picker_classes_1.datePickerPopoverComponentName, slot: 'TimeInputLabel' })(function (_a) {
|
|
246
|
+
var theme = _a.theme;
|
|
247
|
+
return ({
|
|
248
|
+
color: theme.tokens.color_fg_default,
|
|
249
|
+
fontSize: theme.typography.caption.fontSize,
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
exports.DatePickerPopover = React.forwardRef(function (props, ref) {
|
|
253
|
+
var anchorEl = props.anchorEl, open = props.open, onClose = props.onClose, onDateSelect = props.onDateSelect, options = props.options, value = props.value, _a = props.dateFormat, dateFormat = _a === void 0 ? 'MM/dd/yyyy' : _a, _b = props.timeFormat, timeFormat = _b === void 0 ? 'HH:mm:ss' : _b, PopoverProps = props.PopoverProps, _c = props.showTwoMonths, showTwoMonths = _c === void 0 ? false : _c, _d = props.isRangeSelection, isRangeSelection = _d === void 0 ? false : _d, _e = props.showTimeInput, showTimeInput = _e === void 0 ? false : _e, propClasses = props.classes, rootProps = __rest(props, ["anchorEl", "open", "onClose", "onDateSelect", "options", "value", "dateFormat", "timeFormat", "PopoverProps", "showTwoMonths", "isRangeSelection", "showTimeInput", "classes"]);
|
|
254
|
+
var classes = (0, classes_1.useMergedClasses)(date_picker_classes_1.datePickerPopoverClasses, date_picker_classes_1.getDatePickerPopoverUtilityClass, propClasses);
|
|
255
|
+
// State to track the current view: 'options' or 'calendar'
|
|
256
|
+
var _f = __read(React.useState(options ? 'options' : 'calendar'), 2), currentView = _f[0], setCurrentView = _f[1];
|
|
257
|
+
// State to track the current range selection
|
|
258
|
+
var _g = __read(React.useState({}), 2), rangeSelection = _g[0], setRangeSelection = _g[1];
|
|
259
|
+
// Time state for single date or range start/end
|
|
260
|
+
var _h = __read(React.useState('00'), 2), hours = _h[0], setHours = _h[1];
|
|
261
|
+
var _j = __read(React.useState('00'), 2), minutes = _j[0], setMinutes = _j[1];
|
|
262
|
+
var _k = __read(React.useState('00'), 2), seconds = _k[0], setSeconds = _k[1];
|
|
263
|
+
// For range selection - end time
|
|
264
|
+
var _l = __read(React.useState('00'), 2), endHours = _l[0], setEndHours = _l[1];
|
|
265
|
+
var _m = __read(React.useState('00'), 2), endMinutes = _m[0], setEndMinutes = _m[1];
|
|
266
|
+
var _o = __read(React.useState('00'), 2), endSeconds = _o[0], setEndSeconds = _o[1];
|
|
267
|
+
// Reset selection and view when popover opens/closes
|
|
268
|
+
React.useEffect(function () {
|
|
269
|
+
if (!open) {
|
|
270
|
+
setRangeSelection({});
|
|
271
|
+
// Reset the view to options if there are options available
|
|
272
|
+
if (options) {
|
|
273
|
+
setCurrentView('options');
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
else if (value) {
|
|
277
|
+
if (isRangeSelection && value.includes('-')) {
|
|
278
|
+
// Parse range selection
|
|
279
|
+
var _a = (0, date_picker_utils_1.parseDateRange)(value, dateFormat, showTimeInput ? timeFormat : undefined), from = _a.from, to = _a.to;
|
|
280
|
+
if (from) {
|
|
281
|
+
// Extract time components for range start
|
|
282
|
+
var _b = (0, date_picker_utils_1.extractTimeComponents)(from), h = _b.hours, m = _b.minutes, s = _b.seconds;
|
|
283
|
+
setHours(h);
|
|
284
|
+
setMinutes(m);
|
|
285
|
+
setSeconds(s);
|
|
286
|
+
}
|
|
287
|
+
if (to) {
|
|
288
|
+
// Extract time components for range end
|
|
289
|
+
var _c = (0, date_picker_utils_1.extractTimeComponents)(to), h = _c.hours, m = _c.minutes, s = _c.seconds;
|
|
290
|
+
setEndHours(h);
|
|
291
|
+
setEndMinutes(m);
|
|
292
|
+
setEndSeconds(s);
|
|
293
|
+
}
|
|
294
|
+
if (from && to) {
|
|
295
|
+
setRangeSelection({ from: from, to: to });
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
else if (!isRangeSelection) {
|
|
299
|
+
// For single date, try to parse with time format first if showTimeInput is enabled
|
|
300
|
+
var formatString = showTimeInput ? "".concat(dateFormat, " ").concat(timeFormat) : dateFormat;
|
|
301
|
+
var date = (0, date_picker_utils_1.parseDate)(value, formatString);
|
|
302
|
+
if (date) {
|
|
303
|
+
setRangeSelection({ from: date });
|
|
304
|
+
if (showTimeInput) {
|
|
305
|
+
// Extract time components
|
|
306
|
+
var _d = (0, date_picker_utils_1.extractTimeComponents)(date), h = _d.hours, m = _d.minutes, s = _d.seconds;
|
|
307
|
+
setHours(h);
|
|
308
|
+
setMinutes(m);
|
|
309
|
+
setSeconds(s);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}, [open, value, isRangeSelection, dateFormat, timeFormat, options, showTimeInput]);
|
|
315
|
+
// Handle calendar selections
|
|
316
|
+
var handleCalendarSelect = function (selection) {
|
|
317
|
+
if (!selection)
|
|
318
|
+
return;
|
|
319
|
+
// Keep the time values when date changes
|
|
320
|
+
if (selection.from && !selection.to) {
|
|
321
|
+
// Single date or range start
|
|
322
|
+
if (showTimeInput) {
|
|
323
|
+
var newFrom = (0, date_picker_utils_1.applyTimeToDate)(selection.from, { hours: hours, minutes: minutes, seconds: seconds });
|
|
324
|
+
setRangeSelection({ from: newFrom });
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
setRangeSelection({ from: selection.from });
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
else if (selection.from && selection.to) {
|
|
331
|
+
// Range selection
|
|
332
|
+
if (showTimeInput) {
|
|
333
|
+
var newFrom = (0, date_picker_utils_1.applyTimeToDate)(selection.from, { hours: hours, minutes: minutes, seconds: seconds });
|
|
334
|
+
var newTo = (0, date_picker_utils_1.applyTimeToDate)(selection.to, { hours: endHours, minutes: endMinutes, seconds: endSeconds });
|
|
335
|
+
setRangeSelection({ from: newFrom, to: newTo });
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
setRangeSelection(selection);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
// Only auto-apply selection for non-range selection mode and when not showing time input
|
|
342
|
+
if (!isRangeSelection && !showTimeInput) {
|
|
343
|
+
applySelection(selection.from);
|
|
344
|
+
}
|
|
345
|
+
// For range selection or time input, we'll wait for user to click Apply
|
|
346
|
+
};
|
|
347
|
+
var handleTimeChange = function (value, setter, max) {
|
|
348
|
+
var numValue = value.replace(/\D/g, '');
|
|
349
|
+
var parsed = parseInt(numValue, 10);
|
|
350
|
+
if (!isNaN(parsed) && parsed >= 0 && parsed <= max) {
|
|
351
|
+
setter(parsed.toString().padStart(2, '0'));
|
|
352
|
+
}
|
|
353
|
+
else if (value === '') {
|
|
354
|
+
setter('00');
|
|
355
|
+
}
|
|
356
|
+
updateDateWithTime();
|
|
357
|
+
};
|
|
358
|
+
var updateDateWithTime = function () {
|
|
359
|
+
if (!rangeSelection.from)
|
|
360
|
+
return;
|
|
361
|
+
var newFrom = (0, date_picker_utils_1.applyTimeToDate)(rangeSelection.from, { hours: hours, minutes: minutes, seconds: seconds });
|
|
362
|
+
if (isRangeSelection && rangeSelection.to) {
|
|
363
|
+
var newTo = (0, date_picker_utils_1.applyTimeToDate)(rangeSelection.to, {
|
|
364
|
+
hours: endHours,
|
|
365
|
+
minutes: endMinutes,
|
|
366
|
+
seconds: endSeconds,
|
|
367
|
+
});
|
|
368
|
+
setRangeSelection({ from: newFrom, to: newTo });
|
|
369
|
+
}
|
|
370
|
+
else {
|
|
371
|
+
setRangeSelection({ from: newFrom });
|
|
372
|
+
}
|
|
373
|
+
};
|
|
374
|
+
var applySelection = function (singleDate) {
|
|
375
|
+
if (isRangeSelection) {
|
|
376
|
+
if (rangeSelection.from && rangeSelection.to) {
|
|
377
|
+
var formattedRange = (0, date_picker_utils_1.formatDateRange)(rangeSelection.from, rangeSelection.to, dateFormat, showTimeInput ? timeFormat : undefined);
|
|
378
|
+
onDateSelect(formattedRange, true);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
else if (singleDate || rangeSelection.from) {
|
|
382
|
+
var dateToFormat = singleDate || rangeSelection.from;
|
|
383
|
+
if (dateToFormat) {
|
|
384
|
+
var formatString = showTimeInput ? "".concat(dateFormat, " ").concat(timeFormat) : dateFormat;
|
|
385
|
+
var formattedDate = (0, date_picker_utils_1.formatDate)(dateToFormat, formatString);
|
|
386
|
+
onDateSelect(formattedDate, true);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
};
|
|
390
|
+
var cancelSelection = function () {
|
|
391
|
+
if (options) {
|
|
392
|
+
setCurrentView('options');
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
onClose();
|
|
396
|
+
}
|
|
397
|
+
};
|
|
398
|
+
var handleOptionSelect = function (optionValue) {
|
|
399
|
+
if (optionValue === 'custom') {
|
|
400
|
+
setCurrentView('calendar');
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
onDateSelect(optionValue, true);
|
|
404
|
+
};
|
|
405
|
+
var selectedValue;
|
|
406
|
+
if (rangeSelection.from) {
|
|
407
|
+
selectedValue = { from: rangeSelection.from, to: rangeSelection.to };
|
|
408
|
+
}
|
|
409
|
+
else if (value && !isRangeSelection) {
|
|
410
|
+
var formatString = showTimeInput ? "".concat(dateFormat, " ").concat(timeFormat) : dateFormat;
|
|
411
|
+
var parsedDate = (0, date_picker_utils_1.parseDate)(value, formatString);
|
|
412
|
+
if (parsedDate) {
|
|
413
|
+
selectedValue = parsedDate;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
// Determine if we should show the action buttons - now for both range selection and time input
|
|
417
|
+
var showActionButtons = isRangeSelection || showTimeInput;
|
|
418
|
+
var canApply = isRangeSelection ? rangeSelection.from && rangeSelection.to : !!rangeSelection.from;
|
|
419
|
+
var _p = __read(React.useState(null), 2), inputWidth = _p[0], setInputWidth = _p[1];
|
|
420
|
+
React.useEffect(function () {
|
|
421
|
+
if (open && anchorEl) {
|
|
422
|
+
var width = anchorEl.getBoundingClientRect().width;
|
|
423
|
+
setInputWidth(width);
|
|
424
|
+
}
|
|
425
|
+
}, [open, anchorEl]);
|
|
426
|
+
var ownerState = {
|
|
427
|
+
showTwoMonths: showTwoMonths,
|
|
428
|
+
isRangeSelection: isRangeSelection,
|
|
429
|
+
};
|
|
430
|
+
return (React.createElement(Root, __assign({ open: open, anchorEl: anchorEl, onClose: onClose, className: (0, clsx_1.default)(classes.root), ownerState: ownerState, ref: ref, anchorOrigin: {
|
|
431
|
+
vertical: 'bottom',
|
|
432
|
+
horizontal: 'left',
|
|
433
|
+
}, transformOrigin: {
|
|
434
|
+
vertical: 'top',
|
|
435
|
+
horizontal: 'left',
|
|
436
|
+
}, marginThreshold: 30, style: { marginTop: '-24px' } }, PopoverProps, rootProps),
|
|
437
|
+
React.createElement(Content, { className: classes.content, ownerState: __assign(__assign({}, ownerState), { inputWidth: inputWidth, currentView: currentView }) }, currentView === 'options' && options ? (React.createElement(dropdown_menu_1.DropdownMenuList, null, options.map(function (option, index) { return (React.createElement(dropdown_menu_1.DropdownMenuListItem, { key: index, title: option.text, selected: option.value === value, onClick: function () { return handleOptionSelect(option.value); } })); }))) : (React.createElement(React.Fragment, null,
|
|
438
|
+
React.createElement(CalendarWrapper, { className: classes.calendarWrapper },
|
|
439
|
+
React.createElement(react_day_picker_1.DayPicker, { mode: "range", selected: selectedValue, onSelect: handleCalendarSelect, showOutsideDays: true, numberOfMonths: showTwoMonths ? 2 : 1, pagedNavigation: showTwoMonths })),
|
|
440
|
+
showTimeInput && (React.createElement(React.Fragment, null,
|
|
441
|
+
React.createElement(TimeInputContainer, null,
|
|
442
|
+
React.createElement(TimeInputLabel, null, "Time:"),
|
|
443
|
+
React.createElement(TimeInput, { size: "small", value: hours, onChange: function (e) { return handleTimeChange(e.target.value, setHours, 23); }, placeholder: "HH" }),
|
|
444
|
+
React.createElement("span", null, ":"),
|
|
445
|
+
React.createElement(TimeInput, { size: "small", value: minutes, onChange: function (e) { return handleTimeChange(e.target.value, setMinutes, 59); }, placeholder: "MM" }),
|
|
446
|
+
React.createElement("span", null, ":"),
|
|
447
|
+
React.createElement(TimeInput, { size: "small", value: seconds, onChange: function (e) { return handleTimeChange(e.target.value, setSeconds, 59); }, placeholder: "SS" }),
|
|
448
|
+
isRangeSelection && (React.createElement(EndTimeInputContainer, null,
|
|
449
|
+
React.createElement(TimeInputLabel, null, "End Time:"),
|
|
450
|
+
React.createElement(TimeInput, { size: "small", value: endHours, onChange: function (e) { return handleTimeChange(e.target.value, setEndHours, 23); }, placeholder: "HH" }),
|
|
451
|
+
React.createElement("span", null, ":"),
|
|
452
|
+
React.createElement(TimeInput, { size: "small", value: endMinutes, onChange: function (e) { return handleTimeChange(e.target.value, setEndMinutes, 59); }, placeholder: "MM" }),
|
|
453
|
+
React.createElement("span", null, ":"),
|
|
454
|
+
React.createElement(TimeInput, { size: "small", value: endSeconds, onChange: function (e) { return handleTimeChange(e.target.value, setEndSeconds, 59); }, placeholder: "SS" })))))),
|
|
455
|
+
showActionButtons && (React.createElement(ButtonContainer, { className: classes.buttonContainer },
|
|
456
|
+
React.createElement(button_1.Button, { size: "small", variant: "outlined", onClick: cancelSelection, style: { marginRight: 8 } }, "Cancel"),
|
|
457
|
+
React.createElement(button_1.Button, { size: "small", variant: "contained", color: "primary", onClick: function () { return applySelection(); }, disabled: !canApply }, "Apply"))))))));
|
|
458
|
+
});
|