@auth0/quantum-product 2.4.8 → 2.4.10

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 (54) hide show
  1. package/accordion/accordion-details.js +1 -1
  2. package/alert/alert.js +1 -1
  3. package/avatar-block/avatar-block.d.ts +3 -1
  4. package/avatar-block/avatar-block.js +3 -2
  5. package/button/button.d.ts +1 -0
  6. package/button/button.js +20 -4
  7. package/card/card-header/card-header.d.ts +17 -1
  8. package/card/card-header/card-header.js +24 -10
  9. package/chip/chip.js +1 -1
  10. package/code/code.js +4 -3
  11. package/color-text-field/color-text-field.js +24 -90
  12. package/copy-button/copy-button.d.ts +9 -10
  13. package/copy-button/copy-button.js +3 -3
  14. package/dialog/dialog-title/dialog-title.d.ts +1 -0
  15. package/dialog/dialog-title/dialog-title.js +2 -2
  16. package/dialog/dialog.d.ts +2 -0
  17. package/dialog/dialog.js +2 -2
  18. package/esm/accordion/accordion-details.js +1 -1
  19. package/esm/alert/alert.js +1 -1
  20. package/esm/avatar-block/avatar-block.js +3 -2
  21. package/esm/button/button.js +20 -4
  22. package/esm/card/card-header/card-header.js +24 -10
  23. package/esm/chip/chip.js +1 -1
  24. package/esm/code/code.js +4 -3
  25. package/esm/color-text-field/color-text-field.js +24 -90
  26. package/esm/copy-button/copy-button.js +3 -3
  27. package/esm/dialog/dialog-title/dialog-title.js +2 -2
  28. package/esm/dialog/dialog.js +2 -2
  29. package/esm/label/label.js +11 -7
  30. package/esm/page/page-header/page-header.js +1 -1
  31. package/esm/pagination/pager/pager.js +3 -3
  32. package/esm/pagination/pagination.js +2 -2
  33. package/esm/panel/panel/panel.js +2 -2
  34. package/esm/panel/panel-header/panel-header.js +14 -3
  35. package/esm/selectable-card/selectable-card.js +5 -2
  36. package/esm/text/text.js +2 -2
  37. package/esm/title-block/title-block.js +2 -2
  38. package/expansion-panel/expansion-panel-header.d.ts +2 -1
  39. package/label/label.d.ts +1 -0
  40. package/label/label.js +11 -7
  41. package/package.json +1 -1
  42. package/page/page-header/page-header.js +1 -1
  43. package/pagination/pager/pager.d.ts +2 -0
  44. package/pagination/pager/pager.js +3 -3
  45. package/pagination/pagination.d.ts +5 -1
  46. package/pagination/pagination.js +2 -2
  47. package/panel/panel/panel.d.ts +5 -1
  48. package/panel/panel/panel.js +2 -2
  49. package/panel/panel-header/panel-header.d.ts +3 -1
  50. package/panel/panel-header/panel-header.js +14 -3
  51. package/selectable-card/selectable-card.d.ts +8 -0
  52. package/selectable-card/selectable-card.js +5 -2
  53. package/text/text.js +2 -2
  54. package/title-block/title-block.js +2 -2
@@ -41,30 +41,7 @@ import { InputAdornment } from '../input';
41
41
  import { styled } from '../styled';
42
42
  import { TextField } from '../text-field';
43
43
  var colorTextFieldComponentName = 'QuantumColorTextField';
