@xqmsg/ui-core 0.26.2 → 0.27.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.
@@ -1,5 +1,5 @@
1
1
  import React__default, { memo, forwardRef, createElement, useMemo, useCallback, Children, useEffect, useRef, useState } from 'react';
2
- import { Box, Button as Button$2, Alert as Alert$1, AlertDescription, Flex, Text as Text$2, Spinner, Checkbox as Checkbox$1, InputGroup, Input as Input$2, RadioGroup, Radio, InputRightElement, Textarea as Textarea$1, useOutsideClick, Switch as Switch$1, FormLabel as FormLabel$1, Popover as Popover$1, PopoverTrigger, PopoverContent, PopoverArrow, PopoverBody, FormControl, FormErrorMessage, FormHelperText, SimpleGrid, Image as Image$1, Select as Select$1, useMediaQuery, Grid, GridItem, IconButton, Collapse, Modal as Modal$2, ModalOverlay, ModalContent, ModalHeader, ModalBody, ModalFooter, Link as Link$2, Table as Table$1, Tbody, Tr, Td, TableContainer, Thead, Th, Tabs as Tabs$1, TabList, Tab, createMultiStyleConfigHelpers, defineStyle as defineStyle$1, extendTheme, useToast as useToast$1 } from '@chakra-ui/react';
2
+ import { Box, Button as Button$2, Alert as Alert$1, AlertDescription, Flex, Text as Text$2, Spinner, Checkbox as Checkbox$1, InputGroup, Input as Input$2, RadioGroup, Radio, InputRightElement, Textarea as Textarea$1, NumberInput, NumberInputField, NumberInputStepper, NumberIncrementStepper, NumberDecrementStepper, useOutsideClick, Switch as Switch$1, FormLabel as FormLabel$1, Popover as Popover$1, PopoverTrigger, PopoverContent, PopoverArrow, PopoverBody, FormControl, FormErrorMessage, FormHelperText, SimpleGrid, Image as Image$1, Select as Select$1, useMediaQuery, Grid, GridItem, IconButton, Collapse, Modal as Modal$2, ModalOverlay, ModalContent, ModalHeader, ModalBody, ModalFooter, Link as Link$2, Table as Table$1, Tbody, Tr, Td, TableContainer, Thead, Th, Tabs as Tabs$1, TabList, Tab, createMultiStyleConfigHelpers, defineStyle as defineStyle$1, extendTheme, useToast as useToast$1 } from '@chakra-ui/react';
3
3
  import { FormProvider, useWatch, Controller } from 'react-hook-form';
4
4
  import { truncate } from 'lodash-es';
5
5
  import { QuestionIcon, CloseIcon, HamburgerIcon } from '@chakra-ui/icons';
@@ -1631,6 +1631,69 @@ var StackedMultiSelect = /*#__PURE__*/React__default.forwardRef(function (_ref2,
1631
1631
  })));
1632
1632
  });
1633
1633
 
