@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
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
24
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
25
|
+
if (!m) return o;
|
|
26
|
+
var i = m.call(o), r, ar = [], e;
|
|
27
|
+
try {
|
|
28
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
29
|
+
}
|
|
30
|
+
catch (error) { e = { error: error }; }
|
|
31
|
+
finally {
|
|
32
|
+
try {
|
|
33
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
34
|
+
}
|
|
35
|
+
finally { if (e) throw e.error; }
|
|
36
|
+
}
|
|
37
|
+
return ar;
|
|
38
|
+
};
|
|
39
|
+
import * as React from 'react';
|
|
40
|
+
import { CalendarIcon } from '../icon';
|
|
41
|
+
import { styled } from '../styled';
|
|
42
|
+
import { useMergedClasses } from '../styles/classes';
|
|
43
|
+
import { TextField } from '../text-field';
|
|
44
|
+
import clsx from '../utils/clsx';
|
|
45
|
+
import { datePickerClasses, datePickerComponentName, getDatePickerUtilityClass } from './date-picker-classes';
|
|
46
|
+
import { DatePickerContext } from './date-picker-context';
|
|
47
|
+
import { DatePickerPopover } from './date-picker-popover';
|
|
48
|
+
import { useDatePickerState } from './date-picker-state';
|
|
49
|
+
import { formatDate, parseDate, parseTimestamp } from './date-picker-utils';
|
|
50
|
+
var Root = styled('div', { name: datePickerComponentName, slot: 'Root' })({
|
|
51
|
+
position: 'relative',
|
|
52
|
+
width: '100%',
|
|
53
|
+
});
|
|
54
|
+
export var DatePicker = React.forwardRef(function (props, ref) {
|
|
55
|
+
var value = props.value, onChange = props.onChange, _a = props.dateFormat, dateFormat = _a === void 0 ? 'MM/dd/yyyy' : _a, _b = props.timeFormat, timeFormat = _b === void 0 ? 'HH:mm:ss' : _b, _c = props.placeholder, placeholder = _c === void 0 ? dateFormat + (props.showTimeInput ? ' ' + timeFormat : '') : _c, _d = props.disabled, disabled = _d === void 0 ? false : _d, _e = props.fullWidth, fullWidth = _e === void 0 ? false : _e, _f = props.size, size = _f === void 0 ? 'medium' : _f, _g = props.readOnly, readOnly = _g === void 0 ? false : _g, _h = props.required, required = _h === void 0 ? false : _h, _j = props.error, error = _j === void 0 ? false : _j, helperText = props.helperText, options = props.options, _k = props.isRangeSelection, isRangeSelection = _k === void 0 ? false : _k, _l = props.showTwoMonths, showTwoMonths = _l === void 0 ? false : _l, _m = props.showTimeInput, showTimeInput = _m === void 0 ? false : _m, _o = props.allowTimestampPasting, allowTimestampPasting = _o === void 0 ? false : _o, _p = props.timestampUnit, timestampUnit = _p === void 0 ? 'ms' : _p, _q = props.TextFieldProps, TextFieldProps = _q === void 0 ? {} : _q, propClasses = props.classes, externalState = props.state, rootProps = __rest(props, ["value", "onChange", "dateFormat", "timeFormat", "placeholder", "disabled", "fullWidth", "size", "readOnly", "required", "error", "helperText", "options", "isRangeSelection", "showTwoMonths", "showTimeInput", "allowTimestampPasting", "timestampUnit", "TextFieldProps", "classes", "state"]);
|
|
56
|
+
var classes = useMergedClasses(datePickerClasses, getDatePickerUtilityClass, propClasses);
|
|
57
|
+
var internalState = useDatePickerState();
|
|
58
|
+
var _r = externalState || internalState, triggerProps = _r.triggerProps, popoverProps = _r.popoverProps;
|
|
59
|
+
var _s = __read(React.useState(value || ''), 2), displayValue = _s[0], setDisplayValue = _s[1];
|
|
60
|
+
var inputRef = React.useRef(null);
|
|
61
|
+
React.useEffect(function () {
|
|
62
|
+
setDisplayValue(value || '');
|
|
63
|
+
}, [value]);
|
|
64
|
+
var handleDateSelect = function (newValue, shouldClose) {
|
|
65
|
+
if (shouldClose === void 0) { shouldClose = true; }
|
|
66
|
+
setDisplayValue(newValue);
|
|
67
|
+
if (onChange) {
|
|
68
|
+
onChange(newValue);
|
|
69
|
+
}
|
|
70
|
+
if (shouldClose) {
|
|
71
|
+
popoverProps.onClose();
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
var handlePaste = function (event) {
|
|
75
|
+
if (!allowTimestampPasting)
|
|
76
|
+
return;
|
|
77
|
+
var pastedText = event.clipboardData.getData('text');
|
|
78
|
+
var timestamp = parseInt(pastedText, 10);
|
|
79
|
+
if (!isNaN(timestamp)) {
|
|
80
|
+
event.preventDefault();
|
|
81
|
+
var date = parseTimestamp(timestamp, timestampUnit);
|
|
82
|
+
if (date) {
|
|
83
|
+
var formatString = showTimeInput ? "".concat(dateFormat, " ").concat(timeFormat) : dateFormat;
|
|
84
|
+
var formattedDate = formatDate(date, formatString);
|
|
85
|
+
setDisplayValue(formattedDate);
|
|
86
|
+
if (onChange) {
|
|
87
|
+
onChange(formattedDate);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
var handleInputChange = function (event) {
|
|
93
|
+
var newValue = event.target.value;
|
|
94
|
+
setDisplayValue(newValue);
|
|
95
|
+
if (newValue === '') {
|
|
96
|
+
if (onChange) {
|
|
97
|
+
onChange('');
|
|
98
|
+
}
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (isRangeSelection) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
var formatString = showTimeInput ? "".concat(dateFormat, " ").concat(timeFormat) : dateFormat;
|
|
105
|
+
var date = parseDate(newValue, formatString);
|
|
106
|
+
if (date) {
|
|
107
|
+
var formattedDate = formatDate(date, formatString);
|
|
108
|
+
if (onChange) {
|
|
109
|
+
onChange(formattedDate);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
var ownerState = {
|
|
114
|
+
size: size,
|
|
115
|
+
isRangeSelection: isRangeSelection,
|
|
116
|
+
showTimeInput: showTimeInput,
|
|
117
|
+
};
|
|
118
|
+
return (React.createElement(DatePickerContext.Provider, { value: {
|
|
119
|
+
dateFormat: dateFormat,
|
|
120
|
+
timeFormat: timeFormat,
|
|
121
|
+
onSelectDate: handleDateSelect,
|
|
122
|
+
isRangeSelection: isRangeSelection,
|
|
123
|
+
showTimeInput: showTimeInput,
|
|
124
|
+
} },
|
|
125
|
+
React.createElement(Root, __assign({ ref: ref, className: clsx(classes.root), ownerState: ownerState }, rootProps),
|
|
126
|
+
React.createElement(TextField, __assign({ value: displayValue, onChange: handleInputChange, onPaste: handlePaste, placeholder: placeholder, disabled: disabled, fullWidth: fullWidth, size: size, readOnly: readOnly, required: required, error: error, helperText: helperText, inputRef: inputRef, endAdornment: React.createElement(CalendarIcon, null), className: classes.input }, triggerProps, { onClick: function (e) {
|
|
127
|
+
if (!disabled && !readOnly) {
|
|
128
|
+
triggerProps.onClick(e);
|
|
129
|
+
}
|
|
130
|
+
if (TextFieldProps.onClick) {
|
|
131
|
+
TextFieldProps.onClick(e);
|
|
132
|
+
}
|
|
133
|
+
} }, TextFieldProps)),
|
|
134
|
+
React.createElement(DatePickerPopover, __assign({}, popoverProps, { onDateSelect: handleDateSelect, options: options, value: displayValue, dateFormat: dateFormat, timeFormat: timeFormat, showTwoMonths: showTwoMonths, isRangeSelection: isRangeSelection, showTimeInput: showTimeInput })))));
|
|
135
|
+
});
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { DatePicker } from './date-picker';
|
|
2
|
+
export { DatePickerPopover } from './date-picker-popover';
|
|
3
|
+
export { DatePickerContext, useDatePickerContext } from './date-picker-context';
|
|
4
|
+
export { DatePickerStateProvider, useDatePickerState, useDatePickerStateContext } from './date-picker-state';
|
|
5
|
+
export { datePickerClasses, datePickerPopoverClasses } from './date-picker-classes';
|
|
@@ -22,6 +22,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
22
22
|
};
|
|
23
23
|
import * as React from 'react';
|
|
24
24
|
import { capitalize } from '@mui/material';
|
|
25
|
+
import { Spinner } from '../spinner';
|
|
25
26
|
import MuiIconButton, { iconButtonClasses } from '@mui/material/IconButton';
|
|
26
27
|
import { styled } from '../styled';
|
|
27
28
|
import { useIconButtonContext } from './icon-button-context';
|
|
@@ -29,6 +30,13 @@ import { Tooltip } from '../tooltip';
|
|
|
29
30
|
export var IconButtonComponentName = 'QuantumIconButton';
|
|
30
31
|
export { iconButtonClasses };
|
|
31
32
|
var Root = styled(Tooltip, { name: IconButtonComponentName, slot: 'Tooltip' })({});
|
|
33
|
+
var ButtonSpinner = styled(Spinner, {
|
|
34
|
+
name: IconButtonComponentName,
|
|
35
|
+
slot: 'Spinner',
|
|
36
|
+
})({
|
|
37
|
+
position: 'inherit',
|
|
38
|
+
left: '-0.5rem',
|
|
39
|
+
});
|
|
32
40
|
// using any here to work arround TS perf issues with OverrideableComponent and styled
|
|
33
41
|
var StyledIconButton = styled(MuiIconButton, {
|
|
34
42
|
name: IconButtonComponentName,
|
|
@@ -36,7 +44,7 @@ var StyledIconButton = styled(MuiIconButton, {
|
|
|
36
44
|
})(function (_a) {
|
|
37
45
|
var _b;
|
|
38
46
|
var theme = _a.theme, edge = _a.edge, ownerState = _a.ownerState, color = _a.color;
|
|
39
|
-
return (__assign(__assign(__assign({}, (edge === 'end' && __assign({ marginRight: -11 }))), (_b = { '&:focus,&.Mui-focusVisible': color === 'danger'
|
|
47
|
+
return (__assign(__assign(__assign(__assign({}, (edge === 'end' && __assign({ marginRight: -11 }))), (_b = { '&:focus,&.Mui-focusVisible': color === 'danger'
|
|
40
48
|
? theme.mixins.focusRing({ color: theme.tokens.color_border_focus_state_danger })
|
|
41
49
|
: theme.mixins.focusRing(), padding: 0, borderRadius: '4px', transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color', 'color'], {
|
|
42
50
|
duration: theme.transitions.duration.short,
|
|
@@ -48,6 +56,9 @@ var StyledIconButton = styled(MuiIconButton, {
|
|
|
48
56
|
width: '1em',
|
|
49
57
|
}, _b)), (ownerState.shape === 'circular' && {
|
|
50
58
|
borderRadius: '50%',
|
|
59
|
+
})), (ownerState.isLoading && {
|
|
60
|
+
color: theme.tokens.color_fg_default,
|
|
61
|
+
backgroundColor: theme.palette.action.disabledBackground,
|
|
51
62
|
})));
|
|
52
63
|
});
|
|
53
64
|
var DisabledWrapper = styled('span', {
|
|
@@ -62,9 +73,9 @@ var DisabledWrapper = styled('span', {
|
|
|
62
73
|
});
|
|
63
74
|
export var IconButton = React.forwardRef(function (props, ref) {
|
|
64
75
|
var iconButtonContext = useIconButtonContext();
|
|
65
|
-
var children = props.children, label = props.label,
|
|
76
|
+
var isLoading = props.isLoading, _a = props.SpinnerProps, SpinnerProps = _a === void 0 ? {} : _a, children = props.children, label = props.label, _b = props.color, color = _b === void 0 ? 'default' : _b, _c = props.variant, variant = _c === void 0 ? 'link' : _c, _d = props.size, size = _d === void 0 ? 'medium' : _d, disabled = props.disabled, edgeProp = props.edge, _e = props.shape, shape = _e === void 0 ? 'default' : _e, tooltipPlacement = props.tooltipPlacement, onTooltipClose = props.onTooltipClose, analyticsId = props.analyticsId, iconButtonProps = __rest(props, ["isLoading", "SpinnerProps", "children", "label", "color", "variant", "size", "disabled", "edge", "shape", "tooltipPlacement", "onTooltipClose", "analyticsId"]);
|
|
66
77
|
var edge = edgeProp != null ? edgeProp : iconButtonContext.edge;
|
|
67
78
|
var captizedLable = label ? capitalize(label) : null;
|
|
68
|
-
var button = (React.createElement(StyledIconButton, __assign({ color: color, ref: ref, edge: edge, disabled: disabled, size: size, variant: variant, ownerState: { shape: shape }, "aria-label": captizedLable }, iconButtonProps), children));
|
|
79
|
+
var button = (React.createElement(StyledIconButton, __assign({ color: color, ref: ref, edge: edge, disabled: disabled || isLoading, size: size, variant: variant, ownerState: { shape: shape, isLoading: isLoading }, "aria-label": captizedLable }, (analyticsId && { 'data-analytics-id': analyticsId }), iconButtonProps), isLoading ? React.createElement(ButtonSpinner, __assign({}, SpinnerProps)) : React.createElement(React.Fragment, null, children)));
|
|
69
80
|
return (React.createElement(Root, { title: captizedLable, placement: tooltipPlacement, onClose: onTooltipClose }, disabled ? React.createElement(DisabledWrapper, null, button) : button));
|
|
70
81
|
});
|
package/esm/index.js
CHANGED
|
@@ -25,6 +25,7 @@ export * from './copy-button';
|
|
|
25
25
|
export * from './css-baseline';
|
|
26
26
|
export * from './danger-zone';
|
|
27
27
|
export * from './data-table';
|
|
28
|
+
export * from './date-picker';
|
|
28
29
|
export * from './description-block';
|
|
29
30
|
export * from './dialog';
|
|
30
31
|
export * from './divider';
|
package/esm/link/link.js
CHANGED
|
@@ -124,14 +124,14 @@ var EndIcon = styled('span', { name: linkComponentName, slot: 'EndIcon' })(funct
|
|
|
124
124
|
export var Link = React.forwardRef(function (props, ref) {
|
|
125
125
|
var className = props.className, children = props.children, startIcon = props.startIcon, endIcon = props.endIcon, _a = props.color, color = _a === void 0 ? 'primary' : _a, _b = props.component, component = _b === void 0 ? 'a' : _b, _c = props.underline, underline = _c === void 0 ? 'none' : _c, _d = props.variant, variant = _d === void 0 ? 'inherit' : _d,
|
|
126
126
|
// remove to avoid forwarding
|
|
127
|
-
propClasses = props.classes, rootProps = __rest(props, ["className", "children", "startIcon", "endIcon", "color", "component", "underline", "variant", "classes"]);
|
|
127
|
+
propClasses = props.classes, analyticsId = props.analyticsId, rootProps = __rest(props, ["className", "children", "startIcon", "endIcon", "color", "component", "underline", "variant", "classes", "analyticsId"]);
|
|
128
128
|
var classes = useMergedClasses(linkClasses, getLinkUtilityClass, propClasses);
|
|
129
129
|
var ownerState = {
|
|
130
130
|
color: color,
|
|
131
131
|
component: component,
|
|
132
132
|
underline: underline,
|
|
133
133
|
};
|
|
134
|
-
return (React.createElement(Root, __assign({ color: color === 'inherit' ? color : undefined, component: component, className: clsx([classes.root, className]), ref: ref, ownerState: ownerState, variant: variant }, rootProps),
|
|
134
|
+
return (React.createElement(Root, __assign({ color: color === 'inherit' ? color : undefined, component: component, className: clsx([classes.root, className]), ref: ref, ownerState: ownerState, variant: variant }, (analyticsId && { 'data-analytics-id': analyticsId }), rootProps),
|
|
135
135
|
!!startIcon && (React.createElement(StartIcon, { className: clsx(classes.icon, classes.startIcon, classes.startIcon) }, startIcon)),
|
|
136
136
|
children,
|
|
137
137
|
!!endIcon && React.createElement(EndIcon, { className: clsx(classes.icon, classes.endIcon) }, endIcon)));
|
package/esm/tabs/tab/tab.js
CHANGED
|
@@ -43,9 +43,9 @@ var LabelContainer = styled('div')(function (_a) {
|
|
|
43
43
|
});
|
|
44
44
|
});
|
|
45
45
|
export var Tab = React.forwardRef(function (_a, ref) {
|
|
46
|
-
var value = _a.value, productReleaseStage = _a.productReleaseStage, label = _a.label, _b = _a.sx, sx = _b === void 0 ? {} : _b, tabProps = __rest(_a, ["value", "productReleaseStage", "label", "sx"]);
|
|
46
|
+
var value = _a.value, productReleaseStage = _a.productReleaseStage, label = _a.label, _b = _a.sx, sx = _b === void 0 ? {} : _b, analyticsId = _a.analyticsId, tabProps = __rest(_a, ["value", "productReleaseStage", "label", "sx", "analyticsId"]);
|
|
47
47
|
var _c = useTabsContext(), getTabProps = _c.getTabProps, fullWidth = _c.fullWidth;
|
|
48
48
|
return (React.createElement(MuiTab, __assign({ ref: ref }, getTabProps(value), { value: value, label: React.createElement(StackLayout, { gutter: 0 },
|
|
49
49
|
React.createElement(LabelContainer, { width: sx === null || sx === void 0 ? void 0 : sx.width, maxWidth: sx === null || sx === void 0 ? void 0 : sx.maxWidth, title: label }, label),
|
|
50
|
-
productReleaseStage && React.createElement(AvailabilityLabel, { productReleaseStage: productReleaseStage })) }, tabProps, { fullWidth: fullWidth })));
|
|
50
|
+
productReleaseStage && React.createElement(AvailabilityLabel, { productReleaseStage: productReleaseStage })) }, (analyticsId && { 'data-analytics-id': analyticsId }), tabProps, { fullWidth: fullWidth })));
|
|
51
51
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { ISpinnerProps } from '../spinner';
|
|
2
3
|
import { iconButtonClasses, IconButtonTypeMap } from '@mui/material/IconButton';
|
|
3
4
|
import { OverridableComponent, OverrideProps, OverridableTypeMap } from '../overridable-component';
|
|
4
5
|
import { ITooltipProps } from '../tooltip';
|
|
@@ -15,6 +16,9 @@ export type IIconButtonTypeMap<ExtraPropsType = {}, DefaultElementType extends R
|
|
|
15
16
|
href?: string;
|
|
16
17
|
label: string;
|
|
17
18
|
target?: string;
|
|
19
|
+
isLoading?: boolean;
|
|
20
|
+
SpinnerProps?: Partial<ISpinnerProps>;
|
|
21
|
+
analyticsId?: string;
|
|
18
22
|
}, DefaultElementType>;
|
|
19
23
|
export interface IExtendIconButtonTypeMap<M extends OverridableTypeMap> {
|
|
20
24
|
props: M['props'] & (M['props'] extends {
|
|
@@ -48,6 +48,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
48
48
|
exports.IconButton = exports.iconButtonClasses = exports.IconButtonComponentName = void 0;
|
|
49
49
|
var React = __importStar(require("react"));
|
|
50
50
|
var material_1 = require("@mui/material");
|
|
51
|
+
var spinner_1 = require("../spinner");
|
|
51
52
|
var IconButton_1 = __importStar(require("@mui/material/IconButton"));
|
|
52
53
|
Object.defineProperty(exports, "iconButtonClasses", { enumerable: true, get: function () { return IconButton_1.iconButtonClasses; } });
|
|
53
54
|
var styled_1 = require("../styled");
|
|
@@ -55,6 +56,13 @@ var icon_button_context_1 = require("./icon-button-context");
|
|
|
55
56
|
var tooltip_1 = require("../tooltip");
|
|
56
57
|
exports.IconButtonComponentName = 'QuantumIconButton';
|
|
57
58
|
var Root = (0, styled_1.styled)(tooltip_1.Tooltip, { name: exports.IconButtonComponentName, slot: 'Tooltip' })({});
|
|
59
|
+
var ButtonSpinner = (0, styled_1.styled)(spinner_1.Spinner, {
|
|
60
|
+
name: exports.IconButtonComponentName,
|
|
61
|
+
slot: 'Spinner',
|
|
62
|
+
})({
|
|
63
|
+
position: 'inherit',
|
|
64
|
+
left: '-0.5rem',
|
|
65
|
+
});
|
|
58
66
|
// using any here to work arround TS perf issues with OverrideableComponent and styled
|
|
59
67
|
var StyledIconButton = (0, styled_1.styled)(IconButton_1.default, {
|
|
60
68
|
name: exports.IconButtonComponentName,
|
|
@@ -62,7 +70,7 @@ var StyledIconButton = (0, styled_1.styled)(IconButton_1.default, {
|
|
|
62
70
|
})(function (_a) {
|
|
63
71
|
var _b;
|
|
64
72
|
var theme = _a.theme, edge = _a.edge, ownerState = _a.ownerState, color = _a.color;
|
|
65
|
-
return (__assign(__assign(__assign({}, (edge === 'end' && __assign({ marginRight: -11 }))), (_b = { '&:focus,&.Mui-focusVisible': color === 'danger'
|
|
73
|
+
return (__assign(__assign(__assign(__assign({}, (edge === 'end' && __assign({ marginRight: -11 }))), (_b = { '&:focus,&.Mui-focusVisible': color === 'danger'
|
|
66
74
|
? theme.mixins.focusRing({ color: theme.tokens.color_border_focus_state_danger })
|
|
67
75
|
: theme.mixins.focusRing(), padding: 0, borderRadius: '4px', transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color', 'color'], {
|
|
68
76
|
duration: theme.transitions.duration.short,
|
|
@@ -74,6 +82,9 @@ var StyledIconButton = (0, styled_1.styled)(IconButton_1.default, {
|
|
|
74
82
|
width: '1em',
|
|
75
83
|
}, _b)), (ownerState.shape === 'circular' && {
|
|
76
84
|
borderRadius: '50%',
|
|
85
|
+
})), (ownerState.isLoading && {
|
|
86
|
+
color: theme.tokens.color_fg_default,
|
|
87
|
+
backgroundColor: theme.palette.action.disabledBackground,
|
|
77
88
|
})));
|
|
78
89
|
});
|
|
79
90
|
var DisabledWrapper = (0, styled_1.styled)('span', {
|
|
@@ -88,9 +99,9 @@ var DisabledWrapper = (0, styled_1.styled)('span', {
|
|
|
88
99
|
});
|
|
89
100
|
exports.IconButton = React.forwardRef(function (props, ref) {
|
|
90
101
|
var iconButtonContext = (0, icon_button_context_1.useIconButtonContext)();
|
|
91
|
-
var children = props.children, label = props.label,
|
|
102
|
+
var isLoading = props.isLoading, _a = props.SpinnerProps, SpinnerProps = _a === void 0 ? {} : _a, children = props.children, label = props.label, _b = props.color, color = _b === void 0 ? 'default' : _b, _c = props.variant, variant = _c === void 0 ? 'link' : _c, _d = props.size, size = _d === void 0 ? 'medium' : _d, disabled = props.disabled, edgeProp = props.edge, _e = props.shape, shape = _e === void 0 ? 'default' : _e, tooltipPlacement = props.tooltipPlacement, onTooltipClose = props.onTooltipClose, analyticsId = props.analyticsId, iconButtonProps = __rest(props, ["isLoading", "SpinnerProps", "children", "label", "color", "variant", "size", "disabled", "edge", "shape", "tooltipPlacement", "onTooltipClose", "analyticsId"]);
|
|
92
103
|
var edge = edgeProp != null ? edgeProp : iconButtonContext.edge;
|
|
93
104
|
var captizedLable = label ? (0, material_1.capitalize)(label) : null;
|
|
94
|
-
var button = (React.createElement(StyledIconButton, __assign({ color: color, ref: ref, edge: edge, disabled: disabled, size: size, variant: variant, ownerState: { shape: shape }, "aria-label": captizedLable }, iconButtonProps), children));
|
|
105
|
+
var button = (React.createElement(StyledIconButton, __assign({ color: color, ref: ref, edge: edge, disabled: disabled || isLoading, size: size, variant: variant, ownerState: { shape: shape, isLoading: isLoading }, "aria-label": captizedLable }, (analyticsId && { 'data-analytics-id': analyticsId }), iconButtonProps), isLoading ? React.createElement(ButtonSpinner, __assign({}, SpinnerProps)) : React.createElement(React.Fragment, null, children)));
|
|
95
106
|
return (React.createElement(Root, { title: captizedLable, placement: tooltipPlacement, onClose: onTooltipClose }, disabled ? React.createElement(DisabledWrapper, null, button) : button));
|
|
96
107
|
});
|
package/index.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ export * from './copy-button';
|
|
|
25
25
|
export * from './css-baseline';
|
|
26
26
|
export * from './danger-zone';
|
|
27
27
|
export * from './data-table';
|
|
28
|
+
export * from './date-picker';
|
|
28
29
|
export * from './description-block';
|
|
29
30
|
export * from './dialog';
|
|
30
31
|
export * from './divider';
|
package/index.js
CHANGED
|
@@ -41,6 +41,7 @@ __exportStar(require("./copy-button"), exports);
|
|
|
41
41
|
__exportStar(require("./css-baseline"), exports);
|
|
42
42
|
__exportStar(require("./danger-zone"), exports);
|
|
43
43
|
__exportStar(require("./data-table"), exports);
|
|
44
|
+
__exportStar(require("./date-picker"), exports);
|
|
44
45
|
__exportStar(require("./description-block"), exports);
|
|
45
46
|
__exportStar(require("./dialog"), exports);
|
|
46
47
|
__exportStar(require("./divider"), exports);
|
package/link/link.d.ts
CHANGED
package/link/link.js
CHANGED
|
@@ -153,14 +153,14 @@ var EndIcon = (0, styled_1.styled)('span', { name: link_classes_1.linkComponentN
|
|
|
153
153
|
exports.Link = React.forwardRef(function (props, ref) {
|
|
154
154
|
var className = props.className, children = props.children, startIcon = props.startIcon, endIcon = props.endIcon, _a = props.color, color = _a === void 0 ? 'primary' : _a, _b = props.component, component = _b === void 0 ? 'a' : _b, _c = props.underline, underline = _c === void 0 ? 'none' : _c, _d = props.variant, variant = _d === void 0 ? 'inherit' : _d,
|
|
155
155
|
// remove to avoid forwarding
|
|
156
|
-
propClasses = props.classes, rootProps = __rest(props, ["className", "children", "startIcon", "endIcon", "color", "component", "underline", "variant", "classes"]);
|
|
156
|
+
propClasses = props.classes, analyticsId = props.analyticsId, rootProps = __rest(props, ["className", "children", "startIcon", "endIcon", "color", "component", "underline", "variant", "classes", "analyticsId"]);
|
|
157
157
|
var classes = (0, classes_1.useMergedClasses)(link_classes_1.linkClasses, link_classes_1.getLinkUtilityClass, propClasses);
|
|
158
158
|
var ownerState = {
|
|
159
159
|
color: color,
|
|
160
160
|
component: component,
|
|
161
161
|
underline: underline,
|
|
162
162
|
};
|
|
163
|
-
return (React.createElement(Root, __assign({ color: color === 'inherit' ? color : undefined, component: component, className: (0, clsx_1.default)([classes.root, className]), ref: ref, ownerState: ownerState, variant: variant }, rootProps),
|
|
163
|
+
return (React.createElement(Root, __assign({ color: color === 'inherit' ? color : undefined, component: component, className: (0, clsx_1.default)([classes.root, className]), ref: ref, ownerState: ownerState, variant: variant }, (analyticsId && { 'data-analytics-id': analyticsId }), rootProps),
|
|
164
164
|
!!startIcon && (React.createElement(StartIcon, { className: (0, clsx_1.default)(classes.icon, classes.startIcon, classes.startIcon) }, startIcon)),
|
|
165
165
|
children,
|
|
166
166
|
!!endIcon && React.createElement(EndIcon, { className: (0, clsx_1.default)(classes.icon, classes.endIcon) }, endIcon)));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@auth0/quantum-product",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
"@mui/system": "5.15.9",
|
|
18
18
|
"@mui/utils": "5.15.9",
|
|
19
19
|
"clsx": "^1.2.1",
|
|
20
|
-
"md5": "^2.3.0"
|
|
20
|
+
"md5": "^2.3.0",
|
|
21
|
+
"react-day-picker": "^9.6.7"
|
|
21
22
|
},
|
|
22
23
|
"peerDependencies": {
|
|
23
24
|
"react": "*",
|
package/tabs/tab/tab.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { OverridableComponent, OverrideProps } from '../../overridable-component
|
|
|
3
3
|
import { TabTypeMap } from '@mui/material/Tab';
|
|
4
4
|
type ITabTypeMap<ExtraPropsType = {}, DefaultElementType extends React.ElementType = TabTypeMap['defaultComponent']> = TabTypeMap<ExtraPropsType & {
|
|
5
5
|
productReleaseStage?: 'beta' | 'earlyAccess' | 'generalAvailability';
|
|
6
|
+
analyticsId?: string;
|
|
6
7
|
}, DefaultElementType>;
|
|
7
8
|
export type ITabProps<D extends React.ElementType = ITabTypeMap['defaultComponent'], P = {}> = OverrideProps<ITabTypeMap<P, D>, D>;
|
|
8
9
|
export declare const Tab: OverridableComponent<ITabTypeMap<{}, "div">>;
|
package/tabs/tab/tab.js
CHANGED
|
@@ -72,9 +72,9 @@ var LabelContainer = (0, styled_1.styled)('div')(function (_a) {
|
|
|
72
72
|
});
|
|
73
73
|
});
|
|
74
74
|
exports.Tab = React.forwardRef(function (_a, ref) {
|
|
75
|
-
var value = _a.value, productReleaseStage = _a.productReleaseStage, label = _a.label, _b = _a.sx, sx = _b === void 0 ? {} : _b, tabProps = __rest(_a, ["value", "productReleaseStage", "label", "sx"]);
|
|
75
|
+
var value = _a.value, productReleaseStage = _a.productReleaseStage, label = _a.label, _b = _a.sx, sx = _b === void 0 ? {} : _b, analyticsId = _a.analyticsId, tabProps = __rest(_a, ["value", "productReleaseStage", "label", "sx", "analyticsId"]);
|
|
76
76
|
var _c = (0, tabs_context_1.useTabsContext)(), getTabProps = _c.getTabProps, fullWidth = _c.fullWidth;
|
|
77
77
|
return (React.createElement(Tab_1.default, __assign({ ref: ref }, getTabProps(value), { value: value, label: React.createElement(stack_layout_1.StackLayout, { gutter: 0 },
|
|
78
78
|
React.createElement(LabelContainer, { width: sx === null || sx === void 0 ? void 0 : sx.width, maxWidth: sx === null || sx === void 0 ? void 0 : sx.maxWidth, title: label }, label),
|
|
79
|
-
productReleaseStage && React.createElement(AvailabilityLabel, { productReleaseStage: productReleaseStage })) }, tabProps, { fullWidth: fullWidth })));
|
|
79
|
+
productReleaseStage && React.createElement(AvailabilityLabel, { productReleaseStage: productReleaseStage })) }, (analyticsId && { 'data-analytics-id': analyticsId }), tabProps, { fullWidth: fullWidth })));
|
|
80
80
|
});
|