44
- var Root = styled(TextField, { name: colorTextFieldComponentName, slot: 'Root' })(function (_a) {
45
- var size = _a.size;
46
- return ({
47
- 'input::placeholder': {
48
- textTransform: 'uppercase',
49
- },
50
- '& > div:first-of-type': {
51
- paddingLeft: size === 'small' ? '9px' : '12px',
52
- },
53
- '& input[type="color"]': {
54
- cursor: 'pointer',
55
- width: size === 'small' ? '16px' : '20px',
56
- height: size === 'small' ? '16px' : '20px',
57
- '&::-webkit-color-swatch, &::-webkit-color-swatch-wrapper': {
58
- borderRadius: '2px',
59
- padding: 0,
60
- },
61
- '&::-moz-color-swatch': {
62
- borderRadius: '2px',
63
- padding: 0,
64
- },
65
- },
66
- });
67
- });
44
+ var Root = styled(TextField, { name: colorTextFieldComponentName, slot: 'Root' })({});
68
45
  var ColorPicker = styled('input', { name: colorTextFieldComponentName, slot: 'ColorPicker' })(function (_a) {
69
46
  var theme = _a.theme;
70
47
  return ({
@@ -78,82 +55,39 @@ var ColorPicker = styled('input', { name: colorTextFieldComponentName, slot: 'Co
78
55
  '&:focus': __assign({ outline: 'none' }, theme.mixins.focusRing()),
79
56
  });
80
57
  });
81
- // Normalizes HEX color values to valid 7char HEX color values
82
58
  var normalizeHex = function (hex) {
83
- if (hex.startsWith('#')) {
84
- hex = hex.slice(1);
59
+ if (hex.length === 4 && /^#[0-9A-F]{3}$/i.test(hex)) {
60
+ return "#".concat(hex[1]).concat(hex[1]).concat(hex[2]).concat(hex[2]).concat(hex[3]).concat(hex[3]);
85
61
  }
86
- var upperHex = hex.toUpperCase();
87
- switch (upperHex.length) {
88
- case 0:
89
- return '';
90
- case 1:
91
- return "#".concat(upperHex.repeat(6));
92
- case 2:
93
- return "#".concat(upperHex.repeat(3));
94
- case 3:
95
- case 4:
96
- case 5:
97
- return "#".concat(upperHex[0].repeat(2)).concat(upperHex[1].repeat(2)).concat(upperHex[2].repeat(2));
98
- default:
99
- return "#".concat(upperHex.padEnd(6, upperHex).slice(0, 6));
100
- }
101
- };
102
- var validateHex = function (hex) {
103
- var hexRegex = /^(#?[0-9a-fA-F]{1,6})$/;
104
- return hexRegex.test(hex);
62
+ return hex;
105
63
  };
106
64
  export var ColorTextField = React.forwardRef(function (props, ref) {
107
65
  var inputAdornmentProps = props.inputAdornmentProps, value = props.value, defaultValue = props.defaultValue, placeholder = props.placeholder, rootProps = __rest(props, ["inputAdornmentProps", "value", "defaultValue", "placeholder"]);
108
- var getInitialColor = function () { return value || placeholder || defaultValue || ''; };
109
- var normalizedInitialColor = normalizeHex(getInitialColor());
110
- var _a = __read(React.useState(value || defaultValue), 2), inputColor = _a[0], setInputColor = _a[1];
111
- var _b = __read(React.useState(null), 2), error = _b[0], setError = _b[1];
112
- //Derived state from inputColor (textfield value)
113
- var colorPicker = React.useMemo(function () {
114
- if (inputColor) {
115
- return normalizeHex(inputColor);
66
+ var _a = __read(React.useState(normalizeHex(value || placeholder || defaultValue || '#000000')), 2), color = _a[0], setColor = _a[1];
67
+ var handleColorChange = function (event) {
68
+ var value = event.target.value;
69
+ if (value.length === 4 && /^#[0-9A-F]{3}$/i.test(value)) {
70
+ var normalizedValue = normalizeHex(value);
71
+ if (props.onChange) {
72
+ props.onChange(__assign(__assign({}, event), { target: __assign(__assign({}, event.target), { value: normalizedValue }) }));
73
+ }
116
74
  }
117
- return normalizeHex(getInitialColor());
118
- }, [inputColor, value, placeholder, defaultValue]);
119
- var handleTextfieldChange = function (event) {
120
- var newValue = event.target.value;
121
- setInputColor(newValue);
122
- };
123
- var handleTextfieldBlur = function (event) {
124
- var _a, _b;
125
- if (!validateHex(event.target.value)) {
126
- setError('Color is invalid');
127
- return;
128
- }
129
- setError(null);
130
- var newValue = normalizeHex(event.target.value);
131
- setInputColor(newValue);
132
- var updatedEvent = __assign(__assign({}, event), { target: __assign(__assign({}, event.target), { value: newValue || normalizedInitialColor }) });
133
- (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, updatedEvent);
134
- (_b = props.onBlur) === null || _b === void 0 ? void 0 : _b.call(props, updatedEvent);
135
- };
136
- var handleColorPickerChange = function (event) {
137
- var _a, _b;
138
- if (!validateHex(event.target.value)) {
139
- setError('Color is invalid');
140
- return;
75
+ else {
76
+ if (props.onChange) {
77
+ props.onChange(event);
78
+ }
141
79
  }
142
- setError(null);
143
- var newValue = (_a = event.target.value) === null || _a === void 0 ? void 0 : _a.toUpperCase();
144
- setInputColor(newValue);
145
- (_b = props.onChange) === null || _b === void 0 ? void 0 : _b.call(props, __assign(__assign({}, event), { target: __assign(__assign({}, event.target), { value: newValue }) }));
146
80
  };
147
- // Rerender to avoid memoized value on defaultValue change
148
81
  React.useEffect(function () {
149
- setInputColor(defaultValue);
150
- }, [defaultValue]);
151
- return (React.createElement(Root, __assign({ ref: ref, error: error }, rootProps, { InputProps: {
82
+ var newColor = value || placeholder || defaultValue || '#000000';
83
+ if (newColor) {
84
+ setColor(normalizeHex(newColor));
85
+ }
86
+ }, [value, defaultValue, placeholder]);
87
+ return (React.createElement(Root, __assign({ ref: ref }, rootProps, { InputProps: {
152
88
  startAdornment: (React.createElement(InputAdornment, __assign({ position: "start" }, inputAdornmentProps),
153
- React.createElement(ColorPicker, { id: props.id ? "".concat(props.id, "-color-input") : undefined, name: props.name, type: "color", disabled: props.disabled, readOnly: props.readOnly, value: colorPicker, onChange: handleColorPickerChange }))),
154
- value: inputColor,
89
+ React.createElement(ColorPicker, { id: props.id ? "".concat(props.id, "-color-input") : undefined, name: props.name, type: "color", disabled: props.disabled, readOnly: props.readOnly, value: color, onChange: handleColorChange }))),
90
+ value: value,
155
91
  placeholder: placeholder,
156
- onBlur: handleTextfieldBlur,
157
- onChange: handleTextfieldChange,
158
92
  } })));
159
93
  });
@@ -40,8 +40,8 @@ import * as React from 'react';
40
40
  import { CopyIcon } from '../icon';
41
41
  import { IconButton } from '../icon-button';
42
42
  export var CopyButton = React.forwardRef(function (_a, ref) {
43
- var onClick = _a.onClick, label = _a.label, rootProps = __rest(_a, ["onClick", "label"]);
44
- var _b = __read(React.useState(false), 2), pressed = _b[0], setPressed = _b[1];
43
+ var onClick = _a.onClick, label = _a.label, _b = _a.copiedLabel, copiedLabel = _b === void 0 ? 'Copied!' : _b, rootProps = __rest(_a, ["onClick", "label", "copiedLabel"]);
44
+ var _c = __read(React.useState(false), 2), pressed = _c[0], setPressed = _c[1];
45
45
  React.useEffect(function () {
46
46
  if (!pressed) {
47
47
  return undefined;
@@ -59,7 +59,7 @@ export var CopyButton = React.forwardRef(function (_a, ref) {
59
59
  };
60
60
  var handleClose = function () { return setPressed(false); };
61
61
  // use title as the key to force a mount/unmount of the tooltip. This drives the feedback transition.
62
- var title = pressed ? 'Copied!' : label;
62
+ var title = pressed ? copiedLabel : label;
63
63
  return (React.createElement(IconButton, __assign({}, rootProps, { key: title, label: title, onTooltipClose: handleClose, ref: ref, tooltipPlacement: "top", onClick: handleClick }),
64
64
  React.createElement(CopyIcon, null)));
65
65
  });
@@ -39,10 +39,10 @@ var Root = styled(MuiDialogTitle, {
39
39
  justifyContent: 'space-between',
40
40
  });
41
41
  export var DialogTitle = React.forwardRef(function (props, ref) {
42
- var children = props.children, onClose = props.onClose, _a = props.disableTypography, disableTypography = _a === void 0 ? false : _a, id = props.id, className = props.className, propClasses = props.classes, dialogTitleProps = __rest(props, ["children", "onClose", "disableTypography", "id", "className", "classes"]);
42
+ var children = props.children, onClose = props.onClose, closeButtonLabel = props.closeButtonLabel, _a = props.disableTypography, disableTypography = _a === void 0 ? false : _a, id = props.id, className = props.className, propClasses = props.classes, dialogTitleProps = __rest(props, ["children", "onClose", "closeButtonLabel", "disableTypography", "id", "className", "classes"]);
43
43
  var classes = useMergedClasses(dialogTitleClasses, getDialogTitleUtilityClass, propClasses);
44
44
  return (React.createElement(Root, __assign({}, dialogTitleProps, { className: clsx(classes.root, className), ref: ref }),
45
45
  disableTypography ? (children) : (React.createElement(Text, { id: id, className: classes.title, variant: "h5", color: "textPrimary" }, children)),
46
- !!onClose && (React.createElement(IconButton, { shape: "circular", variant: "contained", "aria-label": "Close", size: "small", className: classes.closeButton, onClick: function (event) { return onClose(event, 'closeClick'); }, label: "Close" },
46
+ !!onClose && (React.createElement(IconButton, { shape: "circular", variant: "contained", "aria-label": "Close", size: "small", className: classes.closeButton, onClick: function (event) { return onClose(event, 'closeClick'); }, label: closeButtonLabel || 'Close' },
47
47
  React.createElement(XIcon, null)))));
48
48
  });
@@ -42,7 +42,7 @@ var Root = styled(MuiDialog, {
42
42
  _b);
43
43
  });
44
44
  export var Dialog = React.forwardRef(function (props, ref) {
45
- var title = props.title, actions = props.actions, children = props.children, onClose = props.onClose, idProp = props.id, disableBackdropClick = props.disableBackdropClick, _a = props.disableContentWrap, disableContentWrap = _a === void 0 ? false : _a, dialogProps = __rest(props, ["title", "actions", "children", "onClose", "id", "disableBackdropClick", "disableContentWrap"]);
45
+ var title = props.title, actions = props.actions, children = props.children, onClose = props.onClose, closeButtonLabel = props.closeButtonLabel, idProp = props.id, disableBackdropClick = props.disableBackdropClick, _a = props.disableContentWrap, disableContentWrap = _a === void 0 ? false : _a, dialogProps = __rest(props, ["title", "actions", "children", "onClose", "closeButtonLabel", "id", "disableBackdropClick", "disableContentWrap"]);
46
46
  var id = useId(props.id);
47
47
  var titleId = !!title && !!id ? "".concat(id, "-title") : undefined;
48
48
  var handleClose = function (event, reason) {
@@ -54,7 +54,7 @@ export var Dialog = React.forwardRef(function (props, ref) {
54
54
  }
55
55
  };
56
56
  return (React.createElement(Root, __assign({ PaperProps: { elevation: 4 } }, dialogProps, { id: id, ref: ref, onClose: onClose ? handleClose : undefined, "aria-labelledby": titleId }),
57
- !!title && (React.createElement(DialogTitle, { id: titleId, onClose: onClose }, title)),
57
+ !!title && (React.createElement(DialogTitle, { id: titleId, onClose: onClose, closeButtonLabel: closeButtonLabel }, title)),
58
58
  disableContentWrap ? children : React.createElement(DialogContent, null, children),
59
59
  !!actions && React.createElement(DialogActions, null, actions)));
60
60
  });
@@ -23,7 +23,7 @@ var __rest = (this && this.__rest) || function (s, e) {
23
23
  import * as React from 'react';
24
24
  import { rootShouldForwardProp, styled } from '../styled';
25
25
  export var labelComponentName = 'QuantumLabel';
26
- var getReleaseStageLabelProps = function (productReleaseStage, productReleaseStageAbbr) {
26
+ var getReleaseStageLabelProps = function (productReleaseStage, productReleaseStageAbbr, productReleaseStageLabel) {
27
27
  var labelProps = {
28
28
  color: 'default',
29
29
  variant: 'default',
@@ -32,23 +32,27 @@ var getReleaseStageLabelProps = function (productReleaseStage, productReleaseSta
32
32
  case 'new':
33
33
  case 'generalAvailability':
34
34
  labelProps.variant = 'filled';
35
- labelProps.children = 'New';
35
+ labelProps.children = productReleaseStageLabel !== null && productReleaseStageLabel !== void 0 ? productReleaseStageLabel : 'New';
36
36
  labelProps.color = 'primary';
37
37
  break;
38
38
  case 'beta':
39
- labelProps.children = 'Beta';
39
+ labelProps.children = productReleaseStageLabel !== null && productReleaseStageLabel !== void 0 ? productReleaseStageLabel : 'Beta';
40
40
  labelProps.color = 'primary';
41
41
  break;
42
42
  case 'first':
43
43
  case 'early':
44
44
  case 'earlyAccess':
45
45
  labelProps.color = 'primary';
46
- productReleaseStageAbbr ? (labelProps.children = 'Early') : (labelProps.children = 'Early Access');
46
+ productReleaseStageAbbr
47
+ ? (labelProps.children = productReleaseStageLabel !== null && productReleaseStageLabel !== void 0 ? productReleaseStageLabel : 'Early')
48
+ : (labelProps.children = productReleaseStageLabel !== null && productReleaseStageLabel !== void 0 ? productReleaseStageLabel : 'Early Access');
47
49
  break;
48
50
  case 'deprecated':
49
51
  labelProps.color = 'warning';
50
- labelProps.children = 'Deprecated';
52
+ labelProps.children = productReleaseStageLabel !== null && productReleaseStageLabel !== void 0 ? productReleaseStageLabel : 'Deprecated';
51
53
  break;
54
+ default:
55
+ labelProps.children = productReleaseStage;
52
56
  }
53
57
  return labelProps;
54
58
  };
@@ -109,9 +113,9 @@ var StyledLabel = styled('span', {
109
113
  })))));
110
114
  });
111
115
  export var Label = React.forwardRef(function (props, ref) {
112
- var productReleaseStage = props.productReleaseStage, _a = props.productReleaseStageAbbr, productReleaseStageAbbr = _a === void 0 ? true : _a, children = props.children, color = props.color, variant = props.variant, rootProps = __rest(props, ["productReleaseStage", "productReleaseStageAbbr", "children", "color", "variant"]);
116
+ var productReleaseStage = props.productReleaseStage, _a = props.productReleaseStageAbbr, productReleaseStageAbbr = _a === void 0 ? true : _a, children = props.children, color = props.color, variant = props.variant, productReleaseStageLabel = props.productReleaseStageLabel, rootProps = __rest(props, ["productReleaseStage", "productReleaseStageAbbr", "children", "color", "variant", "productReleaseStageLabel"]);
113
117
  var ownerState = productReleaseStage
114
- ? getReleaseStageLabelProps(productReleaseStage, productReleaseStageAbbr)
118
+ ? getReleaseStageLabelProps(productReleaseStage, productReleaseStageAbbr, productReleaseStageLabel)
115
119
  : {
116
120
  color: color,
117
121
  variant: variant,
@@ -84,7 +84,7 @@ export var PageHeader = React.forwardRef(function (props, ref) {
84
84
  React.createElement(AvatarBlock, { size: compact ? 'medium' : 'large', classes: {
85
85
  root: classes.avatarBlock,
86
86
  avatar: classes.avatar,
87
- }, avatar: avatar && React.createElement(AvatarContext.Provider, { value: { size: 'large' } }, avatar), titleTypographyProps: __assign({ variant: compact ? 'h5' : 'h3', component: 'h1', className: classes.title }, titleTypographyProps), title: React.createElement(React.Fragment, null,
87
+ }, avatar: avatar && React.createElement(AvatarContext.Provider, { value: { size: 'large' } }, avatar), titleTypographyProps: __assign({ variant: compact ? 'h5' : 'h3', component: 'h1', className: classes.title, noWrap: true }, titleTypographyProps), title: React.createElement(React.Fragment, null,
88
88
  title,
89
89
  !!productReleaseStage && (React.createElement(AvailabilityLabel, { className: classes.availabilityLabel, productReleaseStageAbbr: false, productReleaseStage: productReleaseStage }))), description: metadata, descriptionTypographyProps: __assign({ component: 'div', className: classes.metadata }, metadataTypographyProps), TitleBlockProps: { gutter: 0.5 }, endAdornment: !!actions && (React.createElement(Actions, { className: classes.actions, sx: { flex: 'none' } }, actions)) }))),
90
90
  !!description && (React.createElement(Text, __assign({ variant: "body2", color: "textSecondary", component: "p", className: classes.description }, descriptionTypographyProps), description))));
@@ -28,13 +28,13 @@ import { getPagerUtilityClass, pagerClasses } from './pager-classes';
28
28
  import { clsx } from '../../utils';
29
29
  import { ChevronLeftIcon, ChevronRightIcon } from '../../icon';
30
30
  export var Pager = React.forwardRef(function (props, ref) {
31
- var page = props.page, propClasses = props.classes, className = props.className, disabled = props.disabled, nextDisabled = props.nextDisabled, _a = props.nextIconButtonProps, nextIconButtonProps = _a === void 0 ? {} : _a, onPageChange = props.onPageChange, previousDisabled = props.previousDisabled, _b = props.previousIconButtonProps, previousIconButtonProps = _b === void 0 ? {} : _b, _c = props.size, size = _c === void 0 ? 'medium' : _c, _d = props.sx, sx = _d === void 0 ? {} : _d, totalPages = props.totalPages, rootProps = __rest(props, ["page", "classes", "className", "disabled", "nextDisabled", "nextIconButtonProps", "onPageChange", "previousDisabled", "previousIconButtonProps", "size", "sx", "totalPages"]);
31
+ var page = props.page, propClasses = props.classes, className = props.className, disabled = props.disabled, nextDisabled = props.nextDisabled, _a = props.nextIconButtonProps, nextIconButtonProps = _a === void 0 ? {} : _a, onPageChange = props.onPageChange, previousDisabled = props.previousDisabled, _b = props.previousIconButtonProps, previousIconButtonProps = _b === void 0 ? {} : _b, _c = props.size, size = _c === void 0 ? 'medium' : _c, _d = props.sx, sx = _d === void 0 ? {} : _d, totalPages = props.totalPages, _e = props.previousButtonLabel, previousButtonLabel = _e === void 0 ? 'Previous Page' : _e, _f = props.nextButtonLabel, nextButtonLabel = _f === void 0 ? 'Next Page' : _f, rootProps = __rest(props, ["page", "classes", "className", "disabled", "nextDisabled", "nextIconButtonProps", "onPageChange", "previousDisabled", "previousIconButtonProps", "size", "sx", "totalPages", "previousButtonLabel", "nextButtonLabel"]);
32
32
  var classes = useMergedClasses(pagerClasses, getPagerUtilityClass, propClasses);
33
33
  var isPrevDisabled = disabled || previousDisabled || page <= 1;
34
34
  var isNextDisabled = disabled || nextDisabled || (totalPages != null && page >= totalPages);
35
35
  return (React.createElement(StackLayout, __assign({ ref: ref, gutter: 1, className: clsx(classes.root, className), sx: __assign({ justifyContent: 'flex-end' }, sx) }, rootProps),
36
- React.createElement(IconButton, __assign({ variant: "outlined", size: size, className: classes.previousPageButton, onClick: function () { return onPageChange && onPageChange(page - 1); }, disabled: isPrevDisabled, label: "Previous page" }, nextIconButtonProps),
36
+ React.createElement(IconButton, __assign({ variant: "outlined", size: size, className: classes.previousPageButton, onClick: function () { return onPageChange && onPageChange(page - 1); }, disabled: isPrevDisabled, label: previousButtonLabel }, nextIconButtonProps),
37
37
  React.createElement(ChevronLeftIcon, null)),
38
- React.createElement(IconButton, __assign({ variant: "outlined", size: size, className: classes.nextPageButton, onClick: function () { return onPageChange && onPageChange(page + 1); }, disabled: isNextDisabled, label: "Next page" }, previousIconButtonProps),
38
+ React.createElement(IconButton, __assign({ variant: "outlined", size: size, className: classes.nextPageButton, onClick: function () { return onPageChange && onPageChange(page + 1); }, disabled: isNextDisabled, label: nextButtonLabel }, previousIconButtonProps),
39
39
  React.createElement(ChevronRightIcon, null))));
40
40
  });
@@ -61,7 +61,7 @@ var changePageIfAppropriate = function (_a) {
61
61
  }
62
62
  };
63
63
  export var Pagination = React.forwardRef(function (props, ref) {
64
- var children = props.children, className = props.className, page = props.page, perPage = props.perPage, items = props.items, _a = props.showPageSelection, showPageSelection = _a === void 0 ? false : _a, onPageChanged = props.onPageChanged, disabled = props.disabled, propClasses = props.classes, _b = props.PagerProps, PagerProps = _b === void 0 ? {} : _b, rootProps = __rest(props, ["children", "className", "page", "perPage", "items", "showPageSelection", "onPageChanged", "disabled", "classes", "PagerProps"]);
64
+ var children = props.children, className = props.className, page = props.page, perPage = props.perPage, items = props.items, _a = props.showPageSelection, showPageSelection = _a === void 0 ? false : _a, onPageChanged = props.onPageChanged, disabled = props.disabled, propClasses = props.classes, _b = props.nextButtonLabel, nextButtonLabel = _b === void 0 ? 'Next Page' : _b, _c = props.previousButtonLabel, previousButtonLabel = _c === void 0 ? 'Previous Page' : _c, _d = props.PagerProps, PagerProps = _d === void 0 ? {} : _d, rootProps = __rest(props, ["children", "className", "page", "perPage", "items", "showPageSelection", "onPageChanged", "disabled", "classes", "nextButtonLabel", "previousButtonLabel", "PagerProps"]);
65
65
  var classes = useMergedClasses(paginationClasses, getPaginationUtilityClass, propClasses);
66
66
  var pages = pagesFromItems(items, perPage);
67
67
  var pageOptions = React.useMemo(function () {
@@ -106,5 +106,5 @@ export var Pagination = React.forwardRef(function (props, ref) {
106
106
  " of ",
107
107
  items))),
108
108
  React.createElement(StackLayoutItem, null,
109
- React.createElement(Pager, __assign({ page: page, className: classes.pager, onPageChange: function (nextPage) { return changePageIfAppropriate({ nextPage: nextPage, total: items, perPage: perPage, onPageChanged: onPageChanged }); }, totalPages: pages, disabled: disabled }, PagerProps))))))));
109
+ React.createElement(Pager, __assign({ page: page, className: classes.pager, onPageChange: function (nextPage) { return changePageIfAppropriate({ nextPage: nextPage, total: items, perPage: perPage, onPageChanged: onPageChanged }); }, totalPages: pages, disabled: disabled }, PagerProps, { previousButtonLabel: previousButtonLabel, nextButtonLabel: nextButtonLabel }))))))));
110
110
  });
@@ -84,7 +84,7 @@ var CloseButton = styled(IconButton, {
84
84
  right: 24,
85
85
  });
86
86
  export var Panel = React.forwardRef(function (props, ref) {
87
- var title = props.title, isOpen = props.isOpen, _a = props.placement, placement = _a === void 0 ? 'end' : _a, _b = props.variant, variant = _b === void 0 ? 'permanent' : _b, _c = props.size, size = _c === void 0 ? 'medium' : _c, onClose = props.onClose, className = props.className, propClasses = props.classes, isFixed = props.isFixed, propOffsetTop = props.offsetTop, children = props.children, _d = props.closeIconButtonProps, closeIconButtonProps = _d === void 0 ? {} : _d, _e = props.PanelHeaderProps, PanelHeaderProps = _e === void 0 ? {} : _e, rootProps = __rest(props, ["title", "isOpen", "placement", "variant", "size", "onClose", "className", "classes", "isFixed", "offsetTop", "children", "closeIconButtonProps", "PanelHeaderProps"]);
87
+ var title = props.title, isOpen = props.isOpen, _a = props.placement, placement = _a === void 0 ? 'end' : _a, _b = props.variant, variant = _b === void 0 ? 'permanent' : _b, _c = props.size, size = _c === void 0 ? 'medium' : _c, onClose = props.onClose, closeButtonLabel = props.closeButtonLabel, className = props.className, propClasses = props.classes, isFixed = props.isFixed, propOffsetTop = props.offsetTop, children = props.children, _d = props.closeIconButtonProps, closeIconButtonProps = _d === void 0 ? {} : _d, _e = props.PanelHeaderProps, PanelHeaderProps = _e === void 0 ? {} : _e, rootProps = __rest(props, ["title", "isOpen", "placement", "variant", "size", "onClose", "closeButtonLabel", "className", "classes", "isFixed", "offsetTop", "children", "closeIconButtonProps", "PanelHeaderProps"]);
88
88
  var classes = useMergedClasses(panelClasses, getPanelUtilityClass, propClasses);
89
89
  var offsetTop = propOffsetTop != null ? propOffsetTop : isFixed ? 'appbar' : 0;
90
90
  var ownerState = {
@@ -99,7 +99,7 @@ export var Panel = React.forwardRef(function (props, ref) {
99
99
  return (React.createElement(Root, __assign({ ref: ref, ownerState: ownerState, className: clsx(classes.root, classes["size".concat(capitalize(size))], classes["variant".concat(capitalize(variant))], classes["placement".concat(capitalize(placement))], isFixed && classes.fixed, isOpen && classes.open, className) }, rootProps),
100
100
  React.createElement(PanelContext.Provider, { value: __assign(__assign({}, ownerState), { isCloseButtonVisible: showCloseButton }) },
101
101
  React.createElement(Content, { className: classes.content, ownerState: ownerState },
102
- showCloseButton && (React.createElement(CloseButton, __assign({ label: "close", className: classes.closeButton, onClick: function (e) { return onClose(e, 'closeButtonClick'); }, variant: "outlined", size: "small", shape: "circular" }, closeIconButtonProps),
102
+ showCloseButton && (React.createElement(CloseButton, __assign({ label: closeButtonLabel || 'close', className: classes.closeButton, onClick: function (e) { return onClose(e, 'closeButtonClick'); }, variant: "outlined", size: "small", shape: "circular" }, closeIconButtonProps),
103
103
  React.createElement(XIcon, null))),
104
104
  !!title && React.createElement(PanelHeader, __assign({ title: title }, PanelHeaderProps)),
105
105
  children))));
@@ -51,11 +51,22 @@ var EndAdornment = styled('div')(function (_a) {
51
51
  });
52
52
  });
53
53
  export var PanelHeader = React.forwardRef(function (props, ref) {
54
- var title = props.title, className = props.className, propClasses = props.classes, endAdornment = props.endAdornment, titleTextProps = props.titleTextProps, titleComponent = props.titleComponent, rootProps = __rest(props, ["title", "className", "classes", "endAdornment", "titleTextProps", "titleComponent"]);
54
+ var title = props.title, className = props.className, propClasses = props.classes, endAdornment = props.endAdornment, titleTextProps = props.titleTextProps, titleComponent = props.titleComponent, titleNoWrap = props.titleNoWrap, rootProps = __rest(props, ["title", "className", "classes", "endAdornment", "titleTextProps", "titleComponent", "titleNoWrap"]);
55
55
  var classes = useMergedClasses(panelHeaderClasses, getPanelHeaderUtilityClass, propClasses);
56
56
  var panelContext = usePanelContext();
57
+ var textStyles = titleNoWrap
58
+ ? {
59
+ whiteSpace: 'nowrap',
60
+ overflow: 'hidden',
61
+ textOverflow: 'ellipsis',
62
+ }
63
+ : {
64
+ whiteSpace: 'normal',
65
+ overflow: 'visible',
66
+ textOverflow: 'clip', // Don't apply ellipsis
67
+ };
57
68
  return (React.createElement(Root, __assign({ className: clsx(classes.root, className), ownerState: { isCloseButtonVisible: panelContext.isCloseButtonVisible }, ref: ref }, rootProps),
58
- React.createElement(Content, { className: classes.content },
59
- React.createElement(Text, __assign({ className: classes.title, component: titleComponent, variant: "h5" }, titleTextProps), title)),
69
+ React.createElement(Content, { className: classes.content, sx: textStyles },
70
+ React.createElement(Text, __assign({ className: classes.title, component: titleComponent, variant: "h5" }, titleTextProps, { title: titleNoWrap ? title : '', sx: textStyles }), title)),
60
71
  !!endAdornment && React.createElement(EndAdornment, { className: classes.endAdornment }, endAdornment)));
61
72
  });
@@ -49,9 +49,12 @@ var ControlRadio = createControl(Radio, 'ControlRadio');
49
49
  var ControlCheckbox = createControl(Checkbox, 'ControlCheckbox');
50
50
  var Content = styled('div', { name: selectableCardComponentName, slot: 'Content' })({
51
51
  flex: 1,
52
+ whiteSpace: 'nowrap',
53
+ overflow: 'hidden',
54
+ textOverflow: 'ellipsis',
52
55
  });
53
56
  export var SelectableCard = React.forwardRef(function (props, ref) {
54
- var avatar = props.avatar, label = props.label, propTitle = props.title, propDescription = props.description, helperText = props.helperText, value = props.value, disabled = props.disabled, name = props.name, onChange = props.onChange, checkedProp = props.checked, RadioProps = props.RadioProps, CheckboxProps = props.CheckboxProps, _a = props.controlPlacement, controlPlacement = _a === void 0 ? 'start' : _a, _b = props.size, size = _b === void 0 ? 'medium' : _b, type = props.type, _c = props.hideControl, hideControl = _c === void 0 ? false : _c, children = props.children, className = props.className, propClasses = props.classes, rootProps = __rest(props, ["avatar", "label", "title", "description", "helperText", "value", "disabled", "name", "onChange", "checked", "RadioProps", "CheckboxProps", "controlPlacement", "size", "type", "hideControl", "children", "className", "classes"]);
57
+ var avatar = props.avatar, label = props.label, propTitle = props.title, propDescription = props.description, helperText = props.helperText, value = props.value, disabled = props.disabled, name = props.name, onChange = props.onChange, checkedProp = props.checked, RadioProps = props.RadioProps, CheckboxProps = props.CheckboxProps, _a = props.controlPlacement, controlPlacement = _a === void 0 ? 'start' : _a, _b = props.size, size = _b === void 0 ? 'medium' : _b, type = props.type, _c = props.hideControl, hideControl = _c === void 0 ? false : _c, children = props.children, className = props.className, _d = props.noWrap, noWrap = _d === void 0 ? false : _d, propClasses = props.classes, rootProps = __rest(props, ["avatar", "label", "title", "description", "helperText", "value", "disabled", "name", "onChange", "checked", "RadioProps", "CheckboxProps", "controlPlacement", "size", "type", "hideControl", "children", "className", "noWrap", "classes"]);
55
58
  var inputRef = React.createRef();
56
59
  var radioGroup = useRadioGroup();
57
60
  var classes = useMergedClasses(selectableCardClasses, getSelectableCardUtilityClass, propClasses);
@@ -61,7 +64,7 @@ export var SelectableCard = React.forwardRef(function (props, ref) {
61
64
  if (radioGroup && checked == null) {
62
65
  checked = radioGroup.value === value;
63
66
  }
64
- var content = children || React.createElement(CardHeader, { avatar: avatar, title: title, subheader: description });
67
+ var content = children || React.createElement(CardHeader, { avatar: avatar, title: title, subheader: description, noWrap: noWrap });
65
68
  var Control = type === 'radio' ? ControlRadio : ControlCheckbox;
66
69
  var control = (React.createElement(Control, __assign({ value: value, inputRef: inputRef, onChange: onChange, disabled: disabled, className: type === 'radio' ? classes.controlRadio : classes.controlCheckbox, ownerState: { hidden: hideControl }, checked: checked }, (type === 'radio' ? RadioProps : CheckboxProps))));
67
70
  return (React.createElement(Root, __assign({}, { ref: ref }, { size: size, selected: checked, disabled: disabled, button: true, className: clsx(classes.root, className), component: "label" }, rootProps),
package/esm/text/text.js CHANGED
@@ -86,8 +86,8 @@ var getComponentForVariant = function (_a) {
86
86
  return textVariantMapping[variant];
87
87
  };
88
88
  export var Text = React.forwardRef(function (props, ref) {
89
- var variant = props.variant, propClasses = props.classes, propComponent = props.component, className = props.className, rootProps = __rest(props, ["variant", "classes", "component", "className"]);
89
+ var variant = props.variant, propClasses = props.classes, propComponent = props.component, className = props.className, sx = props.sx, rootProps = __rest(props, ["variant", "classes", "component", "className", "sx"]);
90
90
  var classes = useUtilityClasses(variant, propClasses);
91
91
  var component = propComponent || getComponentForVariant({ variant: variant });
92
- return (React.createElement(Root, __assign({ ref: ref, variant: variant, className: clsx([classes.root, className]) }, { component: component }, rootProps)));
92
+ return (React.createElement(Root, __assign({ ref: ref, variant: variant, className: clsx([classes.root, className]) }, { component: component }, { sx: sx }, rootProps)));
93
93
  });
@@ -28,6 +28,6 @@ import { titleBlockClasses } from './title-block-classes';
28
28
  export var TitleBlock = React.forwardRef(function (_a, ref) {
29
29
  var title = _a.title, _b = _a.titleTypographyProps, titleTypographyProps = _b === void 0 ? {} : _b, description = _a.description, _c = _a.descriptionTypographyProps, descriptionTypographyProps = _c === void 0 ? {} : _c, className = _a.className, rootProps = __rest(_a, ["title", "titleTypographyProps", "description", "descriptionTypographyProps", "className"]);
30
30
  return (React.createElement(RowLayout, __assign({ gutter: 0, className: clsx(titleBlockClasses.root, className) }, rootProps, { ref: ref }),
31
- React.createElement(Text, __assign({ className: titleBlockClasses.title, variant: "subtitle2", color: "inherit" }, titleTypographyProps, { title: title }), title),
32
- !!description && (React.createElement(Text, __assign({ variant: "body2", color: "textSecondary", className: titleBlockClasses.description }, descriptionTypographyProps, { title: description }), description))));
31
+ React.createElement(Text, __assign({ className: titleBlockClasses.title, variant: "subtitle2", color: "inherit" }, titleTypographyProps, { title: (titleTypographyProps === null || titleTypographyProps === void 0 ? void 0 : titleTypographyProps.noWrap) && typeof title === 'string' ? title : '' }), title),
32
+ !!description && (React.createElement(Text, __assign({ variant: "body2", color: "textSecondary", className: titleBlockClasses.description }, descriptionTypographyProps, { title: (descriptionTypographyProps === null || descriptionTypographyProps === void 0 ? void 0 : descriptionTypographyProps.noWrap) && typeof title === 'string' ? description : '' }), description))));
33
33
  });
@@ -10,4 +10,5 @@ export declare const ExpansionPanelHeader: import("styled-components").StyledCom
10
10
  subheaderTypographyProps?: import("..").ITextProps<any> | undefined;
11
11
  title?: import("react").ReactNode;
12
12
  titleTypographyProps?: import("..").ITextProps<any> | undefined;
13
- } & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "title" | "ref" | "action" | "size" | "classes" | "avatar" | "disableTypography" | "subheader" | "subheaderTypographyProps" | "titleTypographyProps"> & import("../styled").IStyledCommonProps & import("react").RefAttributes<HTMLDivElement>>, import("..").ITheme, import("@mui/system").MUIStyledCommonProps<import("..").ITheme>, never>;
13
+ noWrap?: boolean | undefined;
14
+ } & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "title" | "ref" | "action" | "size" | "classes" | "avatar" | "disableTypography" | "subheader" | "subheaderTypographyProps" | "titleTypographyProps" | "noWrap"> & import("../styled").IStyledCommonProps & import("react").RefAttributes<HTMLDivElement>>, import("..").ITheme, import("@mui/system").MUIStyledCommonProps<import("..").ITheme>, never>;
package/label/label.d.ts CHANGED
@@ -13,6 +13,7 @@ export interface ILabelComponentProps {
13
13
  * @default true
14
14
  */
15
15
  productReleaseStageAbbr?: boolean;
16
+ productReleaseStageLabel?: string;
16
17
  }
17
18
  export type ILabelProps = IStyledComponentProps<{
18
19
  props: ILabelComponentProps;
package/label/label.js CHANGED
@@ -49,7 +49,7 @@ exports.Label = exports.labelComponentName = void 0;
49
49
  var React = __importStar(require("react"));
50
50
  var styled_1 = require("../styled");
51
51
  exports.labelComponentName = 'QuantumLabel';
52
- var getReleaseStageLabelProps = function (productReleaseStage, productReleaseStageAbbr) {
52
+ var getReleaseStageLabelProps = function (productReleaseStage, productReleaseStageAbbr, productReleaseStageLabel) {
53
53
  var labelProps = {
54
54
  color: 'default',
55
55
  variant: 'default',
@@ -58,23 +58,27 @@ var getReleaseStageLabelProps = function (productReleaseStage, productReleaseSta
58
58
  case 'new':
59
59
  case 'generalAvailability':
60
60
  labelProps.variant = 'filled';
61
- labelProps.children = 'New';
61
+ labelProps.children = productReleaseStageLabel !== null && productReleaseStageLabel !== void 0 ? productReleaseStageLabel : 'New';
62
62
  labelProps.color = 'primary';
63
63
  break;
64
64
  case 'beta':
65
- labelProps.children = 'Beta';
65
+ labelProps.children = productReleaseStageLabel !== null && productReleaseStageLabel !== void 0 ? productReleaseStageLabel : 'Beta';
66
66
  labelProps.color = 'primary';
67
67
  break;
68
68
  case 'first':
69
69
  case 'early':
70
70
  case 'earlyAccess':
71
71
  labelProps.color = 'primary';
72
- productReleaseStageAbbr ? (labelProps.children = 'Early') : (labelProps.children = 'Early Access');
72
+ productReleaseStageAbbr
73
+ ? (labelProps.children = productReleaseStageLabel !== null && productReleaseStageLabel !== void 0 ? productReleaseStageLabel : 'Early')
74
+ : (labelProps.children = productReleaseStageLabel !== null && productReleaseStageLabel !== void 0 ? productReleaseStageLabel : 'Early Access');
73
75
  break;
74
76
  case 'deprecated':
75
77
  labelProps.color = 'warning';
76
- labelProps.children = 'Deprecated';
78
+ labelProps.children = productReleaseStageLabel !== null && productReleaseStageLabel !== void 0 ? productReleaseStageLabel : 'Deprecated';
77
79
  break;
80
+ default:
81
+ labelProps.children = productReleaseStage;
78
82
  }
79
83
  return labelProps;
80
84
  };
@@ -135,9 +139,9 @@ var StyledLabel = (0, styled_1.styled)('span', {
135
139
  })))));
136
140
  });
137
141
  exports.Label = React.forwardRef(function (props, ref) {
138
- var productReleaseStage = props.productReleaseStage, _a = props.productReleaseStageAbbr, productReleaseStageAbbr = _a === void 0 ? true : _a, children = props.children, color = props.color, variant = props.variant, rootProps = __rest(props, ["productReleaseStage", "productReleaseStageAbbr", "children", "color", "variant"]);
142
+ var productReleaseStage = props.productReleaseStage, _a = props.productReleaseStageAbbr, productReleaseStageAbbr = _a === void 0 ? true : _a, children = props.children, color = props.color, variant = props.variant, productReleaseStageLabel = props.productReleaseStageLabel, rootProps = __rest(props, ["productReleaseStage", "productReleaseStageAbbr", "children", "color", "variant", "productReleaseStageLabel"]);
139
143
  var ownerState = productReleaseStage
140
- ? getReleaseStageLabelProps(productReleaseStage, productReleaseStageAbbr)
144
+ ? getReleaseStageLabelProps(productReleaseStage, productReleaseStageAbbr, productReleaseStageLabel)
141
145
  : {
142
146
  color: color,
143
147
  variant: variant,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@auth0/quantum-product",
3
- "version": "2.4.8",
3
+ "version": "2.4.10",
4
4
  "sideEffects": false,
5
5
  "license": "Apache-2.0",
6
6
  "publishConfig": {
@@ -113,7 +113,7 @@ exports.PageHeader = React.forwardRef(function (props, ref) {
113
113
  React.createElement(avatar_block_1.AvatarBlock, { size: compact ? 'medium' : 'large', classes: {
114
114
  root: classes.avatarBlock,
115
115
  avatar: classes.avatar,
116
- }, avatar: avatar && React.createElement(avatar_1.AvatarContext.Provider, { value: { size: 'large' } }, avatar), titleTypographyProps: __assign({ variant: compact ? 'h5' : 'h3', component: 'h1', className: classes.title }, titleTypographyProps), title: React.createElement(React.Fragment, null,
116
+ }, avatar: avatar && React.createElement(avatar_1.AvatarContext.Provider, { value: { size: 'large' } }, avatar), titleTypographyProps: __assign({ variant: compact ? 'h5' : 'h3', component: 'h1', className: classes.title, noWrap: true }, titleTypographyProps), title: React.createElement(React.Fragment, null,
117
117
  title,
118
118
  !!productReleaseStage && (React.createElement(AvailabilityLabel, { className: classes.availabilityLabel, productReleaseStageAbbr: false, productReleaseStage: productReleaseStage }))), description: metadata, descriptionTypographyProps: __assign({ component: 'div', className: classes.metadata }, metadataTypographyProps), TitleBlockProps: { gutter: 0.5 }, endAdornment: !!actions && (React.createElement(exports.Actions, { className: classes.actions, sx: { flex: 'none' } }, actions)) }))),
119
119
  !!description && (React.createElement(text_1.Text, __assign({ variant: "body2", color: "textSecondary", component: "p", className: classes.description }, descriptionTypographyProps), description))));
@@ -13,5 +13,7 @@ export interface IPagerProps extends IStackLayoutProps {
13
13
  previousIconButtonProps?: IIconButtonProps;
14
14
  size?: IIconButtonProps['size'];
15
15
  totalPages?: number;
16
+ previousButtonLabel?: string;
17
+ nextButtonLabel?: string;
16
18
  }
17
19
  export declare const Pager: React.ForwardRefExoticComponent<IPagerProps & React.RefAttributes<HTMLDivElement>>;
@@ -54,13 +54,13 @@ var pager_classes_1 = require("./pager-classes");
54
54
  var utils_1 = require("../../utils");
55
55
  var icon_1 = require("../../icon");
56
56
  exports.Pager = React.forwardRef(function (props, ref) {
57
- var page = props.page, propClasses = props.classes, className = props.className, disabled = props.disabled, nextDisabled = props.nextDisabled, _a = props.nextIconButtonProps, nextIconButtonProps = _a === void 0 ? {} : _a, onPageChange = props.onPageChange, previousDisabled = props.previousDisabled, _b = props.previousIconButtonProps, previousIconButtonProps = _b === void 0 ? {} : _b, _c = props.size, size = _c === void 0 ? 'medium' : _c, _d = props.sx, sx = _d === void 0 ? {} : _d, totalPages = props.totalPages, rootProps = __rest(props, ["page", "classes", "className", "disabled", "nextDisabled", "nextIconButtonProps", "onPageChange", "previousDisabled", "previousIconButtonProps", "size", "sx", "totalPages"]);
57
+ var page = props.page, propClasses = props.classes, className = props.className, disabled = props.disabled, nextDisabled = props.nextDisabled, _a = props.nextIconButtonProps, nextIconButtonProps = _a === void 0 ? {} : _a, onPageChange = props.onPageChange, previousDisabled = props.previousDisabled, _b = props.previousIconButtonProps, previousIconButtonProps = _b === void 0 ? {} : _b, _c = props.size, size = _c === void 0 ? 'medium' : _c, _d = props.sx, sx = _d === void 0 ? {} : _d, totalPages = props.totalPages, _e = props.previousButtonLabel, previousButtonLabel = _e === void 0 ? 'Previous Page' : _e, _f = props.nextButtonLabel, nextButtonLabel = _f === void 0 ? 'Next Page' : _f, rootProps = __rest(props, ["page", "classes", "className", "disabled", "nextDisabled", "nextIconButtonProps", "onPageChange", "previousDisabled", "previousIconButtonProps", "size", "sx", "totalPages", "previousButtonLabel", "nextButtonLabel"]);
58
58
  var classes = (0, classes_1.useMergedClasses)(pager_classes_1.pagerClasses, pager_classes_1.getPagerUtilityClass, propClasses);
59
59
  var isPrevDisabled = disabled || previousDisabled || page <= 1;
60
60
  var isNextDisabled = disabled || nextDisabled || (totalPages != null && page >= totalPages);
61
61
  return (React.createElement(stack_layout_1.StackLayout, __assign({ ref: ref, gutter: 1, className: (0, utils_1.clsx)(classes.root, className), sx: __assign({ justifyContent: 'flex-end' }, sx) }, rootProps),
62
- React.createElement(icon_button_1.IconButton, __assign({ variant: "outlined", size: size, className: classes.previousPageButton, onClick: function () { return onPageChange && onPageChange(page - 1); }, disabled: isPrevDisabled, label: "Previous page" }, nextIconButtonProps),
62
+ React.createElement(icon_button_1.IconButton, __assign({ variant: "outlined", size: size, className: classes.previousPageButton, onClick: function () { return onPageChange && onPageChange(page - 1); }, disabled: isPrevDisabled, label: previousButtonLabel }, nextIconButtonProps),
63
63
  React.createElement(icon_1.ChevronLeftIcon, null)),
64
- React.createElement(icon_button_1.IconButton, __assign({ variant: "outlined", size: size, className: classes.nextPageButton, onClick: function () { return onPageChange && onPageChange(page + 1); }, disabled: isNextDisabled, label: "Next page" }, previousIconButtonProps),
64
+ React.createElement(icon_button_1.IconButton, __assign({ variant: "outlined", size: size, className: classes.nextPageButton, onClick: function () { return onPageChange && onPageChange(page + 1); }, disabled: isNextDisabled, label: nextButtonLabel }, previousIconButtonProps),
65
65
  React.createElement(icon_1.ChevronRightIcon, null))));
66
66
  });
@@ -12,6 +12,8 @@ export type IPaginationProps = IStyledComponentProps<{
12
12
  onPageChanged(page: number): void;
13
13
  PagerProps?: Partial<IPagerProps>;
14
14
  classes?: Partial<PaginationClasses>;
15
+ nextButtonLabel?: string;
16
+ previousButtonLabel?: string;
15
17
  };
16
18
  defaultComponent: 'fieldset';
17
19
  }>;
@@ -24,4 +26,6 @@ export declare const Pagination: React.ForwardRefExoticComponent<{
24
26
  onPageChanged(page: number): void;
25
27
  PagerProps?: Partial<IPagerProps> | undefined;
26
28
  classes?: Partial<Record<"root" | "pageSelect" | "pageLabelText" | "pager", string>> | undefined;
27
- } & Omit<React.DetailedHTMLProps<React.FieldsetHTMLAttributes<HTMLFieldSetElement>, HTMLFieldSetElement>, "ref" | "disabled" | "page" | "classes" | "items" | "showPageSelection" | "perPage" | "onPageChanged" | "PagerProps"> & import("../styled").IStyledCommonProps & React.RefAttributes<HTMLFieldSetElement>>;
29
+ nextButtonLabel?: string | undefined;
30
+ previousButtonLabel?: string | undefined;
31
+ } & Omit<React.DetailedHTMLProps<React.FieldsetHTMLAttributes<HTMLFieldSetElement>, HTMLFieldSetElement>, "ref" | "disabled" | "page" | "classes" | "items" | "previousButtonLabel" | "nextButtonLabel" | "showPageSelection" | "perPage" | "onPageChanged" | "PagerProps"> & import("../styled").IStyledCommonProps & React.RefAttributes<HTMLFieldSetElement>>;
@@ -90,7 +90,7 @@ var changePageIfAppropriate = function (_a) {
90
90
  }
91
91
  };
92
92
  exports.Pagination = React.forwardRef(function (props, ref) {
93
- var children = props.children, className = props.className, page = props.page, perPage = props.perPage, items = props.items, _a = props.showPageSelection, showPageSelection = _a === void 0 ? false : _a, onPageChanged = props.onPageChanged, disabled = props.disabled, propClasses = props.classes, _b = props.PagerProps, PagerProps = _b === void 0 ? {} : _b, rootProps = __rest(props, ["children", "className", "page", "perPage", "items", "showPageSelection", "onPageChanged", "disabled", "classes", "PagerProps"]);
93
+ var children = props.children, className = props.className, page = props.page, perPage = props.perPage, items = props.items, _a = props.showPageSelection, showPageSelection = _a === void 0 ? false : _a, onPageChanged = props.onPageChanged, disabled = props.disabled, propClasses = props.classes, _b = props.nextButtonLabel, nextButtonLabel = _b === void 0 ? 'Next Page' : _b, _c = props.previousButtonLabel, previousButtonLabel = _c === void 0 ? 'Previous Page' : _c, _d = props.PagerProps, PagerProps = _d === void 0 ? {} : _d, rootProps = __rest(props, ["children", "className", "page", "perPage", "items", "showPageSelection", "onPageChanged", "disabled", "classes", "nextButtonLabel", "previousButtonLabel", "PagerProps"]);
94
94
  var classes = (0, classes_1.useMergedClasses)(pagination_classes_1.paginationClasses, pagination_classes_1.getPaginationUtilityClass, propClasses);
95
95
  var pages = pagesFromItems(items, perPage);
96
96
  var pageOptions = React.useMemo(function () {
@@ -135,5 +135,5 @@ exports.Pagination = React.forwardRef(function (props, ref) {
135
135
  " of ",
136
136
  items))),
137
137
  React.createElement(stack_layout_1.StackLayoutItem, null,
138
- React.createElement(pager_1.Pager, __assign({ page: page, className: classes.pager, onPageChange: function (nextPage) { return changePageIfAppropriate({ nextPage: nextPage, total: items, perPage: perPage, onPageChanged: onPageChanged }); }, totalPages: pages, disabled: disabled }, PagerProps))))))));
138
+ React.createElement(pager_1.Pager, __assign({ page: page, className: classes.pager, onPageChange: function (nextPage) { return changePageIfAppropriate({ nextPage: nextPage, total: items, perPage: perPage, onPageChanged: onPageChanged }); }, totalPages: pages, disabled: disabled }, PagerProps, { previousButtonLabel: previousButtonLabel, nextButtonLabel: nextButtonLabel }))))))));
139
139
  });