1634
+ /**
1635
+ * A functional React component that renders Chakra UI's `NumberInput` wrapped
1636
+ * in an `InputGroup`, following the same pattern as `StackedInput`.
1637
+ */
1638
+ var StackedNumberInput = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
1639
+ var name = _ref.name,
1640
+ id = _ref.id,
1641
+ placeholder = _ref.placeholder,
1642
+ isRequired = _ref.isRequired,
1643
+ isInvalid = _ref.isInvalid,
1644
+ disabled = _ref.disabled,
1645
+ value = _ref.value,
1646
+ defaultValue = _ref.defaultValue,
1647
+ min = _ref.min,
1648
+ max = _ref.max,
1649
+ _ref$step = _ref.step,
1650
+ step = _ref$step === void 0 ? 1 : _ref$step,
1651
+ _ref$precision = _ref.precision,
1652
+ precision = _ref$precision === void 0 ? 0 : _ref$precision,
1653
+ _ref$showStepper = _ref.showStepper,
1654
+ showStepper = _ref$showStepper === void 0 ? false : _ref$showStepper,
1655
+ variant = _ref.variant,
1656
+ className = _ref.className,
1657
+ label = _ref.label,
1658
+ leftElement = _ref.leftElement,
1659
+ rightElement = _ref.rightElement,
1660
+ _onChange = _ref.onChange,
1661
+ onBlur = _ref.onBlur;
1662
+ var isMobile = variant === 'mobile';
1663
+ var resolvedPlaceholder = isMobile && label ? label : placeholder;
1664
+ var inputValue = typeof value === 'string' || typeof value === 'number' ? value : undefined;
1665
+ var normalizedValue = precision === 0 && inputValue !== undefined && inputValue !== '' ? Number.isNaN(Number(inputValue)) ? inputValue : String(Math.round(Number(inputValue))) : inputValue;
1666
+ return /*#__PURE__*/React__default.createElement(InputGroup, null, leftElement && leftElement, label && !isMobile && label, /*#__PURE__*/React__default.createElement(NumberInput, {
1667
+ id: id,
1668
+ name: name,
1669
+ isRequired: isRequired,
1670
+ isInvalid: isInvalid,
1671
+ isDisabled: disabled,
1672
+ value: normalizedValue,
1673
+ defaultValue: defaultValue,
1674
+ min: min,
1675
+ max: max,
1676
+ step: step,
1677
+ precision: precision,
1678
+ onChange: function onChange(_, valueAsNumber) {
1679
+ return _onChange == null ? void 0 : _onChange({
1680
+ target: {
1681
+ name: name,
1682
+ value: Number.isNaN(valueAsNumber) ? '' : precision === 0 ? String(Math.round(valueAsNumber)) : String(valueAsNumber)
1683
+ }
1684
+ });
1685
+ },
1686
+ className: className,
1687
+ variant: variant === 'mobile' ? 'mobile' : 'default',
1688
+ width: "100%"
1689
+ }, /*#__PURE__*/React__default.createElement(NumberInputField, {
1690
+ ref: ref,
1691
+ placeholder: resolvedPlaceholder,
1692
+ onBlur: onBlur
1693
+ }), showStepper && /*#__PURE__*/React__default.createElement(NumberInputStepper, null, /*#__PURE__*/React__default.createElement(NumberIncrementStepper, null), /*#__PURE__*/React__default.createElement(NumberDecrementStepper, null))), rightElement && rightElement);
1694
+ });
1695
+ StackedNumberInput.displayName = 'StackedNumberInput';
1696
+
1634
1697
  /**
1635
1698
  * A functional React component utilized to render the `StackedPilledInput` component.
1636
1699
  */
@@ -2051,7 +2114,11 @@ function Input(_ref) {
2051
2114
  truncatePillLength = _ref.truncatePillLength,
2052
2115
  searchable = _ref.searchable,
2053
2116
  _ref$overflowMode = _ref.overflowMode,
2054
- overflowMode = _ref$overflowMode === void 0 ? 'scroll' : _ref$overflowMode;
2117
+ overflowMode = _ref$overflowMode === void 0 ? 'scroll' : _ref$overflowMode,
2118
+ min = _ref.min,
2119
+ max = _ref.max,
2120
+ step = _ref.step,
2121
+ precision = _ref.precision;
2055
2122
  function selectedInputField(onChange, onBlur, ref, value) {
2056
2123
  switch (inputType) {
2057
2124
  case 'text':
@@ -2075,6 +2142,31 @@ function Input(_ref) {
2075
2142
  variant: variant,
2076
2143
  label: label
2077
2144
  });
2145
+ case 'number':
2146
+ return /*#__PURE__*/React__default.createElement(StackedNumberInput, {
2147
+ className: "input-" + inputType + " " + (className != null ? className : ''),
2148
+ "aria-label": ariaLabel,
2149
+ name: name,
2150
+ id: name,
2151
+ placeholder: placeholder,
2152
+ maxLength: maxLength,
2153
+ isRequired: isRequired,
2154
+ isInvalid: isInvalid,
2155
+ onChange: onChange,
2156
+ onBlur: onBlur,
2157
+ ref: ref,
2158
+ rightElement: rightElement,
2159
+ leftElement: leftElement,
2160
+ disabled: disabled,
2161
+ defaultValue: defaultValue,
2162
+ value: value,
2163
+ variant: variant,
2164
+ label: label,
2165
+ min: min,
2166
+ max: max,
2167
+ step: step,
2168
+ precision: precision
2169
+ });
2078
2170
  case 'radio':
2079
2171
  return /*#__PURE__*/React__default.createElement(StackedRadioGroup, {
2080
2172
  className: "input-" + inputType + " " + (className != null ? className : ''),
@@ -5041,6 +5133,7 @@ var customXQChakraTheme = /*#__PURE__*/extendTheme( /*#__PURE__*/_extends$6({
5041
5133
  FormError: FormError,
5042
5134
  FormLabel: FormLabel,
5043
5135
  Input: Input$1,
5136
+ NumberInput: Input$1,
5044
5137
  Link: Link$1,
5045
5138
  Menu: Menu$1,
5046
5139
  Modal: Modal$1,