@procore/core-react 12.26.5 → 12.26.6
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/CHANGELOG.md +9 -0
- package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
- package/dist/Avatar/Avatar.styles.js +5 -5
- package/dist/AvatarStack/AvatarStack.styles.js +7 -7
- package/dist/Badge/Badge.styles.js +2 -2
- package/dist/BadgePill/BadgePill.styles.js +4 -4
- package/dist/Banner/Banner.styles.js +10 -10
- package/dist/Box/Box.styles.js +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
- package/dist/Button/Button.styles.js +5 -5
- package/dist/Calendar/Calendar.styles.js +8 -8
- package/dist/Card/Card.styles.js +1 -1
- package/dist/Checkbox/Checkbox.styles.js +6 -6
- package/dist/Checkbox/CheckboxTooltip.js +1 -1
- package/dist/ContactItem/ContactItem.styles.js +5 -5
- package/dist/Content/Content.styles.js +2 -2
- package/dist/DateInput/DateInput.styles.js +6 -6
- package/dist/DeprecatedTextEditorOutput/DeprecatedTextEditorOutput.styles.js +1 -1
- package/dist/DetailPage/DetailPage.styles.js +7 -7
- package/dist/Dropdown/Dropdown.styles.js +3 -3
- package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
- package/dist/Dropzone/Dropzone.js +1 -1
- package/dist/Dropzone/Dropzone.styles.js +9 -9
- package/dist/EmptyState/EmptyState.styles.js +6 -6
- package/dist/Field/Field.styles.js +3 -3
- package/dist/FileList/FileList.styles.js +4 -4
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
- package/dist/FileSelect/FileSelect.styles.js +2 -2
- package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
- package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
- package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
- package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
- package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
- package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
- package/dist/FileToken/FileToken.styles.js +4 -4
- package/dist/FilterToken/FilterToken.styles.js +5 -5
- package/dist/FlexList/FlexList.styles.js +1 -1
- package/dist/Form/Form.js +1 -1
- package/dist/Form/Form.js.map +1 -1
- package/dist/Form/Form.styles.js +14 -14
- package/dist/Form/StyledFormikForm.styles.js +2 -2
- package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
- package/dist/Grid/Grid.styles.js +2 -2
- package/dist/GroupSelect/GroupSelect.styles.js +1 -1
- package/dist/Input/Input.styles.js +1 -1
- package/dist/Link/Link.styles.js +1 -1
- package/dist/ListPage/ListPage.styles.js +8 -8
- package/dist/Loader/Loader.styles.js +2 -2
- package/dist/MenuImperative/MenuImperative.styles.js +10 -10
- package/dist/Modal/Modal.styles.js +13 -13
- package/dist/MultiSelect/MultiSelect.styles.js +6 -6
- package/dist/NextMenu/NextMenu.styles.js +3 -3
- package/dist/NextTextEditor/NextTextEditor.styles.js +2 -2
- package/dist/NextTextEditor/NextTextEditor.styles.js.map +1 -1
- package/dist/NextTextEditorOutput/NextTextEditorOutput.styles.js +1 -1
- package/dist/Notation/Notation.js +1 -1
- package/dist/NumberInput/NumberInput.hooks.d.ts +2 -1
- package/dist/NumberInput/NumberInput.hooks.js +40 -0
- package/dist/NumberInput/NumberInput.hooks.js.map +1 -1
- package/dist/NumberInput/NumberInput.js +20 -7
- package/dist/NumberInput/NumberInput.js.map +1 -1
- package/dist/NumberInput/NumberInput.styles.js +7 -7
- package/dist/NumberInput/NumberInput.types.d.ts +26 -1
- package/dist/NumberInput/NumberInput.types.js.map +1 -1
- package/dist/Overlay/OverlayArrow.styles.js +1 -1
- package/dist/PageLayout/PageLayout.styles.js +16 -16
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
- package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
- package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
- package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
- package/dist/Pagination/Pagination.styles.js +5 -5
- package/dist/Panel/Panel.styles.js +11 -11
- package/dist/Pill/Pill.styles.js +3 -3
- package/dist/PillSelect/PillSelect.styles.js +4 -4
- package/dist/Popover/Popover.styles.js +2 -2
- package/dist/Portal/Portal.styles.js +1 -1
- package/dist/ProgressBar/ProgressBar.styles.js +2 -2
- package/dist/RadioButton/RadioButton.styles.js +3 -3
- package/dist/Required/Required.styles.js +3 -3
- package/dist/Search/Search.styles.js +5 -5
- package/dist/Section/Section.styles.js +7 -7
- package/dist/SegmentedController/SegmentedController.styles.js +4 -4
- package/dist/Select/Select.styles.js +7 -7
- package/dist/Semantic/Semantic.styles.js +9 -9
- package/dist/Slider/Slider.styles.js +5 -5
- package/dist/Spinner/Spinner.styles.js +7 -7
- package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
- package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
- package/dist/SuperSelect/SuperSelect.styles.js +37 -37
- package/dist/Switch/Switch.styles.js +4 -4
- package/dist/Table/Table.styles.js +28 -28
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.styles.js +15 -15
- package/dist/Tearsheet/Tearsheet.styles.js +5 -5
- package/dist/TextArea/TextArea.styles.js +1 -1
- package/dist/Thumbnail/Thumbnail.styles.js +17 -17
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
- package/dist/TieredSelect/TieredSelect.styles.js +9 -9
- package/dist/Tile/Tile.styles.js +8 -8
- package/dist/Title/Title.styles.js +7 -7
- package/dist/Toast/Toast.styles.js +3 -3
- package/dist/ToggleButton/ToggleButton.styles.js +1 -1
- package/dist/Token/Token.styles.js +3 -3
- package/dist/ToolHeader/ToolHeader.styles.js +6 -6
- package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
- package/dist/Tooltip/Tooltip.styles.js +2 -2
- package/dist/Tree/Tree.styles.js +9 -9
- package/dist/Typeahead/Typeahead.styles.js +3 -3
- package/dist/Typography/Typography.styles.js +1 -1
- package/dist/Typography/Typography.table.story.js +2 -2
- package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
- package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
- package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
- package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
- package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
- package/dist/_typedoc/Badge/Badge.types.json +6 -6
- package/dist/_typedoc/Banner/Banner.types.json +13 -13
- package/dist/_typedoc/Box/Box.types.json +68 -68
- package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
- package/dist/_typedoc/Button/Button.types.json +13 -13
- package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
- package/dist/_typedoc/Card/Card.types.json +6 -6
- package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
- package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
- package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
- package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
- package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
- package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
- package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +30 -30
- package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
- package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
- package/dist/_typedoc/FileList/FileList.types.json +9 -9
- package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
- package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
- package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
- package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
- package/dist/_typedoc/Flex/Flex.types.json +27 -27
- package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
- package/dist/_typedoc/Form/Form.types.json +798 -754
- package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
- package/dist/_typedoc/Grid/Grid.types.json +8 -8
- package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
- package/dist/_typedoc/Input/Input.types.json +2 -2
- package/dist/_typedoc/Link/Link.types.json +1 -1
- package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
- package/dist/_typedoc/Menu/Menu.types.json +62 -62
- package/dist/_typedoc/MenuImperative/MenuImperative.types.json +74 -74
- package/dist/_typedoc/Modal/Modal.types.json +46 -46
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
- package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
- package/dist/_typedoc/Notation/Notation.types.json +4 -4
- package/dist/_typedoc/NumberInput/NumberInput.types.json +161 -37
- package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +32 -32
- package/dist/_typedoc/PageLayout/PageLayout.types.json +26 -26
- package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
- package/dist/_typedoc/Panel/Panel.types.json +30 -30
- package/dist/_typedoc/Pill/Pill.types.json +2 -2
- package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
- package/dist/_typedoc/Popover/Popover.types.json +15 -15
- package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
- package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
- package/dist/_typedoc/Required/Required.types.json +5 -5
- package/dist/_typedoc/Search/Search.types.json +18 -18
- package/dist/_typedoc/Section/Section.types.json +15 -15
- package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
- package/dist/_typedoc/Select/Select.types.json +60 -60
- package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
- package/dist/_typedoc/Slider/Slider.types.json +6 -6
- package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
- package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
- package/dist/_typedoc/Table/Table.types.json +101 -101
- package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
- package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
- package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
- package/dist/_typedoc/TextEditor/TextEditorDocs.types.json +9 -9
- package/dist/_typedoc/TextEditor/TextEditorProvider.types.json +2 -2
- package/dist/_typedoc/TextEditorOutput/TextEditorOutputDocs.types.json +3 -3
- package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
- package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +42 -42
- package/dist/_typedoc/TieredSelect/TieredSelect.types.json +28 -28
- package/dist/_typedoc/Tile/Tile.types.json +8 -8
- package/dist/_typedoc/Title/Title.types.json +1 -1
- package/dist/_typedoc/Toast/Toast.types.json +4 -4
- package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
- package/dist/_typedoc/Token/Token.types.json +7 -7
- package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
- package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +7 -7
- package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
- package/dist/_typedoc/Tree/Tree.types.json +86 -86
- package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
- package/dist/_typedoc/Typography/Typography.types.json +9 -9
- package/dist/_typedoc/_utils/types.json +3 -3
- package/jestConfig.d.ts +3 -0
- package/package.json +8 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
var _excluded = ["decimalScale", "defaultValue", "disabled", "error", "fillDecimalScale", "onChange", "onKeyDown", "onBlur", "prefix", "readOnly", "step", "style", "suffix", "value", "qa"],
|
|
2
|
+
var _excluded = ["aria-label", "aria-labelledby", "decimalScale", "defaultValue", "disabled", "error", "fillDecimalScale", "onChange", "onKeyDown", "onBlur", "prefix", "readOnly", "step", "style", "suffix", "value", "qa"],
|
|
3
3
|
_excluded2 = ["currencyDisplay", "currencyIsoCode", "decimalScale", "fillDecimalScale", "prefix", "suffix"];
|
|
4
4
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
5
5
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -22,7 +22,7 @@ import { useI18nContext } from '../_hooks/I18n';
|
|
|
22
22
|
import { spacing } from '../_styles/spacing';
|
|
23
23
|
import { mergeRefs } from '../_utils/mergeRefs';
|
|
24
24
|
import { defaultCurrencyFillDecimalScale, defaultCurrencyInputPrefix } from './NumberInput.constants';
|
|
25
|
-
import { useNumberFormat, usePrevious } from './NumberInput.hooks';
|
|
25
|
+
import { useNumberFormat, useNumberInputLabel, usePrevious } from './NumberInput.hooks';
|
|
26
26
|
import { addonRootFontFamily, addonRootFontSize, addonRootPadding, inputDefaultXPadding, StyledIncrementerButton, StyledIncrementerWrapper, StyledInput, StyledPrefix, StyledSuffix, StyledWrapper } from './NumberInput.styles';
|
|
27
27
|
import { backspaceKey, commaKey, controlKey, copyKey, defaultLocale, deleteKey, emptyString, format, getNewCursorPosition, getSeparators, highlightAllKey, identicalLocales, identifyPressedKey, maxDigitLength, metaKeyIdentifier, minus, numericKeypadKey, periodKey, prepareValueToFormatting, toFixed, unformat } from './NumberInput.utils';
|
|
28
28
|
function noop() {}
|
|
@@ -62,7 +62,9 @@ var MinusIcon = function MinusIcon() {
|
|
|
62
62
|
|
|
63
63
|
*/
|
|
64
64
|
export var NumberInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
65
|
-
var
|
|
65
|
+
var ariaLabel = _ref['aria-label'],
|
|
66
|
+
ariaLabelledBy = _ref['aria-labelledby'],
|
|
67
|
+
_ref$decimalScale = _ref.decimalScale,
|
|
66
68
|
decimalScale = _ref$decimalScale === void 0 ? true : _ref$decimalScale,
|
|
67
69
|
defaultValue = _ref.defaultValue,
|
|
68
70
|
_ref$disabled = _ref.disabled,
|
|
@@ -101,6 +103,17 @@ export var NumberInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
101
103
|
formatValue = _useNumberFormat.formatValue,
|
|
102
104
|
getValueLengthInfo = _useNumberFormat.getValueLengthInfo,
|
|
103
105
|
locale = _useNumberFormat.locale;
|
|
106
|
+
var _useNumberInputLabel = useNumberInputLabel({
|
|
107
|
+
ariaLabel: ariaLabel,
|
|
108
|
+
ariaLabelledBy: ariaLabelledBy,
|
|
109
|
+
id: props.id,
|
|
110
|
+
name: props.name,
|
|
111
|
+
prefix: prefix,
|
|
112
|
+
suffix: suffix
|
|
113
|
+
}),
|
|
114
|
+
inputProps = _useNumberInputLabel.inputProps,
|
|
115
|
+
prefixProps = _useNumberInputLabel.prefixProps,
|
|
116
|
+
suffixProps = _useNumberInputLabel.suffixProps;
|
|
104
117
|
var isControlled = value !== undefined;
|
|
105
118
|
var isControlledWithoutOnChangeHandlerAndReadOnlyAttribute = isControlled && !_onChange && !readOnly;
|
|
106
119
|
var hasIncrementer = step > 0 && !readOnly;
|
|
@@ -404,14 +417,14 @@ export var NumberInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
404
417
|
paddingLeft: "".concat(inputPadding.left, "px"),
|
|
405
418
|
paddingRight: "".concat(inputPadding.right, "px")
|
|
406
419
|
})
|
|
407
|
-
}, props, {
|
|
420
|
+
}, inputProps, props, {
|
|
408
421
|
ref: mergeRefs(ref, inputRef)
|
|
409
|
-
})), prefix && /*#__PURE__*/React.createElement(StyledPrefix, {
|
|
422
|
+
})), prefix && /*#__PURE__*/React.createElement(StyledPrefix, _extends({
|
|
410
423
|
disabled: disabled
|
|
411
|
-
}, prefix), suffix && /*#__PURE__*/React.createElement(StyledSuffix, {
|
|
424
|
+
}, prefixProps), prefix), suffix && /*#__PURE__*/React.createElement(StyledSuffix, _extends({
|
|
412
425
|
$withIncrementer: hasIncrementer,
|
|
413
426
|
disabled: disabled
|
|
414
|
-
}, suffix), hasIncrementer && /*#__PURE__*/React.createElement(StyledIncrementerWrapper, null, /*#__PURE__*/React.createElement(StyledIncrementerButton, {
|
|
427
|
+
}, suffixProps), suffix), hasIncrementer && /*#__PURE__*/React.createElement(StyledIncrementerWrapper, null, /*#__PURE__*/React.createElement(StyledIncrementerButton, {
|
|
415
428
|
"aria-hidden": "true",
|
|
416
429
|
type: "button",
|
|
417
430
|
disabled: disabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberInput.js","names":["formatCurrencyToParts","findIndex","React","useI18nContext","spacing","mergeRefs","defaultCurrencyFillDecimalScale","defaultCurrencyInputPrefix","useNumberFormat","usePrevious","addonRootFontFamily","addonRootFontSize","addonRootPadding","inputDefaultXPadding","StyledIncrementerButton","StyledIncrementerWrapper","StyledInput","StyledPrefix","StyledSuffix","StyledWrapper","backspaceKey","commaKey","controlKey","copyKey","defaultLocale","deleteKey","emptyString","format","getNewCursorPosition","getSeparators","highlightAllKey","identicalLocales","identifyPressedKey","maxDigitLength","metaKeyIdentifier","minus","numericKeypadKey","periodKey","prepareValueToFormatting","toFixed","unformat","noop","PlusIcon","createElement","width","height","viewBox","xmlns","d","MinusIcon","NumberInput","forwardRef","_ref","ref","_ref$decimalScale","decimalScale","defaultValue","_ref$disabled","disabled","_ref$error","error","_ref$fillDecimalScale","fillDecimalScale","_onChange","onChange","_ref$onKeyDown","onKeyDown","_onKeyDown","_ref$onBlur","onBlur","_onBlur","_ref$prefix","prefix","readOnly","_ref$step","step","style","_ref$suffix","suffix","value","qa","props","_objectWithoutProperties","_excluded","I18n","contextLocale","locale","inputRef","useRef","_useNumberFormat","verifiedDecimalScale","fillDecimalScaleOnBlur","fixedDecimalScale","formatValue","getValueLengthInfo","isControlled","undefined","isControlledWithoutOnChangeHandlerAndReadOnlyAttribute","hasIncrementer","_React$useMemo","useMemo","group","decimal","decimalSeparatorKey","inputPadding","fontContext","concat","element","document","context","getContext","font","extraBasePadding","suffixPadding","Math","ceil","measureText","getRightPadding","xl","left","right","getValueChange","useCallback","_unformat","parsedNumber","isNaN","externalOnChange","_React$useState","useState","_React$useState2","_slicedToArray","inputValue","setInputValue","_React$useState3","_React$useState4","prevValue","setPrevValue","_React$useState5","selectionStart","selectionEnd","selection","_React$useState6","prevCursorPosition","setPrevCursorPosition","_React$useState7","_React$useState8","pressedKey","setPressedKey","prevLocale","useLayoutEffect","formattedValue","console","useEffect","prev","newValue","_inputRef$current","displayValue","current","lastChar","length","lastCharIsPending","includes","decimals","split","lastDecimalIsZero","onlyMinusDisplayed","getNewValueAndCursorPosition","preparedValue","newCursorPosition","adjustCursor","newPosition","_inputRef$current2","setSelectionRange","setTimeout","_inputRef$current3","makeStep","down","arguments","getSignificantPrecision","fraction","reversedFraction","reverse","indexOfLastSignificantFractionDigit","i","slice","_unformat2","_unformat3","stepFraction","prevValuePrecision","prevValueSignificantPrecision","rawStepPrecision","rawStepPrecisionExceedsDecimalScale","stepPrecision","warn","diff","precision","max","significantPrecision","calculated","_getValueLengthInfo","isSafeLength","isSafeIntegerLength","rejectStepByLengthLimit","formatted","internalOnKeyDown","e","ctrlKey","metaKey","key","_e$target","target","preserveDecimalSeparator","decimalBackspaced","decimalDeleted","nonReplacingKeys","decimalReplacedAsSelection","preserveDecimal","base","shift","cursorPosition","preventDefault","isDecimalSeparatorPreserved","_getValueLengthInfo2","safeIntegerLength","integerLength","fractionLength","decimalSeparatorCanNotBeRemoved","handleIncrementer","internalOnChange","inputType","nativeEvent","_getNewValueAndCursor","internalOnBlur","_unformat4","integer","shouldValueBeCleared","shouldIntegerPartBeFilled","isDecimalSeparatorRedundant","isDecimalScaleNotFilled","shouldDecimalScaleBeFilled","getNewValue","numberOfZerosToPad","Array","from","_","join","replace","RegExp","$hasIncrementer","wrapper","_extends","inputMode","lang","_objectSpread","paddingLeft","paddingRight","$withIncrementer","type","tabIndex","increment","onClick","decrement","displayName","getCurrencyProps","_decimalScale","symbol","currencyIsoCode","currencyDisplay","_parts$find","_parts$find2","currencyOptions","parts","formatterDecimalScale","find","part","placement","object","currencyIsoSymbol","toString","currencyProps","CurrencyInput","_ref2","_ref2$fillDecimalScal","_ref2$prefix","_excluded2"],"sources":["../../src/NumberInput/NumberInput.tsx"],"sourcesContent":["import type {\n CurrencyDisplay,\n CurrencyOptions,\n} from '@procore/globalization-toolkit'\nimport { formatCurrencyToParts } from '@procore/globalization-toolkit'\nimport { findIndex } from 'ramda'\nimport React from 'react'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { spacing } from '../_styles/spacing'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport {\n defaultCurrencyFillDecimalScale,\n defaultCurrencyInputPrefix,\n} from './NumberInput.constants'\nimport { useNumberFormat, usePrevious } from './NumberInput.hooks'\nimport {\n addonRootFontFamily,\n addonRootFontSize,\n addonRootPadding,\n inputDefaultXPadding,\n StyledIncrementerButton,\n StyledIncrementerWrapper,\n StyledInput,\n StyledPrefix,\n StyledSuffix,\n StyledWrapper,\n} from './NumberInput.styles'\nimport type {\n CurrencyInputProps,\n CurrencyProps,\n CursorPosition,\n NumberInputProps,\n PressedKey,\n} from './NumberInput.types'\nimport {\n backspaceKey,\n commaKey,\n controlKey,\n copyKey,\n defaultLocale,\n deleteKey,\n emptyString,\n format,\n getNewCursorPosition,\n getSeparators,\n highlightAllKey,\n identicalLocales,\n identifyPressedKey,\n maxDigitLength,\n metaKeyIdentifier,\n minus,\n numericKeypadKey,\n periodKey,\n prepareValueToFormatting,\n toFixed,\n unformat,\n} from './NumberInput.utils'\n\nfunction noop() {}\n\nconst PlusIcon = () => (\n <svg\n width=\"8\"\n height=\"8\"\n viewBox=\"0 0 8 8\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.5 0H3.5V3.5H0V4.5H3.5V8H4.5V4.5H8V3.5H4.5V0Z\" />\n </svg>\n)\n\nconst MinusIcon = () => (\n <svg\n width=\"8\"\n height=\"2\"\n viewBox=\"0 0 8 2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.5 0.5H3.5H0V1.5H3.5H4.5H8V0.5H4.5Z\" />\n </svg>\n)\n\n/**\n\n The number input allows users to add numbers to a given form or table.\n The currency input will be used for data with a monetary value.\n Both components allow characters 0-9, periods, and commas. In order to avoid\n the loss of precision, the number length is limited by 15 digits.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-numberinput--demo-number-input)\n\n @see [Design Guidelines](https://design.procore.com/number-and-currency-input)\n\n */\nexport const NumberInput = React.forwardRef<HTMLInputElement, NumberInputProps>(\n (\n {\n decimalScale = true,\n defaultValue,\n disabled = false,\n error = false,\n fillDecimalScale = 'none',\n onChange: _onChange,\n onKeyDown: _onKeyDown = noop,\n onBlur: _onBlur = noop,\n prefix = emptyString,\n readOnly,\n step = 0,\n style,\n suffix = emptyString,\n value,\n qa,\n ...props\n },\n ref\n ) => {\n const I18n = useI18nContext()\n const contextLocale = I18n.locale || defaultLocale\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const {\n decimalScale: verifiedDecimalScale,\n fillDecimalScaleOnBlur,\n fixedDecimalScale,\n formatValue,\n getValueLengthInfo,\n locale,\n } = useNumberFormat({\n decimalScale,\n fillDecimalScale,\n locale: contextLocale,\n })\n\n const isControlled = value !== undefined\n const isControlledWithoutOnChangeHandlerAndReadOnlyAttribute =\n isControlled && !_onChange && !readOnly\n const hasIncrementer = step > 0 && !readOnly\n\n const { group, decimal } = React.useMemo(\n () => getSeparators(locale),\n [locale]\n )\n const decimalSeparatorKey = React.useMemo(() => {\n return decimal === periodKey ? periodKey : commaKey\n }, [decimal])\n\n const inputPadding = React.useMemo((): {\n left: number\n right: number | null\n } => {\n const fontContext = `${addonRootFontSize} \"${addonRootFontFamily}\"`\n\n if (prefix || suffix) {\n const element = document.createElement('canvas')\n const context = element?.getContext('2d')\n\n if (context) {\n context.font = fontContext\n\n const extraBasePadding = inputDefaultXPadding + addonRootPadding\n\n const suffixPadding =\n extraBasePadding + Math.ceil(context.measureText(suffix).width)\n\n const getRightPadding = () => {\n if (hasIncrementer && suffix) {\n return suffixPadding + spacing.xl\n }\n if (suffix) {\n return suffixPadding\n }\n return null\n }\n\n return {\n left: prefix\n ? extraBasePadding + Math.ceil(context.measureText(prefix).width)\n : inputDefaultXPadding,\n right: getRightPadding(),\n }\n }\n }\n\n return {\n left: inputDefaultXPadding,\n right: null,\n }\n }, [prefix, suffix, hasIncrementer])\n\n const getValueChange = React.useCallback(\n (value: string) => {\n const { parsedNumber } = unformat(locale, value)\n return {\n value,\n parsedNumber: isNaN(parsedNumber) ? null : parsedNumber,\n }\n },\n [locale]\n )\n\n const externalOnChange = React.useCallback(\n (value: string) => _onChange && _onChange(getValueChange(value)),\n [_onChange, getValueChange]\n )\n\n const [inputValue, setInputValue] = React.useState(\n formatValue(defaultValue)\n )\n const [prevValue, setPrevValue] = React.useState(\n isControlled ? formatValue(value) : inputValue\n )\n const [prevCursorPosition, setPrevCursorPosition] =\n React.useState<CursorPosition>({\n selectionStart: 0,\n selectionEnd: 0,\n selection: emptyString,\n })\n const [pressedKey, setPressedKey] = React.useState()\n const prevLocale = usePrevious(locale)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n React.useLayoutEffect(() => {\n const formattedValue = formatValue(value)\n if (isControlled && inputValue !== formattedValue) {\n setInputValue(formattedValue)\n }\n\n if (isControlledWithoutOnChangeHandlerAndReadOnlyAttribute) {\n console.error(\n `Warning: Failed prop type: You provided a \\`value\\` prop to a form field without an \\`onChange\\` handler.\n This will render a read-only field. If the field should be mutable use \\`defaultValue\\`.\n Otherwise, set either \\`onChange\\` or \\`readOnly\\`.`\n )\n }\n }, [value])\n\n React.useEffect(() => {\n if (prevLocale && !identicalLocales(prevLocale, locale)) {\n setInputValue((prev) => {\n const newValue = formatValue(unformat(prevLocale, prev).parsedNumber)\n externalOnChange(newValue)\n return newValue\n })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [prevLocale, formatValue])\n\n React.useLayoutEffect(() => {\n const displayValue = inputRef.current?.value || ''\n if (!_onChange || !displayValue) {\n return\n }\n const formattedValue = formatValue(value)\n\n if (displayValue !== formattedValue) {\n const lastChar = displayValue[displayValue.length - 1]\n const lastCharIsPending = [periodKey, commaKey].includes(lastChar)\n\n const decimals = displayValue.split(decimal)[1] || ''\n const lastDecimalIsZero =\n decimals && decimals[decimals.length - 1] === '0'\n\n const onlyMinusDisplayed = displayValue === minus\n\n // a client state and display mismatch is only valid when\n if (lastCharIsPending || lastDecimalIsZero || onlyMinusDisplayed) {\n return\n }\n\n // otherwise sync display with client state\n setInputValue(formattedValue)\n }\n })\n\n const getNewValueAndCursorPosition = (\n value: string,\n pressedKey: PressedKey\n ) => {\n const preparedValue = prepareValueToFormatting(\n decimal,\n decimalSeparatorKey,\n group,\n pressedKey,\n prevCursorPosition,\n prevValue,\n verifiedDecimalScale,\n value\n )\n const newValue = formatValue(preparedValue)\n\n return {\n newValue,\n newCursorPosition: getNewCursorPosition(\n decimal,\n decimalSeparatorKey,\n group,\n newValue,\n pressedKey,\n prevCursorPosition,\n prevValue,\n value,\n verifiedDecimalScale,\n locale,\n fillDecimalScale\n ),\n }\n }\n\n const adjustCursor = (newPosition: number) => {\n inputRef.current?.setSelectionRange(newPosition, newPosition)\n // Mobile Chrome adjustment\n setTimeout(\n () => inputRef.current?.setSelectionRange(newPosition, newPosition),\n 0\n )\n }\n\n const makeStep = (down = false) => {\n const getSignificantPrecision = (fraction: string) => {\n const reversedFraction = fraction.split(emptyString).reverse()\n const indexOfLastSignificantFractionDigit = findIndex(\n (i) => i !== '0',\n reversedFraction\n )\n\n return indexOfLastSignificantFractionDigit > -1\n ? reversedFraction.slice(indexOfLastSignificantFractionDigit).length\n : 0\n }\n\n const { parsedNumber, fraction } = unformat(locale, inputValue)\n const { fraction: stepFraction } = unformat(locale, step)\n\n const prevValuePrecision = fraction.length || 0\n const prevValueSignificantPrecision = getSignificantPrecision(fraction)\n const rawStepPrecision = stepFraction.length || 0\n const rawStepPrecisionExceedsDecimalScale =\n rawStepPrecision > verifiedDecimalScale\n const stepPrecision = rawStepPrecisionExceedsDecimalScale\n ? verifiedDecimalScale\n : rawStepPrecision\n\n if (rawStepPrecisionExceedsDecimalScale) {\n console.warn(\n `WARNING: Step's value was rounded since its scale (${rawStepPrecision}) exceeds the decimal scale (${verifiedDecimalScale}).`\n )\n }\n\n const diff = toFixed(step, stepPrecision) * (down ? -1 : 1)\n const precision = Math.max(\n stepPrecision,\n fixedDecimalScale ? verifiedDecimalScale : prevValuePrecision\n )\n const significantPrecision = Math.max(\n prevValueSignificantPrecision,\n stepPrecision\n )\n const calculated = inputValue\n ? ((parsedNumber || 0) + diff).toFixed(significantPrecision)\n : diff\n\n const { isSafeLength, isSafeIntegerLength } = getValueLengthInfo(\n calculated,\n true\n )\n\n const rejectStepByLengthLimit = !isSafeLength || !isSafeIntegerLength\n\n if (rejectStepByLengthLimit) {\n console.warn(\n `WARNING: Incrementer's step was not fulfilled since result oversteps input ${maxDigitLength}-digit limit and can't be presented without a loss of precision.`\n )\n return\n }\n\n const formatted = format(locale, precision, 'always', calculated, true)\n\n setInputValue(formatted)\n externalOnChange(formatted)\n }\n\n const internalOnKeyDown = (e: any) => {\n const {\n ctrlKey,\n metaKey,\n key,\n target: { value, selectionStart, selectionEnd },\n } = e\n\n const selection = value.slice(selectionStart, selectionEnd)\n\n setPressedKey(key)\n setPrevCursorPosition({\n selectionStart,\n selectionEnd,\n selection,\n })\n setPrevValue(value)\n\n const preserveDecimalSeparator = () => {\n const decimalBackspaced =\n !selection &&\n [backspaceKey].includes(key) &&\n value[selectionEnd - 1] === decimal\n\n const decimalDeleted =\n !selection &&\n [deleteKey, numericKeypadKey].includes(key) &&\n value[selectionEnd] === decimal\n\n const nonReplacingKeys =\n [metaKeyIdentifier, controlKey, highlightAllKey, copyKey].includes(\n key\n ) &&\n (ctrlKey || metaKey)\n\n const decimalReplacedAsSelection =\n selection &&\n selection.includes(decimal) &&\n selection.length < value.length &&\n !nonReplacingKeys\n\n const preserveDecimal =\n decimalBackspaced || decimalDeleted || decimalReplacedAsSelection\n\n if (preserveDecimal) {\n const base = decimalReplacedAsSelection\n ? selectionStart\n : selectionEnd\n\n const shift = (decimalBackspaced && -1) || (decimalDeleted && 1) || 0\n\n const cursorPosition = base + shift\n\n e.preventDefault()\n adjustCursor(cursorPosition)\n }\n }\n\n const isDecimalSeparatorPreserved = () => {\n const { safeIntegerLength, integerLength, fractionLength } =\n getValueLengthInfo(value)\n\n const decimalSeparatorCanNotBeRemoved =\n safeIntegerLength - integerLength < fractionLength\n\n return (\n (fillDecimalScaleOnBlur && decimalSeparatorCanNotBeRemoved) ||\n fixedDecimalScale\n )\n }\n\n if (isDecimalSeparatorPreserved()) {\n preserveDecimalSeparator()\n }\n\n const handleIncrementer = () => {\n switch (key) {\n case 'ArrowUp':\n case 'Up':\n e.preventDefault()\n makeStep()\n break\n case 'ArrowDown':\n case 'Down':\n e.preventDefault()\n makeStep(true)\n break\n }\n }\n\n if (hasIncrementer) {\n handleIncrementer()\n }\n\n _onKeyDown(e)\n }\n\n const internalOnChange = (e: any) => {\n if (isControlledWithoutOnChangeHandlerAndReadOnlyAttribute) return\n\n const {\n target: { value },\n nativeEvent: { inputType },\n } = e\n\n const { newValue, newCursorPosition } = getNewValueAndCursorPosition(\n value,\n identifyPressedKey(\n decimalSeparatorKey,\n inputType,\n pressedKey,\n prevValue,\n value\n )\n )\n // Prevent cursor flickering\n e.target.value = newValue\n\n setInputValue(newValue)\n adjustCursor(newCursorPosition)\n\n if (newValue !== prevValue) {\n externalOnChange(newValue)\n }\n }\n\n const internalOnBlur = (e: any) => {\n const { integer, fraction } = unformat(locale, inputValue)\n\n const shouldValueBeCleared =\n inputValue === minus ||\n inputValue === decimal ||\n inputValue === `${minus}${decimal}`\n const shouldIntegerPartBeFilled =\n fraction.length > 0 && (integer === emptyString || integer === minus)\n const isDecimalSeparatorRedundant =\n verifiedDecimalScale > 0 &&\n inputValue[inputValue.length - 1] === decimal &&\n !fillDecimalScaleOnBlur\n const isDecimalScaleNotFilled = verifiedDecimalScale - fraction.length > 0\n const shouldDecimalScaleBeFilled =\n fillDecimalScaleOnBlur && isDecimalScaleNotFilled\n\n if (\n shouldValueBeCleared ||\n shouldIntegerPartBeFilled ||\n isDecimalSeparatorRedundant ||\n shouldDecimalScaleBeFilled\n ) {\n const getNewValue = () => {\n if (shouldValueBeCleared) {\n return emptyString\n }\n if (shouldIntegerPartBeFilled) {\n const numberOfZerosToPad = verifiedDecimalScale - fraction.length\n return `${integer}0${decimal}${\n shouldDecimalScaleBeFilled\n ? fraction.concat(\n Array.from({ length: numberOfZerosToPad }, (_) => '0').join(\n emptyString\n )\n )\n : fraction\n }`\n }\n if (isDecimalSeparatorRedundant) {\n return inputValue.replace(\n new RegExp(`[${decimal}]`, 'g'),\n emptyString\n )\n }\n if (shouldDecimalScaleBeFilled) {\n return format(locale, verifiedDecimalScale, 'always', inputValue)\n }\n\n return inputValue\n }\n const newValue = getNewValue()\n setInputValue(newValue)\n externalOnChange(newValue)\n }\n\n _onBlur(e)\n }\n\n return (\n <StyledWrapper $hasIncrementer={hasIncrementer} data-qa={qa?.wrapper}>\n <StyledInput\n value={inputValue}\n disabled={disabled}\n error={error}\n onKeyDown={internalOnKeyDown}\n onChange={internalOnChange}\n onBlur={internalOnBlur}\n inputMode=\"numeric\"\n // Chrome- InvalidStateError: Failed to execute 'setSelectionRange' on 'HTMLInputElement': The input element's type ('number') does not support selection.\n // Firefox- Uncaught DOMException: An attempt was made to use an object that is not, or is no longer, usable\n // type={hasIncrementer ? 'number' : undefined}\n lang={contextLocale}\n readOnly={readOnly}\n style={{\n ...style,\n ...{\n paddingLeft: `${inputPadding.left}px`,\n paddingRight: `${inputPadding.right}px`,\n },\n }}\n {...props}\n ref={mergeRefs(ref, inputRef)}\n />\n {prefix && <StyledPrefix disabled={disabled}>{prefix}</StyledPrefix>}\n {suffix && (\n <StyledSuffix $withIncrementer={hasIncrementer} disabled={disabled}>\n {suffix}\n </StyledSuffix>\n )}\n {hasIncrementer && (\n <StyledIncrementerWrapper>\n <StyledIncrementerButton\n aria-hidden=\"true\"\n type=\"button\"\n disabled={disabled}\n tabIndex={-1}\n data-qa={qa?.increment}\n onClick={() => makeStep()}\n >\n <PlusIcon />\n </StyledIncrementerButton>\n <StyledIncrementerButton\n aria-hidden=\"true\"\n type=\"button\"\n disabled={disabled}\n tabIndex={-1}\n data-qa={qa?.decrement}\n onClick={() => makeStep(true)}\n >\n <MinusIcon />\n </StyledIncrementerButton>\n </StyledIncrementerWrapper>\n )}\n </StyledWrapper>\n )\n }\n)\n\nNumberInput.displayName = 'NumberInput'\n\nexport const getCurrencyProps = (\n locale: string,\n _decimalScale: NumberInputProps['decimalScale'],\n symbol?: string,\n currencyIsoCode?: string,\n currencyDisplay?: CurrencyDisplay\n): CurrencyProps => {\n const currencyOptions: CurrencyOptions = {\n locale,\n currencyIsoCode: currencyIsoCode || 'USD',\n currencyDisplay: currencyDisplay || 'narrowSymbol',\n }\n const parts = formatCurrencyToParts(1, currencyOptions)\n\n const formatterDecimalScale =\n parts.find((part) => part.type === 'fraction')?.value.length || 0\n const decimalScale = _decimalScale || formatterDecimalScale\n\n const placement =\n parts.findIndex((object) => {\n return object.type === 'currency'\n }) <\n parts.findIndex((part) => {\n return part.type === 'integer'\n })\n ? 'prefix'\n : 'suffix'\n\n const currencyIsoSymbol = currencyIsoCode\n ? parts.find((part) => part.type === 'currency')?.value.toString()\n : undefined\n\n const currencyProps: CurrencyProps =\n placement === 'prefix'\n ? {\n decimalScale: decimalScale as NumberInputProps['decimalScale'],\n prefix: currencyIsoSymbol || symbol || '',\n }\n : {\n decimalScale: decimalScale as NumberInputProps['decimalScale'],\n suffix: currencyIsoSymbol || symbol || '',\n }\n\n return currencyProps\n}\n\nexport const CurrencyInput = React.forwardRef<\n HTMLInputElement,\n CurrencyInputProps\n>(\n (\n {\n currencyDisplay,\n currencyIsoCode,\n decimalScale: _decimalScale,\n fillDecimalScale = defaultCurrencyFillDecimalScale,\n prefix = defaultCurrencyInputPrefix,\n suffix,\n ...props\n },\n ref\n ) => {\n const I18n = useI18nContext()\n const contextLocale = props.locale || I18n.locale || defaultLocale\n\n const currencyProps: CurrencyProps = getCurrencyProps(\n contextLocale as string,\n _decimalScale,\n prefix || suffix,\n currencyIsoCode,\n currencyDisplay\n )\n\n return (\n <NumberInput\n fillDecimalScale={fillDecimalScale}\n {...props}\n {...currencyProps}\n ref={ref}\n />\n )\n }\n)\n\nCurrencyInput.displayName = 'CurrencyInput'\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NumberInput.js","names":["formatCurrencyToParts","findIndex","React","useI18nContext","spacing","mergeRefs","defaultCurrencyFillDecimalScale","defaultCurrencyInputPrefix","useNumberFormat","useNumberInputLabel","usePrevious","addonRootFontFamily","addonRootFontSize","addonRootPadding","inputDefaultXPadding","StyledIncrementerButton","StyledIncrementerWrapper","StyledInput","StyledPrefix","StyledSuffix","StyledWrapper","backspaceKey","commaKey","controlKey","copyKey","defaultLocale","deleteKey","emptyString","format","getNewCursorPosition","getSeparators","highlightAllKey","identicalLocales","identifyPressedKey","maxDigitLength","metaKeyIdentifier","minus","numericKeypadKey","periodKey","prepareValueToFormatting","toFixed","unformat","noop","PlusIcon","createElement","width","height","viewBox","xmlns","d","MinusIcon","NumberInput","forwardRef","_ref","ref","ariaLabel","ariaLabelledBy","_ref$decimalScale","decimalScale","defaultValue","_ref$disabled","disabled","_ref$error","error","_ref$fillDecimalScale","fillDecimalScale","_onChange","onChange","_ref$onKeyDown","onKeyDown","_onKeyDown","_ref$onBlur","onBlur","_onBlur","_ref$prefix","prefix","readOnly","_ref$step","step","style","_ref$suffix","suffix","value","qa","props","_objectWithoutProperties","_excluded","I18n","contextLocale","locale","inputRef","useRef","_useNumberFormat","verifiedDecimalScale","fillDecimalScaleOnBlur","fixedDecimalScale","formatValue","getValueLengthInfo","_useNumberInputLabel","id","name","inputProps","prefixProps","suffixProps","isControlled","undefined","isControlledWithoutOnChangeHandlerAndReadOnlyAttribute","hasIncrementer","_React$useMemo","useMemo","group","decimal","decimalSeparatorKey","inputPadding","fontContext","concat","element","document","context","getContext","font","extraBasePadding","suffixPadding","Math","ceil","measureText","getRightPadding","xl","left","right","getValueChange","useCallback","_unformat","parsedNumber","isNaN","externalOnChange","_React$useState","useState","_React$useState2","_slicedToArray","inputValue","setInputValue","_React$useState3","_React$useState4","prevValue","setPrevValue","_React$useState5","selectionStart","selectionEnd","selection","_React$useState6","prevCursorPosition","setPrevCursorPosition","_React$useState7","_React$useState8","pressedKey","setPressedKey","prevLocale","useLayoutEffect","formattedValue","console","useEffect","prev","newValue","_inputRef$current","displayValue","current","lastChar","length","lastCharIsPending","includes","decimals","split","lastDecimalIsZero","onlyMinusDisplayed","getNewValueAndCursorPosition","preparedValue","newCursorPosition","adjustCursor","newPosition","_inputRef$current2","setSelectionRange","setTimeout","_inputRef$current3","makeStep","down","arguments","getSignificantPrecision","fraction","reversedFraction","reverse","indexOfLastSignificantFractionDigit","i","slice","_unformat2","_unformat3","stepFraction","prevValuePrecision","prevValueSignificantPrecision","rawStepPrecision","rawStepPrecisionExceedsDecimalScale","stepPrecision","warn","diff","precision","max","significantPrecision","calculated","_getValueLengthInfo","isSafeLength","isSafeIntegerLength","rejectStepByLengthLimit","formatted","internalOnKeyDown","e","ctrlKey","metaKey","key","_e$target","target","preserveDecimalSeparator","decimalBackspaced","decimalDeleted","nonReplacingKeys","decimalReplacedAsSelection","preserveDecimal","base","shift","cursorPosition","preventDefault","isDecimalSeparatorPreserved","_getValueLengthInfo2","safeIntegerLength","integerLength","fractionLength","decimalSeparatorCanNotBeRemoved","handleIncrementer","internalOnChange","inputType","nativeEvent","_getNewValueAndCursor","internalOnBlur","_unformat4","integer","shouldValueBeCleared","shouldIntegerPartBeFilled","isDecimalSeparatorRedundant","isDecimalScaleNotFilled","shouldDecimalScaleBeFilled","getNewValue","numberOfZerosToPad","Array","from","_","join","replace","RegExp","$hasIncrementer","wrapper","_extends","inputMode","lang","_objectSpread","paddingLeft","paddingRight","$withIncrementer","type","tabIndex","increment","onClick","decrement","displayName","getCurrencyProps","_decimalScale","symbol","currencyIsoCode","currencyDisplay","_parts$find","_parts$find2","currencyOptions","parts","formatterDecimalScale","find","part","placement","object","currencyIsoSymbol","toString","currencyProps","CurrencyInput","_ref2","_ref2$fillDecimalScal","_ref2$prefix","_excluded2"],"sources":["../../src/NumberInput/NumberInput.tsx"],"sourcesContent":["import type {\n CurrencyDisplay,\n CurrencyOptions,\n} from '@procore/globalization-toolkit'\nimport { formatCurrencyToParts } from '@procore/globalization-toolkit'\nimport { findIndex } from 'ramda'\nimport React from 'react'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { spacing } from '../_styles/spacing'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport {\n defaultCurrencyFillDecimalScale,\n defaultCurrencyInputPrefix,\n} from './NumberInput.constants'\nimport {\n useNumberFormat,\n useNumberInputLabel,\n usePrevious,\n} from './NumberInput.hooks'\nimport {\n addonRootFontFamily,\n addonRootFontSize,\n addonRootPadding,\n inputDefaultXPadding,\n StyledIncrementerButton,\n StyledIncrementerWrapper,\n StyledInput,\n StyledPrefix,\n StyledSuffix,\n StyledWrapper,\n} from './NumberInput.styles'\nimport type {\n CurrencyInputProps,\n CurrencyProps,\n CursorPosition,\n NumberInputProps,\n PressedKey,\n} from './NumberInput.types'\nimport {\n backspaceKey,\n commaKey,\n controlKey,\n copyKey,\n defaultLocale,\n deleteKey,\n emptyString,\n format,\n getNewCursorPosition,\n getSeparators,\n highlightAllKey,\n identicalLocales,\n identifyPressedKey,\n maxDigitLength,\n metaKeyIdentifier,\n minus,\n numericKeypadKey,\n periodKey,\n prepareValueToFormatting,\n toFixed,\n unformat,\n} from './NumberInput.utils'\n\nfunction noop() {}\n\nconst PlusIcon = () => (\n <svg\n width=\"8\"\n height=\"8\"\n viewBox=\"0 0 8 8\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.5 0H3.5V3.5H0V4.5H3.5V8H4.5V4.5H8V3.5H4.5V0Z\" />\n </svg>\n)\n\nconst MinusIcon = () => (\n <svg\n width=\"8\"\n height=\"2\"\n viewBox=\"0 0 8 2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.5 0.5H3.5H0V1.5H3.5H4.5H8V0.5H4.5Z\" />\n </svg>\n)\n\n/**\n\n The number input allows users to add numbers to a given form or table.\n The currency input will be used for data with a monetary value.\n Both components allow characters 0-9, periods, and commas. In order to avoid\n the loss of precision, the number length is limited by 15 digits.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-numberinput--demo-number-input)\n\n @see [Design Guidelines](https://design.procore.com/number-and-currency-input)\n\n */\nexport const NumberInput = React.forwardRef<HTMLInputElement, NumberInputProps>(\n (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n decimalScale = true,\n defaultValue,\n disabled = false,\n error = false,\n fillDecimalScale = 'none',\n onChange: _onChange,\n onKeyDown: _onKeyDown = noop,\n onBlur: _onBlur = noop,\n prefix = emptyString,\n readOnly,\n step = 0,\n style,\n suffix = emptyString,\n value,\n qa,\n ...props\n },\n ref\n ) => {\n const I18n = useI18nContext()\n const contextLocale = I18n.locale || defaultLocale\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const {\n decimalScale: verifiedDecimalScale,\n fillDecimalScaleOnBlur,\n fixedDecimalScale,\n formatValue,\n getValueLengthInfo,\n locale,\n } = useNumberFormat({\n decimalScale,\n fillDecimalScale,\n locale: contextLocale,\n })\n\n const { inputProps, prefixProps, suffixProps } = useNumberInputLabel({\n ariaLabel,\n ariaLabelledBy,\n id: props.id,\n name: props.name,\n prefix,\n suffix,\n })\n\n const isControlled = value !== undefined\n const isControlledWithoutOnChangeHandlerAndReadOnlyAttribute =\n isControlled && !_onChange && !readOnly\n const hasIncrementer = step > 0 && !readOnly\n\n const { group, decimal } = React.useMemo(\n () => getSeparators(locale),\n [locale]\n )\n const decimalSeparatorKey = React.useMemo(() => {\n return decimal === periodKey ? periodKey : commaKey\n }, [decimal])\n\n const inputPadding = React.useMemo((): {\n left: number\n right: number | null\n } => {\n const fontContext = `${addonRootFontSize} \"${addonRootFontFamily}\"`\n\n if (prefix || suffix) {\n const element = document.createElement('canvas')\n const context = element?.getContext('2d')\n\n if (context) {\n context.font = fontContext\n\n const extraBasePadding = inputDefaultXPadding + addonRootPadding\n\n const suffixPadding =\n extraBasePadding + Math.ceil(context.measureText(suffix).width)\n\n const getRightPadding = () => {\n if (hasIncrementer && suffix) {\n return suffixPadding + spacing.xl\n }\n if (suffix) {\n return suffixPadding\n }\n return null\n }\n\n return {\n left: prefix\n ? extraBasePadding + Math.ceil(context.measureText(prefix).width)\n : inputDefaultXPadding,\n right: getRightPadding(),\n }\n }\n }\n\n return {\n left: inputDefaultXPadding,\n right: null,\n }\n }, [prefix, suffix, hasIncrementer])\n\n const getValueChange = React.useCallback(\n (value: string) => {\n const { parsedNumber } = unformat(locale, value)\n return {\n value,\n parsedNumber: isNaN(parsedNumber) ? null : parsedNumber,\n }\n },\n [locale]\n )\n\n const externalOnChange = React.useCallback(\n (value: string) => _onChange && _onChange(getValueChange(value)),\n [_onChange, getValueChange]\n )\n\n const [inputValue, setInputValue] = React.useState(\n formatValue(defaultValue)\n )\n const [prevValue, setPrevValue] = React.useState(\n isControlled ? formatValue(value) : inputValue\n )\n const [prevCursorPosition, setPrevCursorPosition] =\n React.useState<CursorPosition>({\n selectionStart: 0,\n selectionEnd: 0,\n selection: emptyString,\n })\n const [pressedKey, setPressedKey] = React.useState()\n const prevLocale = usePrevious(locale)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n React.useLayoutEffect(() => {\n const formattedValue = formatValue(value)\n if (isControlled && inputValue !== formattedValue) {\n setInputValue(formattedValue)\n }\n\n if (isControlledWithoutOnChangeHandlerAndReadOnlyAttribute) {\n console.error(\n `Warning: Failed prop type: You provided a \\`value\\` prop to a form field without an \\`onChange\\` handler.\n This will render a read-only field. If the field should be mutable use \\`defaultValue\\`.\n Otherwise, set either \\`onChange\\` or \\`readOnly\\`.`\n )\n }\n }, [value])\n\n React.useEffect(() => {\n if (prevLocale && !identicalLocales(prevLocale, locale)) {\n setInputValue((prev) => {\n const newValue = formatValue(unformat(prevLocale, prev).parsedNumber)\n externalOnChange(newValue)\n return newValue\n })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [prevLocale, formatValue])\n\n React.useLayoutEffect(() => {\n const displayValue = inputRef.current?.value || ''\n if (!_onChange || !displayValue) {\n return\n }\n const formattedValue = formatValue(value)\n\n if (displayValue !== formattedValue) {\n const lastChar = displayValue[displayValue.length - 1]\n const lastCharIsPending = [periodKey, commaKey].includes(lastChar)\n\n const decimals = displayValue.split(decimal)[1] || ''\n const lastDecimalIsZero =\n decimals && decimals[decimals.length - 1] === '0'\n\n const onlyMinusDisplayed = displayValue === minus\n\n // a client state and display mismatch is only valid when\n if (lastCharIsPending || lastDecimalIsZero || onlyMinusDisplayed) {\n return\n }\n\n // otherwise sync display with client state\n setInputValue(formattedValue)\n }\n })\n\n const getNewValueAndCursorPosition = (\n value: string,\n pressedKey: PressedKey\n ) => {\n const preparedValue = prepareValueToFormatting(\n decimal,\n decimalSeparatorKey,\n group,\n pressedKey,\n prevCursorPosition,\n prevValue,\n verifiedDecimalScale,\n value\n )\n const newValue = formatValue(preparedValue)\n\n return {\n newValue,\n newCursorPosition: getNewCursorPosition(\n decimal,\n decimalSeparatorKey,\n group,\n newValue,\n pressedKey,\n prevCursorPosition,\n prevValue,\n value,\n verifiedDecimalScale,\n locale,\n fillDecimalScale\n ),\n }\n }\n\n const adjustCursor = (newPosition: number) => {\n inputRef.current?.setSelectionRange(newPosition, newPosition)\n // Mobile Chrome adjustment\n setTimeout(\n () => inputRef.current?.setSelectionRange(newPosition, newPosition),\n 0\n )\n }\n\n const makeStep = (down = false) => {\n const getSignificantPrecision = (fraction: string) => {\n const reversedFraction = fraction.split(emptyString).reverse()\n const indexOfLastSignificantFractionDigit = findIndex(\n (i) => i !== '0',\n reversedFraction\n )\n\n return indexOfLastSignificantFractionDigit > -1\n ? reversedFraction.slice(indexOfLastSignificantFractionDigit).length\n : 0\n }\n\n const { parsedNumber, fraction } = unformat(locale, inputValue)\n const { fraction: stepFraction } = unformat(locale, step)\n\n const prevValuePrecision = fraction.length || 0\n const prevValueSignificantPrecision = getSignificantPrecision(fraction)\n const rawStepPrecision = stepFraction.length || 0\n const rawStepPrecisionExceedsDecimalScale =\n rawStepPrecision > verifiedDecimalScale\n const stepPrecision = rawStepPrecisionExceedsDecimalScale\n ? verifiedDecimalScale\n : rawStepPrecision\n\n if (rawStepPrecisionExceedsDecimalScale) {\n console.warn(\n `WARNING: Step's value was rounded since its scale (${rawStepPrecision}) exceeds the decimal scale (${verifiedDecimalScale}).`\n )\n }\n\n const diff = toFixed(step, stepPrecision) * (down ? -1 : 1)\n const precision = Math.max(\n stepPrecision,\n fixedDecimalScale ? verifiedDecimalScale : prevValuePrecision\n )\n const significantPrecision = Math.max(\n prevValueSignificantPrecision,\n stepPrecision\n )\n const calculated = inputValue\n ? ((parsedNumber || 0) + diff).toFixed(significantPrecision)\n : diff\n\n const { isSafeLength, isSafeIntegerLength } = getValueLengthInfo(\n calculated,\n true\n )\n\n const rejectStepByLengthLimit = !isSafeLength || !isSafeIntegerLength\n\n if (rejectStepByLengthLimit) {\n console.warn(\n `WARNING: Incrementer's step was not fulfilled since result oversteps input ${maxDigitLength}-digit limit and can't be presented without a loss of precision.`\n )\n return\n }\n\n const formatted = format(locale, precision, 'always', calculated, true)\n\n setInputValue(formatted)\n externalOnChange(formatted)\n }\n\n const internalOnKeyDown = (e: any) => {\n const {\n ctrlKey,\n metaKey,\n key,\n target: { value, selectionStart, selectionEnd },\n } = e\n\n const selection = value.slice(selectionStart, selectionEnd)\n\n setPressedKey(key)\n setPrevCursorPosition({\n selectionStart,\n selectionEnd,\n selection,\n })\n setPrevValue(value)\n\n const preserveDecimalSeparator = () => {\n const decimalBackspaced =\n !selection &&\n [backspaceKey].includes(key) &&\n value[selectionEnd - 1] === decimal\n\n const decimalDeleted =\n !selection &&\n [deleteKey, numericKeypadKey].includes(key) &&\n value[selectionEnd] === decimal\n\n const nonReplacingKeys =\n [metaKeyIdentifier, controlKey, highlightAllKey, copyKey].includes(\n key\n ) &&\n (ctrlKey || metaKey)\n\n const decimalReplacedAsSelection =\n selection &&\n selection.includes(decimal) &&\n selection.length < value.length &&\n !nonReplacingKeys\n\n const preserveDecimal =\n decimalBackspaced || decimalDeleted || decimalReplacedAsSelection\n\n if (preserveDecimal) {\n const base = decimalReplacedAsSelection\n ? selectionStart\n : selectionEnd\n\n const shift = (decimalBackspaced && -1) || (decimalDeleted && 1) || 0\n\n const cursorPosition = base + shift\n\n e.preventDefault()\n adjustCursor(cursorPosition)\n }\n }\n\n const isDecimalSeparatorPreserved = () => {\n const { safeIntegerLength, integerLength, fractionLength } =\n getValueLengthInfo(value)\n\n const decimalSeparatorCanNotBeRemoved =\n safeIntegerLength - integerLength < fractionLength\n\n return (\n (fillDecimalScaleOnBlur && decimalSeparatorCanNotBeRemoved) ||\n fixedDecimalScale\n )\n }\n\n if (isDecimalSeparatorPreserved()) {\n preserveDecimalSeparator()\n }\n\n const handleIncrementer = () => {\n switch (key) {\n case 'ArrowUp':\n case 'Up':\n e.preventDefault()\n makeStep()\n break\n case 'ArrowDown':\n case 'Down':\n e.preventDefault()\n makeStep(true)\n break\n }\n }\n\n if (hasIncrementer) {\n handleIncrementer()\n }\n\n _onKeyDown(e)\n }\n\n const internalOnChange = (e: any) => {\n if (isControlledWithoutOnChangeHandlerAndReadOnlyAttribute) return\n\n const {\n target: { value },\n nativeEvent: { inputType },\n } = e\n\n const { newValue, newCursorPosition } = getNewValueAndCursorPosition(\n value,\n identifyPressedKey(\n decimalSeparatorKey,\n inputType,\n pressedKey,\n prevValue,\n value\n )\n )\n // Prevent cursor flickering\n e.target.value = newValue\n\n setInputValue(newValue)\n adjustCursor(newCursorPosition)\n\n if (newValue !== prevValue) {\n externalOnChange(newValue)\n }\n }\n\n const internalOnBlur = (e: any) => {\n const { integer, fraction } = unformat(locale, inputValue)\n\n const shouldValueBeCleared =\n inputValue === minus ||\n inputValue === decimal ||\n inputValue === `${minus}${decimal}`\n const shouldIntegerPartBeFilled =\n fraction.length > 0 && (integer === emptyString || integer === minus)\n const isDecimalSeparatorRedundant =\n verifiedDecimalScale > 0 &&\n inputValue[inputValue.length - 1] === decimal &&\n !fillDecimalScaleOnBlur\n const isDecimalScaleNotFilled = verifiedDecimalScale - fraction.length > 0\n const shouldDecimalScaleBeFilled =\n fillDecimalScaleOnBlur && isDecimalScaleNotFilled\n\n if (\n shouldValueBeCleared ||\n shouldIntegerPartBeFilled ||\n isDecimalSeparatorRedundant ||\n shouldDecimalScaleBeFilled\n ) {\n const getNewValue = () => {\n if (shouldValueBeCleared) {\n return emptyString\n }\n if (shouldIntegerPartBeFilled) {\n const numberOfZerosToPad = verifiedDecimalScale - fraction.length\n return `${integer}0${decimal}${\n shouldDecimalScaleBeFilled\n ? fraction.concat(\n Array.from({ length: numberOfZerosToPad }, (_) => '0').join(\n emptyString\n )\n )\n : fraction\n }`\n }\n if (isDecimalSeparatorRedundant) {\n return inputValue.replace(\n new RegExp(`[${decimal}]`, 'g'),\n emptyString\n )\n }\n if (shouldDecimalScaleBeFilled) {\n return format(locale, verifiedDecimalScale, 'always', inputValue)\n }\n\n return inputValue\n }\n const newValue = getNewValue()\n setInputValue(newValue)\n externalOnChange(newValue)\n }\n\n _onBlur(e)\n }\n\n return (\n <StyledWrapper $hasIncrementer={hasIncrementer} data-qa={qa?.wrapper}>\n <StyledInput\n value={inputValue}\n disabled={disabled}\n error={error}\n onKeyDown={internalOnKeyDown}\n onChange={internalOnChange}\n onBlur={internalOnBlur}\n inputMode=\"numeric\"\n // Chrome- InvalidStateError: Failed to execute 'setSelectionRange' on 'HTMLInputElement': The input element's type ('number') does not support selection.\n // Firefox- Uncaught DOMException: An attempt was made to use an object that is not, or is no longer, usable\n // type={hasIncrementer ? 'number' : undefined}\n lang={contextLocale}\n readOnly={readOnly}\n style={{\n ...style,\n ...{\n paddingLeft: `${inputPadding.left}px`,\n paddingRight: `${inputPadding.right}px`,\n },\n }}\n {...inputProps}\n {...props}\n ref={mergeRefs(ref, inputRef)}\n />\n {prefix && (\n <StyledPrefix disabled={disabled} {...prefixProps}>\n {prefix}\n </StyledPrefix>\n )}\n {suffix && (\n <StyledSuffix\n $withIncrementer={hasIncrementer}\n disabled={disabled}\n {...suffixProps}\n >\n {suffix}\n </StyledSuffix>\n )}\n {hasIncrementer && (\n <StyledIncrementerWrapper>\n <StyledIncrementerButton\n aria-hidden=\"true\"\n type=\"button\"\n disabled={disabled}\n tabIndex={-1}\n data-qa={qa?.increment}\n onClick={() => makeStep()}\n >\n <PlusIcon />\n </StyledIncrementerButton>\n <StyledIncrementerButton\n aria-hidden=\"true\"\n type=\"button\"\n disabled={disabled}\n tabIndex={-1}\n data-qa={qa?.decrement}\n onClick={() => makeStep(true)}\n >\n <MinusIcon />\n </StyledIncrementerButton>\n </StyledIncrementerWrapper>\n )}\n </StyledWrapper>\n )\n }\n)\n\nNumberInput.displayName = 'NumberInput'\n\nexport const getCurrencyProps = (\n locale: string,\n _decimalScale: NumberInputProps['decimalScale'],\n symbol?: string,\n currencyIsoCode?: string,\n currencyDisplay?: CurrencyDisplay\n): CurrencyProps => {\n const currencyOptions: CurrencyOptions = {\n locale,\n currencyIsoCode: currencyIsoCode || 'USD',\n currencyDisplay: currencyDisplay || 'narrowSymbol',\n }\n const parts = formatCurrencyToParts(1, currencyOptions)\n\n const formatterDecimalScale =\n parts.find((part) => part.type === 'fraction')?.value.length || 0\n const decimalScale = _decimalScale || formatterDecimalScale\n\n const placement =\n parts.findIndex((object) => {\n return object.type === 'currency'\n }) <\n parts.findIndex((part) => {\n return part.type === 'integer'\n })\n ? 'prefix'\n : 'suffix'\n\n const currencyIsoSymbol = currencyIsoCode\n ? parts.find((part) => part.type === 'currency')?.value.toString()\n : undefined\n\n const currencyProps: CurrencyProps =\n placement === 'prefix'\n ? {\n decimalScale: decimalScale as NumberInputProps['decimalScale'],\n prefix: currencyIsoSymbol || symbol || '',\n }\n : {\n decimalScale: decimalScale as NumberInputProps['decimalScale'],\n suffix: currencyIsoSymbol || symbol || '',\n }\n\n return currencyProps\n}\n\nexport const CurrencyInput = React.forwardRef<\n HTMLInputElement,\n CurrencyInputProps\n>(\n (\n {\n currencyDisplay,\n currencyIsoCode,\n decimalScale: _decimalScale,\n fillDecimalScale = defaultCurrencyFillDecimalScale,\n prefix = defaultCurrencyInputPrefix,\n suffix,\n ...props\n },\n ref\n ) => {\n const I18n = useI18nContext()\n const contextLocale = props.locale || I18n.locale || defaultLocale\n\n const currencyProps: CurrencyProps = getCurrencyProps(\n contextLocale as string,\n _decimalScale,\n prefix || suffix,\n currencyIsoCode,\n currencyDisplay\n )\n\n return (\n <NumberInput\n fillDecimalScale={fillDecimalScale}\n {...props}\n {...currencyProps}\n ref={ref}\n />\n )\n }\n)\n\nCurrencyInput.displayName = 'CurrencyInput'\n"],"mappings":"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"}
|
|
@@ -12,37 +12,37 @@ var inputBgColor = colors.white;
|
|
|
12
12
|
var inputBorder = "".concat(colors.gray70, " solid 1px");
|
|
13
13
|
var StyledRootAddon = /*#__PURE__*/styled.span.withConfig({
|
|
14
14
|
displayName: "StyledRootAddon",
|
|
15
|
-
componentId: "core-
|
|
15
|
+
componentId: "core-12_26_6__sc-1782nvg-0"
|
|
16
16
|
})(["display:inline-flex;align-items:center;height:100%;position:absolute;top:0;color:", ";", ";"], function (_ref) {
|
|
17
17
|
var disabled = _ref.disabled;
|
|
18
18
|
return disabled ? colors.gray70 : colors.gray45;
|
|
19
19
|
}, getTypographyIntent('body'));
|
|
20
20
|
export var StyledPrefix = /*#__PURE__*/styled(StyledRootAddon).withConfig({
|
|
21
21
|
displayName: "StyledPrefix",
|
|
22
|
-
componentId: "core-
|
|
22
|
+
componentId: "core-12_26_6__sc-1782nvg-1"
|
|
23
23
|
})(["left:", "px;"], spacing.md);
|
|
24
24
|
export var StyledSuffix = /*#__PURE__*/styled(StyledRootAddon).withConfig({
|
|
25
25
|
displayName: "StyledSuffix",
|
|
26
|
-
componentId: "core-
|
|
26
|
+
componentId: "core-12_26_6__sc-1782nvg-2"
|
|
27
27
|
})(["right:", "px;"], function (_ref2) {
|
|
28
28
|
var $withIncrementer = _ref2.$withIncrementer;
|
|
29
29
|
return $withIncrementer ? spacing.md + incrementerWidth : spacing.md;
|
|
30
30
|
});
|
|
31
31
|
export var StyledIncrementerWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
32
32
|
displayName: "StyledIncrementerWrapper",
|
|
33
|
-
componentId: "core-
|
|
33
|
+
componentId: "core-12_26_6__sc-1782nvg-3"
|
|
34
34
|
})(["display:flex;flex-direction:column;position:absolute;top:1px;right:1px;height:100%;"]);
|
|
35
35
|
export var StyledIncrementerButton = /*#__PURE__*/styled.button.withConfig({
|
|
36
36
|
displayName: "StyledIncrementerButton",
|
|
37
|
-
componentId: "core-
|
|
37
|
+
componentId: "core-12_26_6__sc-1782nvg-4"
|
|
38
38
|
})(["display:inline-flex;justify-content:center;align-items:center;width:", "px;height:calc(50% - 1px);border:none;border-radius:0px;outline:none;background-color:", ";padding:0;cursor:pointer;&:first-child,&:last-child{border-left:", ";&:disabled{border-color:", ";background-color:", ";}}&:first-child{border-top-right-radius:2px;}&:last-child{border-top:", ";border-bottom-right-radius:2px;}svg{fill:", ";}&:hover{svg{fill:", ";}}&:disabled{cursor:default;svg{fill:", ";}}"], incrementerWidth, inputBgColor, inputBorder, colors.gray70, colors.gray94, inputBorder, colors.gray45, colors.gray10, colors.gray70);
|
|
39
39
|
export var StyledInput = /*#__PURE__*/styled(Input).withConfig({
|
|
40
40
|
displayName: "StyledInput",
|
|
41
|
-
componentId: "core-
|
|
41
|
+
componentId: "core-12_26_6__sc-1782nvg-5"
|
|
42
42
|
})([""]);
|
|
43
43
|
export var StyledWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
44
44
|
displayName: "StyledWrapper",
|
|
45
|
-
componentId: "core-
|
|
45
|
+
componentId: "core-12_26_6__sc-1782nvg-6"
|
|
46
46
|
})(["position:relative;", ""], function (_ref3) {
|
|
47
47
|
var $hasIncrementer = _ref3.$hasIncrementer;
|
|
48
48
|
return $hasIncrementer && css(["", "{padding-right:", "px;}"], StyledInput, spacing.md + incrementerWidth);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CurrencyDisplay } from '@procore/globalization-toolkit';
|
|
2
|
-
import type { InputProps } from '../Input
|
|
2
|
+
import type { InputProps } from '../Input';
|
|
3
3
|
export declare type Locale = string | string[];
|
|
4
4
|
export declare type FillDecimalScaleVariant = 'none' | 'onBlur' | 'always';
|
|
5
5
|
export interface NumberInputValueChange {
|
|
@@ -127,6 +127,18 @@ export interface CursorPosition {
|
|
|
127
127
|
selection: string;
|
|
128
128
|
}
|
|
129
129
|
export interface CurrencyInputProps extends NumberInputProps {
|
|
130
|
+
/**
|
|
131
|
+
* @a11y should be labelled by using label id. Prefer `aria-labelledby` over `aria-label`.
|
|
132
|
+
* It will attach internal prefix of suffix automatically to the label
|
|
133
|
+
* @since 12.26.0
|
|
134
|
+
*/
|
|
135
|
+
'aria-labelledby'?: string;
|
|
136
|
+
/**
|
|
137
|
+
* @a11y use this prop if there are no label available. Prefer `aria-labelledby` over `aria-label`.
|
|
138
|
+
* It will attach internal prefix or suffix automatically to the label
|
|
139
|
+
* @since 12.26.0
|
|
140
|
+
*/
|
|
141
|
+
'aria-label'?: string;
|
|
130
142
|
/**
|
|
131
143
|
* String which is added to the input as a suffix or prefix dependent on the locale
|
|
132
144
|
* @since 11.10.0
|
|
@@ -156,4 +168,17 @@ interface CurrencyPropsWithSuffix extends CurrencyPropsBasic {
|
|
|
156
168
|
suffix: string;
|
|
157
169
|
}
|
|
158
170
|
export declare type CurrencyProps = CurrencyPropsWithPrefix | CurrencyPropsWithSuffix;
|
|
171
|
+
export interface NumberInputLabelConfig {
|
|
172
|
+
ariaLabel?: string;
|
|
173
|
+
ariaLabelledBy?: string;
|
|
174
|
+
id?: string;
|
|
175
|
+
name?: string;
|
|
176
|
+
prefix?: string;
|
|
177
|
+
suffix?: string;
|
|
178
|
+
}
|
|
179
|
+
export interface NumberInputLabelApi {
|
|
180
|
+
inputProps: InputProps;
|
|
181
|
+
prefixProps: InputProps;
|
|
182
|
+
suffixProps: InputProps;
|
|
183
|
+
}
|
|
159
184
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberInput.types.js","names":[],"sources":["../../src/NumberInput/NumberInput.types.ts"],"sourcesContent":["import type { CurrencyDisplay } from '@procore/globalization-toolkit'\nimport type { InputProps } from '../Input
|
|
1
|
+
{"version":3,"file":"NumberInput.types.js","names":[],"sources":["../../src/NumberInput/NumberInput.types.ts"],"sourcesContent":["import type { CurrencyDisplay } from '@procore/globalization-toolkit'\nimport type { InputProps } from '../Input'\n\nexport type Locale = string | string[]\n\nexport type FillDecimalScaleVariant = 'none' | 'onBlur' | 'always'\n\nexport interface NumberInputValueChange {\n /**\n * The displayed value in format of the locale\n * @example \"1.000,990\"\n * @since 10.19.0\n */\n value: string\n /**\n * A Number data type of value\n * @example 1000.99\n * @since 10.19.0\n */\n parsedNumber: number | null\n}\n\nexport type InputValue = string | number | undefined | null\n\ninterface QaTags {\n wrapper?: string\n increment?: string\n decrement?: string\n}\n\nexport interface NumberInputProps\n extends Omit<InputProps, 'value' | 'defaultValue' | 'onChange' | 'variant'> {\n /**\n * The maximum number of fraction digits to use. Possible values range from 0 to 14. Setting to true will result in the maximum size, setting to false will allow 0 decimals, whole numbers only.\n * @defaultValue true\n * @since 10.19.0\n */\n decimalScale?:\n | boolean\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12\n | 13\n | 14\n /**\n * Initial value of an uncontrolled component\n * @since 10.19.0\n */\n defaultValue?: InputValue\n /**\n * `none` prevents from adding zeros to match given `decimalScale`.\n *\n * `always` automatically adds zeros to match given `decimalScale`.\n *\n * `onBlur` automatically adds zeros to match given `decimalScale` when input has lost focus.\n * @default 'none'\n * @since 10.19.0\n */\n fillDecimalScale?: FillDecimalScaleVariant\n /**\n * `(value: ValueChange) => void`, where `ValueChange` is an object `{ value: string, parsedNumber: number | null }`.\n * @since 10.19.0\n */\n onChange?: (value: NumberInputValueChange) => void\n /**\n * A string which is added to input as a prefix.\n * @since 10.19.0\n */\n prefix?: string\n /**\n * A stepping interval which is used in incrementer. Zero value turns off incrementer.\n * @defaultValue 0\n * @since 10.19.0\n */\n step?: number\n /**\n * A string which is added to input as a suffix\n * @since 10.19.0\n */\n suffix?: string\n /**\n * Value of a controlled component. If value is a string, the string MUST be formatted with the decimal separator to the locale.\n * @since 10.19.0\n */\n value?: InputValue\n /**\n * @since 10.19.0\n */\n qa?: QaTags\n}\n\nexport interface UseNumberFormatConfig\n extends Pick<NumberInputProps, 'decimalScale' | 'fillDecimalScale'> {\n /**\n * A string with a BCP 47 language tag or an array of such strings which specifies number formatting.\n * @defaultValue en-US\n * @since 10.19.0\n */\n locale?: Locale\n}\n\nexport interface Separators {\n /**\n * @since 10.19.0\n */\n decimal: string\n /**\n * @since 10.19.0\n */\n group: string\n}\n\nexport interface ParsedInputValue {\n /**\n * @since 10.19.0\n */\n integer: string\n /**\n * @since 10.19.0\n */\n decimal: string\n /**\n * @since 10.19.0\n */\n fraction: string\n /**\n * @since 10.19.0\n */\n parsedNumber: number\n}\n\nexport type PressedKey = string | undefined\n\nexport interface CursorPosition {\n /**\n * @since 10.19.0\n */\n selectionStart: number\n /**\n * @since 10.19.0\n */\n selectionEnd: number\n /**\n * @since 10.19.0\n */\n selection: string\n}\n\nexport interface CurrencyInputProps extends NumberInputProps {\n /**\n * @a11y should be labelled by using label id. Prefer `aria-labelledby` over `aria-label`.\n * It will attach internal prefix of suffix automatically to the label\n * @since 12.26.0\n */\n 'aria-labelledby'?: string\n /**\n * @a11y use this prop if there are no label available. Prefer `aria-labelledby` over `aria-label`.\n * It will attach internal prefix or suffix automatically to the label\n * @since 12.26.0\n */\n 'aria-label'?: string\n /**\n * String which is added to the input as a suffix or prefix dependent on the locale\n * @since 11.10.0\n */\n currencyIsoCode?: string\n /**\n * GTK option that determines how the currency symbol is displayed (narrowSymbol, symbol, name, code)\n * @since 11.10.0\n */\n currencyDisplay?: CurrencyDisplay\n /**\n * A string with a BCP 47 language tag or an array of such strings which specifies number formatting.\n * @defaultValue en-US\n * @since 10.19.0\n */\n locale?: Locale\n}\n\ninterface CurrencyPropsBasic {\n decimalScale?: NumberInputProps['decimalScale']\n}\ninterface CurrencyPropsWithPrefix extends CurrencyPropsBasic {\n prefix: string\n suffix?: never\n}\ninterface CurrencyPropsWithSuffix extends CurrencyPropsBasic {\n prefix?: never\n suffix: string\n}\n\nexport type CurrencyProps = CurrencyPropsWithPrefix | CurrencyPropsWithSuffix\n\nexport interface NumberInputLabelConfig {\n ariaLabel?: string\n ariaLabelledBy?: string\n id?: string\n name?: string\n prefix?: string\n suffix?: string\n}\n\nexport interface NumberInputLabelApi {\n inputProps: InputProps\n prefixProps: InputProps\n suffixProps: InputProps\n}\n"],"mappings":""}
|
|
@@ -2,6 +2,6 @@ import styled from 'styled-components';
|
|
|
2
2
|
export var arrowSize = 8;
|
|
3
3
|
export var StyledArrow = /*#__PURE__*/styled.div.withConfig({
|
|
4
4
|
displayName: "StyledArrow",
|
|
5
|
-
componentId: "core-
|
|
5
|
+
componentId: "core-12_26_6__sc-1epxw7u-0"
|
|
6
6
|
})(["position:absolute;background:inherit;width:", "px;height:", "px;transform:rotate(45deg);"], arrowSize, arrowSize);
|
|
7
7
|
//# sourceMappingURL=OverlayArrow.styles.js.map
|
|
@@ -11,52 +11,52 @@ var outerPageSpacing = spacing.lg;
|
|
|
11
11
|
var outerPageSpacingSmaller = spacing.md;
|
|
12
12
|
export var StyledPageHeader = /*#__PURE__*/styled.div.withConfig({
|
|
13
13
|
displayName: "StyledPageHeader",
|
|
14
|
-
componentId: "core-
|
|
14
|
+
componentId: "core-12_26_6__sc-1cvdbsv-0"
|
|
15
15
|
})(["padding-top:", "px;padding-right:", "px;padding-left:", "px;@media ", "{padding-right:", "px;padding-left:", "px;}", ""], headerVerticalSpacing, outerPageSpacing, outerPageSpacing, mediaBreakpointsDown.tabletMd, outerPageSpacingSmaller, outerPageSpacingSmaller, function (_ref) {
|
|
16
16
|
var $transparent = _ref.$transparent;
|
|
17
17
|
return !$transparent && css(["", " background-color:", ";"], getShadow(1.5), colors.white);
|
|
18
18
|
});
|
|
19
19
|
var StyledPageHeaderItem = /*#__PURE__*/styled.div.withConfig({
|
|
20
20
|
displayName: "StyledPageHeaderItem",
|
|
21
|
-
componentId: "core-
|
|
21
|
+
componentId: "core-12_26_6__sc-1cvdbsv-1"
|
|
22
22
|
})(["margin-top:", "px;&:first-child{margin-top:0;}"], headerVerticalSpacing);
|
|
23
23
|
export var StyledPageTitle = /*#__PURE__*/styled(StyledPageHeaderItem).withConfig({
|
|
24
24
|
displayName: "StyledPageTitle",
|
|
25
|
-
componentId: "core-
|
|
25
|
+
componentId: "core-12_26_6__sc-1cvdbsv-2"
|
|
26
26
|
})(["&:last-child{padding-bottom:", "px;}"], headerVerticalSpacing);
|
|
27
27
|
export var StyledPageBreadcrumbs = /*#__PURE__*/styled(StyledPageHeaderItem).attrs({
|
|
28
28
|
as: 'nav'
|
|
29
29
|
}).withConfig({
|
|
30
30
|
displayName: "StyledPageBreadcrumbs",
|
|
31
|
-
componentId: "core-
|
|
31
|
+
componentId: "core-12_26_6__sc-1cvdbsv-3"
|
|
32
32
|
})([""]);
|
|
33
33
|
export var StyledPageBanner = /*#__PURE__*/styled(StyledPageHeaderItem).withConfig({
|
|
34
34
|
displayName: "StyledPageBanner",
|
|
35
|
-
componentId: "core-
|
|
35
|
+
componentId: "core-12_26_6__sc-1cvdbsv-4"
|
|
36
36
|
})([""]);
|
|
37
37
|
export var getActions = function getActions() {
|
|
38
38
|
return css(["flex-shrink:0;padding-left:", "px;> button,> a{&:first-child{margin-left:0;}margin-left:", "px;}"], spacing.xl, spacing.sm);
|
|
39
39
|
};
|
|
40
40
|
export var StyledPageActions = /*#__PURE__*/styled.div.withConfig({
|
|
41
41
|
displayName: "StyledPageActions",
|
|
42
|
-
componentId: "core-
|
|
42
|
+
componentId: "core-12_26_6__sc-1cvdbsv-5"
|
|
43
43
|
})(["", ""], getActions());
|
|
44
44
|
export var StyledPageTabs = /*#__PURE__*/styled(StyledPageHeaderItem).withConfig({
|
|
45
45
|
displayName: "StyledPageTabs",
|
|
46
|
-
componentId: "core-
|
|
46
|
+
componentId: "core-12_26_6__sc-1cvdbsv-6"
|
|
47
47
|
})([""]);
|
|
48
48
|
export var StyledBody = /*#__PURE__*/styled.div.withConfig({
|
|
49
49
|
displayName: "StyledBody",
|
|
50
|
-
componentId: "core-
|
|
50
|
+
componentId: "core-12_26_6__sc-1cvdbsv-7"
|
|
51
51
|
})(["padding-top:", "px;padding-left:", "px;padding-right:", "px;@media ", "{padding-top:", "px;padding-left:", "px;padding-right:", "px;}"], outerPageSpacing, outerPageSpacing, outerPageSpacing, mediaBreakpointsDown.tabletMd, outerPageSpacingSmaller, outerPageSpacingSmaller, outerPageSpacingSmaller);
|
|
52
52
|
var navigationWidth = 200;
|
|
53
53
|
export var StyledNavigation = /*#__PURE__*/styled.div.withConfig({
|
|
54
54
|
displayName: "StyledNavigation",
|
|
55
|
-
componentId: "core-
|
|
55
|
+
componentId: "core-12_26_6__sc-1cvdbsv-8"
|
|
56
56
|
})(["float:left;max-height:100vh;min-width:", "px;overflow-y:auto;position:sticky;top:0;width:", "px;", "{padding:20px ", "px 0 0;}@media screen and (max-width:1024px){display:none;}"], navigationWidth, navigationWidth, StyledAnchorNavigation, spacing.sm);
|
|
57
57
|
export var StyledContent = /*#__PURE__*/styled.div.withConfig({
|
|
58
58
|
displayName: "StyledContent",
|
|
59
|
-
componentId: "core-
|
|
59
|
+
componentId: "core-12_26_6__sc-1cvdbsv-9"
|
|
60
60
|
})([""]);
|
|
61
61
|
var panelWidth = 400;
|
|
62
62
|
var zIndexes = {
|
|
@@ -69,7 +69,7 @@ export var animationDuration = {
|
|
|
69
69
|
};
|
|
70
70
|
export var StyledFooter = /*#__PURE__*/styled.div.withConfig({
|
|
71
71
|
displayName: "StyledFooter",
|
|
72
|
-
componentId: "core-
|
|
72
|
+
componentId: "core-12_26_6__sc-1cvdbsv-10"
|
|
73
73
|
})(["background-color:", ";", " position:sticky;bottom:0;z-index:", ";", ""], colors.white, function (_ref2) {
|
|
74
74
|
var $hasShadow = _ref2.$hasShadow;
|
|
75
75
|
return $hasShadow && getShadow(2, 'top');
|
|
@@ -79,7 +79,7 @@ export var StyledFooter = /*#__PURE__*/styled.div.withConfig({
|
|
|
79
79
|
});
|
|
80
80
|
export var StyledAside = /*#__PURE__*/styled.div.withConfig({
|
|
81
81
|
displayName: "StyledAside",
|
|
82
|
-
componentId: "core-
|
|
82
|
+
componentId: "core-12_26_6__sc-1cvdbsv-11"
|
|
83
83
|
})(["", " @media ", "{position:absolute;right:0;}"], function (_ref4) {
|
|
84
84
|
var $closed = _ref4.$closed,
|
|
85
85
|
$open = _ref4.$open;
|
|
@@ -99,7 +99,7 @@ var getPanelAnimation = function getPanelAnimation() {
|
|
|
99
99
|
};
|
|
100
100
|
export var StyledAsidePanel = /*#__PURE__*/styled.div.withConfig({
|
|
101
101
|
displayName: "StyledAsidePanel",
|
|
102
|
-
componentId: "core-
|
|
102
|
+
componentId: "core-12_26_6__sc-1cvdbsv-12"
|
|
103
103
|
})(["", " @media ", "{", "}", " ", " border-left:1px solid ", ";width:", "px;position:fixed;background-color:", ";overflow:auto;z-index:", ";", " ", ""], function (_ref7) {
|
|
104
104
|
var $rightOffset = _ref7.$rightOffset;
|
|
105
105
|
return css(["@media ", "{", " border-left:0;z-index:", ";right:", "px;}"], mediaBreakpointsDown.tabletMd, getShadow(2), zIndexes.panelNarrowScreen, $rightOffset);
|
|
@@ -118,7 +118,7 @@ export var StyledAsidePanel = /*#__PURE__*/styled.div.withConfig({
|
|
|
118
118
|
});
|
|
119
119
|
export var StyledPageMain = /*#__PURE__*/styled.div.withConfig({
|
|
120
120
|
displayName: "StyledPageMain",
|
|
121
|
-
componentId: "core-
|
|
121
|
+
componentId: "core-12_26_6__sc-1cvdbsv-13"
|
|
122
122
|
})(["position:relative;max-width:100%;background-color:", ";", " ", ""], colors.gray96, function () {
|
|
123
123
|
return isIE11() && css(["flex:1 0 0%;"]);
|
|
124
124
|
}, function (_ref10) {
|
|
@@ -133,13 +133,13 @@ export var StyledPageMain = /*#__PURE__*/styled.div.withConfig({
|
|
|
133
133
|
});
|
|
134
134
|
export var StyledPageContainer = /*#__PURE__*/styled.div.withConfig({
|
|
135
135
|
displayName: "StyledPageContainer",
|
|
136
|
-
componentId: "core-
|
|
136
|
+
componentId: "core-12_26_6__sc-1cvdbsv-14"
|
|
137
137
|
})(["display:grid;grid-template-columns:1fr auto;", ""], function () {
|
|
138
138
|
return isIE11() && css(["display:flex;flex-wrap:wrap;"]);
|
|
139
139
|
});
|
|
140
140
|
export var StyledAsideFluidContainer = /*#__PURE__*/styled.div.withConfig({
|
|
141
141
|
displayName: "StyledAsideFluidContainer",
|
|
142
|
-
componentId: "core-
|
|
142
|
+
componentId: "core-12_26_6__sc-1cvdbsv-15"
|
|
143
143
|
})(["", ""], function (_ref11) {
|
|
144
144
|
var $closed = _ref11.$closed,
|
|
145
145
|
$open = _ref11.$open;
|
|
@@ -3,6 +3,6 @@ import { colors } from '../../_styles/colors';
|
|
|
3
3
|
import { spacing } from '../../_styles/spacing';
|
|
4
4
|
export var StyledPageFooter = /*#__PURE__*/styled.footer.withConfig({
|
|
5
5
|
displayName: "StyledPageFooter",
|
|
6
|
-
componentId: "core-
|
|
6
|
+
componentId: "core-12_26_6__sc-1f0zfyf-0"
|
|
7
7
|
})(["display:flex;align-items:center;justify-content:space-between;background-color:", ";padding:", "px;width:100%;box-shadow:0 -2px 6px 0 rgba(0,0,0,0.1);position:sticky;bottom:0;"], colors.white, spacing.lg);
|
|
8
8
|
//# sourceMappingURL=PageFooterTemplate.styles.js.map
|
|
@@ -5,16 +5,16 @@ import { colors } from '../../_styles/colors';
|
|
|
5
5
|
import { spacing } from '../../_styles/spacing';
|
|
6
6
|
export var StyledPageHeader = /*#__PURE__*/styled(Page.Header).withConfig({
|
|
7
7
|
displayName: "StyledPageHeader",
|
|
8
|
-
componentId: "core-
|
|
8
|
+
componentId: "core-12_26_6__sc-1d5kop0-0"
|
|
9
9
|
})(["border-bottom:1px solid ", ";padding-top:", "px;", ""], colors.gray85, spacing.lg, function (p) {
|
|
10
10
|
return p.$hasPaddingBottom && "padding-bottom: ".concat(spacing.lg, "px;");
|
|
11
11
|
});
|
|
12
12
|
export var StyledActions = /*#__PURE__*/styled(Box).withConfig({
|
|
13
13
|
displayName: "StyledActions",
|
|
14
|
-
componentId: "core-
|
|
14
|
+
componentId: "core-12_26_6__sc-1d5kop0-1"
|
|
15
15
|
})(["width:fit-content;"]);
|
|
16
16
|
export var StyledToggleActionBox = /*#__PURE__*/styled(Box).withConfig({
|
|
17
17
|
displayName: "StyledToggleActionBox",
|
|
18
|
-
componentId: "core-
|
|
18
|
+
componentId: "core-12_26_6__sc-1d5kop0-2"
|
|
19
19
|
})(["bottom:", "px;position:relative;padding-left:48px;"], spacing.lg);
|
|
20
20
|
//# sourceMappingURL=PageHeaderTemplate.styles.js.map
|
|
@@ -10,10 +10,10 @@ var panelWidthSmall = 360;
|
|
|
10
10
|
export var mobileBreakpoint = 440;
|
|
11
11
|
export var StyledPageAside = /*#__PURE__*/styled(Page.Aside).withConfig({
|
|
12
12
|
displayName: "StyledPageAside",
|
|
13
|
-
componentId: "core-
|
|
13
|
+
componentId: "core-12_26_6__sc-1p7nu53-0"
|
|
14
14
|
})(["position:sticky;top:0;right:0;max-height:100vh;width:100%;height:100%;@media ", "{position:sticky;max-width:", "px;flex-basis:", "px;}", "{@media ", "{max-width:", "px;}}", "{position:sticky;top:0;right:0;box-shadow:none;animation:none;padding-bottom:68px;@media ", "{width:", "px;}@media (max-width:", "px){padding-bottom:0;}}", "{position:fixed;bottom:0;display:flex;width:100%;max-width:400px;@media ", "{max-width:", "px;}}"], mediaBreakpointsDown.tabletLg, panelWidthSmall, panelWidthSmall, StyledAsideFluidContainer, mediaBreakpointsDown.tabletLg, panelWidthSmall, StyledAsidePanel, mediaBreakpointsDown.tabletLg, panelWidthSmall, mobileBreakpoint, StyledPanelFooter, mediaBreakpointsDown.tabletLg, panelWidthSmall);
|
|
15
15
|
export var StyledModal = /*#__PURE__*/styled(Modal).withConfig({
|
|
16
16
|
displayName: "StyledModal",
|
|
17
|
-
componentId: "core-
|
|
17
|
+
componentId: "core-12_26_6__sc-1p7nu53-1"
|
|
18
18
|
})(["top:", "px;bottom:", "px;max-width:416px;transform:none;", "{max-height:100vh;}@media (max-width:", "px){top:0;bottom:0;left:0;right:0;max-width:100%;}"], spacing.md, spacing.md, StyledModalContent, mobileBreakpoint);
|
|
19
19
|
//# sourceMappingURL=PagePaneTemplate.styles.js.map
|
|
@@ -5,14 +5,14 @@ import { spacing } from '../../_styles/spacing';
|
|
|
5
5
|
export var mobileBreakpoint = 440;
|
|
6
6
|
export var StyledPageWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
7
7
|
displayName: "StyledPageWrapper",
|
|
8
|
-
componentId: "core-
|
|
8
|
+
componentId: "core-12_26_6__sc-uuo7st-0"
|
|
9
9
|
})(["display:flex;flex-direction:column;"]);
|
|
10
10
|
export var StyledPageBodyWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
11
11
|
displayName: "StyledPageBodyWrapper",
|
|
12
|
-
componentId: "core-
|
|
12
|
+
componentId: "core-12_26_6__sc-uuo7st-1"
|
|
13
13
|
})(["display:grid;grid-template-columns:1fr auto;"]);
|
|
14
14
|
export var StyledPageBody = /*#__PURE__*/styled(Page.Body).withConfig({
|
|
15
15
|
displayName: "StyledPageBody",
|
|
16
|
-
componentId: "core-
|
|
16
|
+
componentId: "core-12_26_6__sc-uuo7st-2"
|
|
17
17
|
})(["padding-bottom:", "px;@media ", "{padding:", "px;}"], spacing.lg, mediaBreakpointsDown.desktopMd, spacing.md);
|
|
18
18
|
//# sourceMappingURL=PageTemplate.styles.js.map
|