@@ -16,6 +16,8 @@ export type IPanelProps = IStyledComponentProps<{
16
16
  children?: React.ReactNode;
17
17
  /** Event fired when panel tries to close. */
18
18
  onClose?(event: React.MouseEvent<HTMLButtonElement>, reason: 'closeButtonClick'): void;
19
+ /** convenience prop for rendering the label for close button with a Panel component */
20
+ closeButtonLabel?: string;
19
21
  classes?: Partial<PanelClasses>;
20
22
  closeIconButtonProps?: Partial<IIconButtonProps>;
21
23
  PanelHeaderProps?: Partial<IPanelHeaderProps>;
@@ -29,7 +31,9 @@ export declare const Panel: React.ForwardRefExoticComponent<Partial<IPanelOwnerS
29
31
  children?: React.ReactNode;
30
32
  /** Event fired when panel tries to close. */
31
33
  onClose?(event: React.MouseEvent<HTMLButtonElement>, reason: 'closeButtonClick'): void;
34
+ /** convenience prop for rendering the label for close button with a Panel component */
35
+ closeButtonLabel?: string | undefined;
32
36
  classes?: Partial<Record<"fixed" | "content" | "open" | "root" | "sizeSmall" | "sizeMedium" | "sizeLarge" | "closeButton" | "variantFloating" | "variantPersistent" | "variantPermanent" | "placementStart" | "placementEnd", string>> | undefined;
33
37
  closeIconButtonProps?: Partial<IIconButtonProps<"button", {}>> | undefined;
34
38
  PanelHeaderProps?: Partial<IPanelHeaderProps> | undefined;
35
- } & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "title" | "ref" | "size" | "classes" | "children" | "variant" | "onClose" | "placement" | "offsetTop" | "isOpen" | "isFixed" | "closeIconButtonProps" | "PanelHeaderProps"> & import("../../styled").IStyledCommonProps & React.RefAttributes<HTMLDivElement>>;
39
+ } & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "title" | "ref" | "size" | "classes" | "children" | "variant" | "onClose" | "placement" | "offsetTop" | "closeButtonLabel" | "isOpen" | "isFixed" | "closeIconButtonProps" | "PanelHeaderProps"> & import("../../styled").IStyledCommonProps & React.RefAttributes<HTMLDivElement>>;