@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.
Files changed (196) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
  3. package/dist/Avatar/Avatar.styles.js +5 -5
  4. package/dist/AvatarStack/AvatarStack.styles.js +7 -7
  5. package/dist/Badge/Badge.styles.js +2 -2
  6. package/dist/BadgePill/BadgePill.styles.js +4 -4
  7. package/dist/Banner/Banner.styles.js +10 -10
  8. package/dist/Box/Box.styles.js +1 -1
  9. package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
  10. package/dist/Button/Button.styles.js +5 -5
  11. package/dist/Calendar/Calendar.styles.js +8 -8
  12. package/dist/Card/Card.styles.js +1 -1
  13. package/dist/Checkbox/Checkbox.styles.js +6 -6
  14. package/dist/Checkbox/CheckboxTooltip.js +1 -1
  15. package/dist/ContactItem/ContactItem.styles.js +5 -5
  16. package/dist/Content/Content.styles.js +2 -2
  17. package/dist/DateInput/DateInput.styles.js +6 -6
  18. package/dist/DeprecatedTextEditorOutput/DeprecatedTextEditorOutput.styles.js +1 -1
  19. package/dist/DetailPage/DetailPage.styles.js +7 -7
  20. package/dist/Dropdown/Dropdown.styles.js +3 -3
  21. package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
  22. package/dist/Dropzone/Dropzone.js +1 -1
  23. package/dist/Dropzone/Dropzone.styles.js +9 -9
  24. package/dist/EmptyState/EmptyState.styles.js +6 -6
  25. package/dist/Field/Field.styles.js +3 -3
  26. package/dist/FileList/FileList.styles.js +4 -4
  27. package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
  28. package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
  29. package/dist/FileSelect/FileSelect.styles.js +2 -2
  30. package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
  31. package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
  32. package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
  33. package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
  34. package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
  35. package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
  36. package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
  37. package/dist/FileToken/FileToken.styles.js +4 -4
  38. package/dist/FilterToken/FilterToken.styles.js +5 -5
  39. package/dist/FlexList/FlexList.styles.js +1 -1
  40. package/dist/Form/Form.js +1 -1
  41. package/dist/Form/Form.js.map +1 -1
  42. package/dist/Form/Form.styles.js +14 -14
  43. package/dist/Form/StyledFormikForm.styles.js +2 -2
  44. package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
  45. package/dist/Grid/Grid.styles.js +2 -2
  46. package/dist/GroupSelect/GroupSelect.styles.js +1 -1
  47. package/dist/Input/Input.styles.js +1 -1
  48. package/dist/Link/Link.styles.js +1 -1
  49. package/dist/ListPage/ListPage.styles.js +8 -8
  50. package/dist/Loader/Loader.styles.js +2 -2
  51. package/dist/MenuImperative/MenuImperative.styles.js +10 -10
  52. package/dist/Modal/Modal.styles.js +13 -13
  53. package/dist/MultiSelect/MultiSelect.styles.js +6 -6
  54. package/dist/NextMenu/NextMenu.styles.js +3 -3
  55. package/dist/NextTextEditor/NextTextEditor.styles.js +2 -2
  56. package/dist/NextTextEditor/NextTextEditor.styles.js.map +1 -1
  57. package/dist/NextTextEditorOutput/NextTextEditorOutput.styles.js +1 -1
  58. package/dist/Notation/Notation.js +1 -1
  59. package/dist/NumberInput/NumberInput.hooks.d.ts +2 -1
  60. package/dist/NumberInput/NumberInput.hooks.js +40 -0
  61. package/dist/NumberInput/NumberInput.hooks.js.map +1 -1
  62. package/dist/NumberInput/NumberInput.js +20 -7
  63. package/dist/NumberInput/NumberInput.js.map +1 -1
  64. package/dist/NumberInput/NumberInput.styles.js +7 -7
  65. package/dist/NumberInput/NumberInput.types.d.ts +26 -1
  66. package/dist/NumberInput/NumberInput.types.js.map +1 -1
  67. package/dist/Overlay/OverlayArrow.styles.js +1 -1
  68. package/dist/PageLayout/PageLayout.styles.js +16 -16
  69. package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
  70. package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
  71. package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
  72. package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
  73. package/dist/Pagination/Pagination.styles.js +5 -5
  74. package/dist/Panel/Panel.styles.js +11 -11
  75. package/dist/Pill/Pill.styles.js +3 -3
  76. package/dist/PillSelect/PillSelect.styles.js +4 -4
  77. package/dist/Popover/Popover.styles.js +2 -2
  78. package/dist/Portal/Portal.styles.js +1 -1
  79. package/dist/ProgressBar/ProgressBar.styles.js +2 -2
  80. package/dist/RadioButton/RadioButton.styles.js +3 -3
  81. package/dist/Required/Required.styles.js +3 -3
  82. package/dist/Search/Search.styles.js +5 -5
  83. package/dist/Section/Section.styles.js +7 -7
  84. package/dist/SegmentedController/SegmentedController.styles.js +4 -4
  85. package/dist/Select/Select.styles.js +7 -7
  86. package/dist/Semantic/Semantic.styles.js +9 -9
  87. package/dist/Slider/Slider.styles.js +5 -5
  88. package/dist/Spinner/Spinner.styles.js +7 -7
  89. package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
  90. package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
  91. package/dist/SuperSelect/SuperSelect.styles.js +37 -37
  92. package/dist/Switch/Switch.styles.js +4 -4
  93. package/dist/Table/Table.styles.js +28 -28
  94. package/dist/TableShelf/TableShelf.styles.js +5 -5
  95. package/dist/Tabs/Tabs.styles.js +15 -15
  96. package/dist/Tearsheet/Tearsheet.styles.js +5 -5
  97. package/dist/TextArea/TextArea.styles.js +1 -1
  98. package/dist/Thumbnail/Thumbnail.styles.js +17 -17
  99. package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
  100. package/dist/TieredSelect/TieredSelect.styles.js +9 -9
  101. package/dist/Tile/Tile.styles.js +8 -8
  102. package/dist/Title/Title.styles.js +7 -7
  103. package/dist/Toast/Toast.styles.js +3 -3
  104. package/dist/ToggleButton/ToggleButton.styles.js +1 -1
  105. package/dist/Token/Token.styles.js +3 -3
  106. package/dist/ToolHeader/ToolHeader.styles.js +6 -6
  107. package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
  108. package/dist/Tooltip/Tooltip.styles.js +2 -2
  109. package/dist/Tree/Tree.styles.js +9 -9
  110. package/dist/Typeahead/Typeahead.styles.js +3 -3
  111. package/dist/Typography/Typography.styles.js +1 -1
  112. package/dist/Typography/Typography.table.story.js +2 -2
  113. package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
  114. package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
  115. package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
  116. package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
  117. package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
  118. package/dist/_typedoc/Badge/Badge.types.json +6 -6
  119. package/dist/_typedoc/Banner/Banner.types.json +13 -13
  120. package/dist/_typedoc/Box/Box.types.json +68 -68
  121. package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
  122. package/dist/_typedoc/Button/Button.types.json +13 -13
  123. package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
  124. package/dist/_typedoc/Card/Card.types.json +6 -6
  125. package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
  126. package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
  127. package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
  128. package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
  129. package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
  130. package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
  131. package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +30 -30
  132. package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
  133. package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
  134. package/dist/_typedoc/FileList/FileList.types.json +9 -9
  135. package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
  136. package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
  137. package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
  138. package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
  139. package/dist/_typedoc/Flex/Flex.types.json +27 -27
  140. package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
  141. package/dist/_typedoc/Form/Form.types.json +798 -754
  142. package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
  143. package/dist/_typedoc/Grid/Grid.types.json +8 -8
  144. package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
  145. package/dist/_typedoc/Input/Input.types.json +2 -2
  146. package/dist/_typedoc/Link/Link.types.json +1 -1
  147. package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
  148. package/dist/_typedoc/Menu/Menu.types.json +62 -62
  149. package/dist/_typedoc/MenuImperative/MenuImperative.types.json +74 -74
  150. package/dist/_typedoc/Modal/Modal.types.json +46 -46
  151. package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
  152. package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
  153. package/dist/_typedoc/Notation/Notation.types.json +4 -4
  154. package/dist/_typedoc/NumberInput/NumberInput.types.json +161 -37
  155. package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +32 -32
  156. package/dist/_typedoc/PageLayout/PageLayout.types.json +26 -26
  157. package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
  158. package/dist/_typedoc/Panel/Panel.types.json +30 -30
  159. package/dist/_typedoc/Pill/Pill.types.json +2 -2
  160. package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
  161. package/dist/_typedoc/Popover/Popover.types.json +15 -15
  162. package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
  163. package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
  164. package/dist/_typedoc/Required/Required.types.json +5 -5
  165. package/dist/_typedoc/Search/Search.types.json +18 -18
  166. package/dist/_typedoc/Section/Section.types.json +15 -15
  167. package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
  168. package/dist/_typedoc/Select/Select.types.json +60 -60
  169. package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
  170. package/dist/_typedoc/Slider/Slider.types.json +6 -6
  171. package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
  172. package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +14 -14
  173. package/dist/_typedoc/Table/Table.types.json +101 -101
  174. package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
  175. package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
  176. package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
  177. package/dist/_typedoc/TextEditor/TextEditorDocs.types.json +9 -9
  178. package/dist/_typedoc/TextEditor/TextEditorProvider.types.json +2 -2
  179. package/dist/_typedoc/TextEditorOutput/TextEditorOutputDocs.types.json +3 -3
  180. package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
  181. package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +42 -42
  182. package/dist/_typedoc/TieredSelect/TieredSelect.types.json +28 -28
  183. package/dist/_typedoc/Tile/Tile.types.json +8 -8
  184. package/dist/_typedoc/Title/Title.types.json +1 -1
  185. package/dist/_typedoc/Toast/Toast.types.json +4 -4
  186. package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
  187. package/dist/_typedoc/Token/Token.types.json +7 -7
  188. package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
  189. package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +7 -7
  190. package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
  191. package/dist/_typedoc/Tree/Tree.types.json +86 -86
  192. package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
  193. package/dist/_typedoc/Typography/Typography.types.json +9 -9
  194. package/dist/_typedoc/_utils/types.json +3 -3
  195. package/jestConfig.d.ts +3 -0
  196. 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 _ref$decimalScale = _ref.decimalScale,
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-12_26_5__sc-1782nvg-0"
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-12_26_5__sc-1782nvg-1"
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-12_26_5__sc-1782nvg-2"
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-12_26_5__sc-1782nvg-3"
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-12_26_5__sc-1782nvg-4"
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-12_26_5__sc-1782nvg-5"
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-12_26_5__sc-1782nvg-6"
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/Input.types';
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/Input.types'\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 * 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"],"mappings":""}
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-12_26_5__sc-1epxw7u-0"
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-12_26_5__sc-1cvdbsv-0"
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-12_26_5__sc-1cvdbsv-1"
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-12_26_5__sc-1cvdbsv-2"
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-12_26_5__sc-1cvdbsv-3"
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-12_26_5__sc-1cvdbsv-4"
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-12_26_5__sc-1cvdbsv-5"
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-12_26_5__sc-1cvdbsv-6"
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-12_26_5__sc-1cvdbsv-7"
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-12_26_5__sc-1cvdbsv-8"
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-12_26_5__sc-1cvdbsv-9"
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-12_26_5__sc-1cvdbsv-10"
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-12_26_5__sc-1cvdbsv-11"
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-12_26_5__sc-1cvdbsv-12"
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-12_26_5__sc-1cvdbsv-13"
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-12_26_5__sc-1cvdbsv-14"
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-12_26_5__sc-1cvdbsv-15"
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-12_26_5__sc-1f0zfyf-0"
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-12_26_5__sc-1d5kop0-0"
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-12_26_5__sc-1d5kop0-1"
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-12_26_5__sc-1d5kop0-2"
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-12_26_5__sc-1p7nu53-0"
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-12_26_5__sc-1p7nu53-1"
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-12_26_5__sc-uuo7st-0"
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_26_5__sc-uuo7st-1"
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-12_26_5__sc-uuo7st-2"
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