bs-unified-ui 1.0.909 → 1.0.911

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.
@@ -5,5 +5,6 @@ export interface TablePaginationProps {
5
5
  page?: number;
6
6
  onPageChange?: (page: number) => void;
7
7
  dataTestId?: string;
8
+ enablePageInput?: boolean;
8
9
  }
9
- export declare const TablePagination: ({ pageStart, pageCount, page, onPageChange, dataTestId, }: TablePaginationProps) => React.JSX.Element;
10
+ export declare const TablePagination: ({ pageStart, pageCount, page, onPageChange, dataTestId, enablePageInput, }: TablePaginationProps) => React.JSX.Element;
package/index.js CHANGED
@@ -20437,40 +20437,115 @@ var TableHeadCell = function (_a) {
20437
20437
  return (React.createElement(material.TableCell, __assign({ align: titleAlign || align, sx: { borderBottom: 'none', px: 2, py: 1, width: width } }, props), renderContent()));
20438
20438
  };
20439
20439
 
20440
+ var StyledTextField = material.styled(material.TextField)(function () { return ({
20441
+ '& .MuiOutlinedInput-root': {
20442
+ padding: 0,
20443
+ },
20444
+ '& .MuiInputAdornment-root': {
20445
+ marginTop: 2,
20446
+ },
20447
+ '& .MuiInputAdornment-positionStart': {
20448
+ marginRight: 0,
20449
+ marginLeft: 10,
20450
+ },
20451
+ '& .MuiInputAdornment-positionEnd': {
20452
+ marginRight: 10,
20453
+ },
20454
+ }); });
20455
+ var NumberInput = function (_a) {
20456
+ var label = _a.label, disableValueMutationByArrowKeys = _a.disableValueMutationByArrowKeys, startAdornment = _a.startAdornment, _b = _a.isCurrency, isCurrency = _b === void 0 ? false : _b, endAdornment = _a.endAdornment, dataTestId = _a.dataTestId, fullWidth = _a.fullWidth, min = _a.min, max = _a.max, props = __rest(_a, ["label", "disableValueMutationByArrowKeys", "startAdornment", "isCurrency", "endAdornment", "dataTestId", "fullWidth", "min", "max"]);
20457
+ var handleKeyDown = function (event) {
20458
+ if (disableValueMutationByArrowKeys && (event.key === 'ArrowUp' || event.key === 'ArrowDown')) {
20459
+ event.preventDefault();
20460
+ }
20461
+ };
20462
+ var handlePaste = function (event) {
20463
+ var paste = (event.clipboardData).getData('text');
20464
+ var regexNumber = /^(\d*\.)?\d+$/;
20465
+ if (!regexNumber.test(paste)) {
20466
+ event.preventDefault();
20467
+ }
20468
+ };
20469
+ return (React.createElement(material.FormControl, { fullWidth: fullWidth },
20470
+ label && (React.createElement(material.FormLabel, { sx: { mb: 1.25 } }, typeof label === 'string' ? (React.createElement(material.Typography, { variant: 'fs14', color: function (theme) { return theme.foreground.black; } }, label)) : (label))),
20471
+ React.createElement(StyledTextField, __assign({}, props, { InputProps: __assign(__assign({}, ((startAdornment || isCurrency)
20472
+ ? {
20473
+ startAdornment: isCurrency ? (React.createElement(material.InputAdornment, { position: 'start', sx: { '& p': { color: "#ADAFB1" } } }, "$")) : (React.createElement(material.InputAdornment, { position: 'start' }, startAdornment)),
20474
+ }
20475
+ : {})), (endAdornment
20476
+ ? {
20477
+ endAdornment: (React.createElement(material.InputAdornment, { position: 'end' }, endAdornment)),
20478
+ }
20479
+ : {})),
20480
+ // eslint-disable-next-line react/jsx-no-duplicate-props
20481
+ inputProps: __assign(__assign(__assign({ onKeyDown: handleKeyDown, onPaste: handlePaste }, (!isNullOrUndefined(min) ? { min: min } : {})), (!isNullOrUndefined(max) ? { max: max } : {})), props.inputProps), "data-testid": dataTestId, type: 'number' }))));
20482
+ };
20483
+
20440
20484
  var TablePagination = function (_a) {
20441
- var _b = _a.pageStart, pageStart = _b === void 0 ? 0 : _b, _c = _a.pageCount, pageCount = _c === void 0 ? 0 : _c, _d = _a.page, page = _d === void 0 ? 0 : _d, onPageChange = _a.onPageChange, _e = _a.dataTestId, dataTestId = _e === void 0 ? 'pagination' : _e;
20485
+ var _b = _a.pageStart, pageStart = _b === void 0 ? 0 : _b, _c = _a.pageCount, pageCount = _c === void 0 ? 0 : _c, _d = _a.page, page = _d === void 0 ? 0 : _d, onPageChange = _a.onPageChange, _e = _a.dataTestId, dataTestId = _e === void 0 ? 'pagination' : _e, _f = _a.enablePageInput, enablePageInput = _f === void 0 ? false : _f;
20442
20486
  var theme = material.useTheme();
20443
20487
  var pageIdx = Math.max(0, page - pageStart);
20444
20488
  var pageVal = pageIdx + pageStart;
20445
- return (React.createElement(material.Box, { sx: {
20446
- 'py': 1.5,
20447
- 'display': 'flex',
20448
- 'justifyContent': 'center',
20449
- 'gap': 1,
20450
- '.MuiButton-root': {
20451
- 'padding': 0,
20452
- 'minWidth': 24,
20453
- 'minHeight': 24,
20454
- 'color': theme.foreground.black4,
20455
- 'bgcolor': theme.background.sectionBg,
20456
- 'borderRadius': '4px',
20457
- '>div': { color: 'inherit !important' },
20458
- '&.Mui-disabled': {
20459
- color: theme.background.outlineDivider,
20460
- bgcolor: theme.background.pageBg,
20489
+ var _g = React.useState(pageVal), currentPage = _g[0], setCurrentPage = _g[1];
20490
+ return (React.createElement(material.Box, { sx: { display: 'flex', alignItems: 'center', px: 2 } },
20491
+ React.createElement(material.Box, { sx: {
20492
+ 'py': 1.5,
20493
+ 'display': 'flex',
20494
+ 'justifyContent': 'center',
20495
+ 'gap': 1,
20496
+ 'flex': 1,
20497
+ '.MuiButton-root': {
20498
+ 'padding': 0,
20499
+ 'minWidth': 24,
20500
+ 'minHeight': 24,
20501
+ 'color': theme.foreground.black4,
20502
+ 'bgcolor': theme.background.sectionBg,
20503
+ 'borderRadius': '4px',
20504
+ '>div': { color: 'inherit !important' },
20505
+ '&.Mui-disabled': {
20506
+ color: theme.background.outlineDivider,
20507
+ bgcolor: theme.background.pageBg,
20508
+ },
20461
20509
  },
20462
- },
20463
- }, "data-testid": "pagination-".concat(dataTestId) },
20464
- React.createElement(Button, { iconOnly: true, variant: 'text', disabled: pageIdx <= 0, onClick: function () {
20465
- if (pageIdx)
20466
- onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange(pageVal - 1);
20467
- }, "data-testid": "btn-pagination-prev-".concat(dataTestId) },
20468
- React.createElement(Icon, { name: 'arrow-left-s', size: 20 })),
20469
- React.createElement(Button, { iconOnly: true, variant: 'text', disabled: pageIdx >= pageCount - 1, onClick: function () {
20470
- if (pageIdx < pageCount - 1)
20471
- onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange(pageVal + 1);
20472
- }, "data-testid": "btn-pagination-next-".concat(dataTestId) },
20473
- React.createElement(Icon, { name: 'arrow-right-s', size: 20 }))));
20510
+ }, "data-testid": "pagination-".concat(dataTestId) },
20511
+ React.createElement(Button, { iconOnly: true, variant: 'text', disabled: pageIdx <= 0, onClick: function () {
20512
+ if (pageIdx) {
20513
+ if (enablePageInput) {
20514
+ setCurrentPage(pageVal - 1);
20515
+ }
20516
+ onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange(pageVal - 1);
20517
+ }
20518
+ }, "data-testid": "btn-pagination-prev-".concat(dataTestId) },
20519
+ React.createElement(Icon, { name: 'arrow-left-s', size: 20 })),
20520
+ React.createElement(Button, { iconOnly: true, variant: 'text', disabled: pageIdx >= pageCount - 1, onClick: function () {
20521
+ if (pageIdx < pageCount - 1) {
20522
+ if (enablePageInput) {
20523
+ setCurrentPage(pageVal + 1);
20524
+ }
20525
+ onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange(pageVal + 1);
20526
+ }
20527
+ }, "data-testid": "btn-pagination-next-".concat(dataTestId) },
20528
+ React.createElement(Icon, { name: 'arrow-right-s', size: 20 }))),
20529
+ enablePageInput ? React.createElement(material.Box, { sx: { display: 'flex', alignItems: 'center', gap: 1, marginLeft: 'auto' } },
20530
+ React.createElement(material.Typography, { variant: 'fs14', color: theme.foreground.black4 }, "Page"),
20531
+ React.createElement(NumberInput, { sx: {
20532
+ width: 52,
20533
+ 'input::-webkit-inner-spin-button': {
20534
+ display: 'none'
20535
+ }
20536
+ }, value: currentPage.toString(), onChange: function (event) {
20537
+ var val = Number(event.target.value);
20538
+ setCurrentPage(val);
20539
+ }, onKeyDown: function (event) {
20540
+ if (event.key === 'Enter') {
20541
+ var target = event.target;
20542
+ var val = Number(target.value);
20543
+ onPageChange === null || onPageChange === void 0 ? void 0 : onPageChange(val);
20544
+ }
20545
+ }, min: 1, max: pageCount, disableValueMutationByArrowKeys: true }),
20546
+ React.createElement(material.Typography, { variant: 'fs14', color: theme.foreground.black4 },
20547
+ "of ",
20548
+ pageCount)) : null));
20474
20549
  };
20475
20550
 
20476
20551
  var CustomUnchecked = material.createSvgIcon(React.createElement(React.Fragment, null,
@@ -40694,50 +40769,6 @@ var Dialog = function (props) {
40694
40769
  renderFooter ? React.createElement(material.DialogActions, null, renderFooter) : null));
40695
40770
  };
40696
40771
 
40697
- var StyledTextField = material.styled(material.TextField)(function () { return ({
40698
- '& .MuiOutlinedInput-root': {
40699
- padding: 0,
40700
- },
40701
- '& .MuiInputAdornment-root': {
40702
- marginTop: 2,
40703
- },
40704
- '& .MuiInputAdornment-positionStart': {
40705
- marginRight: 0,
40706
- marginLeft: 10,
40707
- },
40708
- '& .MuiInputAdornment-positionEnd': {
40709
- marginRight: 10,
40710
- },
40711
- }); });
40712
- var NumberInput = function (_a) {
40713
- var label = _a.label, disableValueMutationByArrowKeys = _a.disableValueMutationByArrowKeys, startAdornment = _a.startAdornment, _b = _a.isCurrency, isCurrency = _b === void 0 ? false : _b, endAdornment = _a.endAdornment, dataTestId = _a.dataTestId, fullWidth = _a.fullWidth, min = _a.min, max = _a.max, props = __rest(_a, ["label", "disableValueMutationByArrowKeys", "startAdornment", "isCurrency", "endAdornment", "dataTestId", "fullWidth", "min", "max"]);
40714
- var handleKeyDown = function (event) {
40715
- if (disableValueMutationByArrowKeys && (event.key === 'ArrowUp' || event.key === 'ArrowDown')) {
40716
- event.preventDefault();
40717
- }
40718
- };
40719
- var handlePaste = function (event) {
40720
- var paste = (event.clipboardData).getData('text');
40721
- var regexNumber = /^(\d*\.)?\d+$/;
40722
- if (!regexNumber.test(paste)) {
40723
- event.preventDefault();
40724
- }
40725
- };
40726
- return (React.createElement(material.FormControl, { fullWidth: fullWidth },
40727
- label && (React.createElement(material.FormLabel, { sx: { mb: 1.25 } }, typeof label === 'string' ? (React.createElement(material.Typography, { variant: 'fs14', color: function (theme) { return theme.foreground.black; } }, label)) : (label))),
40728
- React.createElement(StyledTextField, __assign({}, props, { InputProps: __assign(__assign({}, ((startAdornment || isCurrency)
40729
- ? {
40730
- startAdornment: isCurrency ? (React.createElement(material.InputAdornment, { position: 'start', sx: { '& p': { color: "#ADAFB1" } } }, "$")) : (React.createElement(material.InputAdornment, { position: 'start' }, startAdornment)),
40731
- }
40732
- : {})), (endAdornment
40733
- ? {
40734
- endAdornment: (React.createElement(material.InputAdornment, { position: 'end' }, endAdornment)),
40735
- }
40736
- : {})),
40737
- // eslint-disable-next-line react/jsx-no-duplicate-props
40738
- inputProps: __assign(__assign(__assign({ onKeyDown: handleKeyDown, onPaste: handlePaste }, (!isNullOrUndefined(min) ? { min: min } : {})), (!isNullOrUndefined(max) ? { max: max } : {})), props.inputProps), "data-testid": dataTestId, type: 'number' }))));
40739
- };
40740
-
40741
40772
  var rootClass = 'bs-dp';
40742
40773
  var DatePicker = function (_a) {
40743
40774
  var _b = _a.position, position = _b === void 0 ? 'bottom-start' : _b, _c = _a.openOnTextFieldClick, openOnTextFieldClick = _c === void 0 ? false : _c, props = __rest(_a, ["position", "openOnTextFieldClick"]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bs-unified-ui",
3
- "version": "1.0.909",
3
+ "version": "1.0.911",
4
4
  "license": "MIT",
5
5
  "author": "Advesa",
6
6
  "description": "UI Components for Unified Breadstack UI",