@audius/harmony 0.4.2 → 0.4.3

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 (128) hide show
  1. package/README.md +2 -2
  2. package/dist/assets/icons/ArtistCoin.svg.js +86 -0
  3. package/dist/assets/icons/ArtistCoin.svg.js.map +1 -0
  4. package/dist/assets/icons/CoinGatedLabel.svg.js +93 -0
  5. package/dist/assets/icons/CoinGatedLabel.svg.js.map +1 -0
  6. package/dist/components/artwork/Artwork.d.ts +1 -0
  7. package/dist/components/artwork/Artwork.d.ts.map +1 -1
  8. package/dist/components/artwork/Artwork.js +5 -2
  9. package/dist/components/artwork/Artwork.js.map +1 -1
  10. package/dist/components/button/BaseButton/BaseButton.d.ts.map +1 -1
  11. package/dist/components/button/BaseButton/BaseButton.js +1 -1
  12. package/dist/components/button/BaseButton/BaseButton.js.map +1 -1
  13. package/dist/components/button/Button/Button.d.ts +2 -1
  14. package/dist/components/button/Button/Button.d.ts.map +1 -1
  15. package/dist/components/button/Button/Button.js +18 -21
  16. package/dist/components/button/Button/Button.js.map +1 -1
  17. package/dist/components/button/Button/types.d.ts +4 -0
  18. package/dist/components/button/Button/types.d.ts.map +1 -1
  19. package/dist/components/button/FollowButton/FollowButton.js +1 -0
  20. package/dist/components/button/FollowButton/FollowButton.js.map +1 -1
  21. package/dist/components/button/SocialButton/SocialButton.js +1 -0
  22. package/dist/components/button/SocialButton/SocialButton.js.map +1 -1
  23. package/dist/components/button/index.d.ts +1 -0
  24. package/dist/components/button/index.d.ts.map +1 -1
  25. package/dist/components/completion-check/CompletionCheck.js +1 -0
  26. package/dist/components/completion-check/CompletionCheck.js.map +1 -1
  27. package/dist/components/expandable-nav-item/ExpandableNavItem.js +1 -0
  28. package/dist/components/expandable-nav-item/ExpandableNavItem.js.map +1 -1
  29. package/dist/components/hint/Hint.d.ts +1 -0
  30. package/dist/components/hint/Hint.d.ts.map +1 -1
  31. package/dist/components/hint/Hint.js +3 -2
  32. package/dist/components/hint/Hint.js.map +1 -1
  33. package/dist/components/hover-card/HoverCard.d.ts +1 -1
  34. package/dist/components/hover-card/HoverCard.d.ts.map +1 -1
  35. package/dist/components/hover-card/HoverCard.js +10 -4
  36. package/dist/components/hover-card/HoverCard.js.map +1 -1
  37. package/dist/components/hover-card/HoverCardHeader.d.ts +1 -1
  38. package/dist/components/hover-card/HoverCardHeader.d.ts.map +1 -1
  39. package/dist/components/hover-card/HoverCardHeader.js +9 -3
  40. package/dist/components/hover-card/HoverCardHeader.js.map +1 -1
  41. package/dist/components/hover-card/types.d.ts +9 -0
  42. package/dist/components/hover-card/types.d.ts.map +1 -1
  43. package/dist/components/input/PasswordInput/PasswordInput.js +1 -0
  44. package/dist/components/input/PasswordInput/PasswordInput.js.map +1 -1
  45. package/dist/components/input/TextInput/TextInput.d.ts.map +1 -1
  46. package/dist/components/input/TextInput/TextInput.js +16 -5
  47. package/dist/components/input/TextInput/TextInput.js.map +1 -1
  48. package/dist/components/input/TextInput/TextInput.module.css.js +1 -1
  49. package/dist/components/input/TextInput/types.d.ts +2 -1
  50. package/dist/components/input/TextInput/types.d.ts.map +1 -1
  51. package/dist/components/input/TextInput/types.js +1 -0
  52. package/dist/components/input/TextInput/types.js.map +1 -1
  53. package/dist/components/input/TokenAmountInput/TokenAmountInput.d.ts +2 -1
  54. package/dist/components/input/TokenAmountInput/TokenAmountInput.d.ts.map +1 -1
  55. package/dist/components/input/TokenAmountInput/TokenAmountInput.js +4 -2
  56. package/dist/components/input/TokenAmountInput/TokenAmountInput.js.map +1 -1
  57. package/dist/components/input/TokenAmountInput/types.d.ts +7 -1
  58. package/dist/components/input/TokenAmountInput/types.d.ts.map +1 -1
  59. package/dist/components/modal/Modal.js +1 -0
  60. package/dist/components/modal/Modal.js.map +1 -1
  61. package/dist/components/modal/ModalFooter.d.ts +1 -2
  62. package/dist/components/modal/ModalFooter.d.ts.map +1 -1
  63. package/dist/components/modal/ModalFooter.js +3 -4
  64. package/dist/components/modal/ModalFooter.js.map +1 -1
  65. package/dist/components/modal/ModalHeader.js +1 -0
  66. package/dist/components/modal/ModalHeader.js.map +1 -1
  67. package/dist/components/modal/types.d.ts +2 -1
  68. package/dist/components/modal/types.d.ts.map +1 -1
  69. package/dist/components/modal/types.js.map +1 -1
  70. package/dist/components/pill/Pill.d.ts +2 -2
  71. package/dist/components/pill/Pill.d.ts.map +1 -1
  72. package/dist/components/pill/Pill.js +4 -0
  73. package/dist/components/pill/Pill.js.map +1 -1
  74. package/dist/components/popup/Popup.d.ts.map +1 -1
  75. package/dist/components/popup/Popup.js +4 -2
  76. package/dist/components/popup/Popup.js.map +1 -1
  77. package/dist/components/popup-menu/PopupMenu.d.ts +1 -1
  78. package/dist/components/popup-menu/PopupMenu.js +3 -3
  79. package/dist/components/popup-menu/PopupMenu.js.map +1 -1
  80. package/dist/components/popup-menu/types.d.ts +1 -1
  81. package/dist/components/popup-menu/types.d.ts.map +1 -1
  82. package/dist/components/radio/Radio.d.ts +1 -0
  83. package/dist/components/radio/Radio.d.ts.map +1 -1
  84. package/dist/components/radio/Radio.js +4 -2
  85. package/dist/components/radio/Radio.js.map +1 -1
  86. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
  87. package/dist/components/segmented-control/SegmentedControl.js +21 -9
  88. package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
  89. package/dist/components/segmented-control/types.d.ts +2 -0
  90. package/dist/components/segmented-control/types.d.ts.map +1 -1
  91. package/dist/components/select/Select/Select.js +1 -0
  92. package/dist/components/select/Select/Select.js.map +1 -1
  93. package/dist/components/send-icon/SendIcon.js +1 -0
  94. package/dist/components/send-icon/SendIcon.js.map +1 -1
  95. package/dist/components/text/Text.d.ts.map +1 -1
  96. package/dist/components/text/Text.js +46 -5
  97. package/dist/components/text/Text.js.map +1 -1
  98. package/dist/components/text/types.d.ts +1 -0
  99. package/dist/components/text/types.d.ts.map +1 -1
  100. package/dist/foundations/color/color.d.ts +21 -0
  101. package/dist/foundations/color/color.d.ts.map +1 -1
  102. package/dist/foundations/color/primitive.d.ts +12 -0
  103. package/dist/foundations/color/primitive.d.ts.map +1 -1
  104. package/dist/foundations/color/primitive.js +12 -0
  105. package/dist/foundations/color/primitive.js.map +1 -1
  106. package/dist/foundations/color/semantic.d.ts +9 -0
  107. package/dist/foundations/color/semantic.d.ts.map +1 -1
  108. package/dist/foundations/color/semantic.js +5 -2
  109. package/dist/foundations/color/semantic.js.map +1 -1
  110. package/dist/harmony.css +1 -1
  111. package/dist/icons/SVGDefs.d.ts.map +1 -1
  112. package/dist/icons/SVGDefs.js +1 -1
  113. package/dist/icons/SVGDefs.js.map +1 -1
  114. package/dist/icons/utilityIcons.d.ts +2 -0
  115. package/dist/icons/utilityIcons.d.ts.map +1 -1
  116. package/dist/icons/utilityIcons.js +5 -1
  117. package/dist/icons/utilityIcons.js.map +1 -1
  118. package/dist/index.js +2 -1
  119. package/dist/index.js.map +1 -1
  120. package/dist/utils/createImageIcon.js +1 -0
  121. package/dist/utils/createImageIcon.js.map +1 -1
  122. package/dist/utils/formatCount.d.ts +1 -1
  123. package/dist/utils/formatCount.d.ts.map +1 -1
  124. package/dist/utils/formatCount.js +3 -2
  125. package/dist/utils/formatCount.js.map +1 -1
  126. package/package.json +1 -1
  127. package/dist/components/modal/ModalFooter.module.css.js +0 -4
  128. package/dist/components/modal/ModalFooter.module.css.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TextInput.d.ts","sourceRoot":"","sources":["../../../../src/components/input/TextInput/TextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAA;AAYpD,OAAO,EAAE,aAAa,EAAuB,MAAM,SAAS,CAAA;AAE5D;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;qJAwOrB,CAAA"}
1
+ {"version":3,"file":"TextInput.d.ts","sourceRoot":"","sources":["../../../../src/components/input/TextInput/TextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAA;AAYpD,OAAO,EAAE,aAAa,EAAuB,MAAM,SAAS,CAAA;AAE5D;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;qJAsPrB,CAAA"}
@@ -23,6 +23,7 @@ import '../../button/IconButton/IconButton.js';
23
23
  import '../../button/UnstyledButton.js';
24
24
  import '../../button/FilterButton/FilterButton.js';
25
25
  import '../../button/FilterButton/FilterButtonOption.js';
26
+ import '../../button/BaseButton/BaseButton.js';
26
27
  import '@react-spring/web';
27
28
  import '../../text-link/TextLink.js';
28
29
  import '../../switch/Switch.js';
@@ -81,15 +82,19 @@ var TextInput = forwardRef(function (props, ref) {
81
82
  var id = idProp !== null && idProp !== void 0 ? idProp : backupId;
82
83
  var characterCount = value !== undefined ? "".concat(value).length : 0;
83
84
  var hasValue = characterCount > 0;
84
- // Hide the label when requested or when the size is set to small
85
- var shouldShowLabel = !hideLabel && size !== TextInputSize.SMALL;
85
+ // Hide the label when requested or when the size is set to small or extra small
86
+ var shouldShowLabel = !hideLabel &&
87
+ size !== TextInputSize.SMALL &&
88
+ size !== TextInputSize.EXTRA_SMALL;
86
89
  var labelText = required ? "".concat(labelProp, " *") : labelProp;
87
90
  var placeholderText = required && hideLabel
88
91
  ? "".concat(placeholder, " *")
89
- : size === TextInputSize.SMALL
92
+ : size === TextInputSize.SMALL || size === TextInputSize.EXTRA_SMALL
90
93
  ? labelText
91
94
  : placeholder;
92
- var helperTextSize = size === TextInputSize.SMALL ? 'xs' : 's';
95
+ var helperTextSize = size === TextInputSize.SMALL || size === TextInputSize.EXTRA_SMALL
96
+ ? 'xs'
97
+ : 's';
93
98
  // Whenever a label isn't visible the placeholder should be visible in it's place (if provided)
94
99
  var shouldShowPlaceholder = (isFocused || !shouldShowLabel) && !hidePlaceholder;
95
100
  var shouldShowAdornments = isFocused || hasValue || !shouldShowLabel;
@@ -110,6 +115,7 @@ var TextInput = forwardRef(function (props, ref) {
110
115
  var inputRootStyle = (_a = {},
111
116
  _a[styles.default] = size === TextInputSize.DEFAULT,
112
117
  _a[styles.small] = size === TextInputSize.SMALL,
118
+ _a[styles.extraSmall] = size === TextInputSize.EXTRA_SMALL,
113
119
  _a[styles.warning] = warningProp,
114
120
  _a[styles.error] = error,
115
121
  _a[styles.focused] = isFocused || _isFocused,
@@ -123,12 +129,17 @@ var TextInput = forwardRef(function (props, ref) {
123
129
  var inputElStyle = (_b = {},
124
130
  _b[styles.default] = size === TextInputSize.DEFAULT,
125
131
  _b[styles.small] = size === TextInputSize.SMALL,
132
+ _b[styles.extraSmall] = size === TextInputSize.EXTRA_SMALL,
126
133
  _b[styles.disabled] = disabled,
127
134
  _b[styles.focused] = isFocused,
128
135
  _b);
129
136
  var inputElement = (jsxs(Flex, __assign({ alignItems: 'center', justifyContent: 'space-between' }, { children: [startAdornmentText && shouldShowAdornments ? (jsx(Text, __assign({ variant: 'label', size: 'l', color: 'subdued' }, { children: startAdornmentText }))) : null, jsx("input", __assign({ onFocus: handleFocus, onBlur: handleBlur, ref: ref, className: cn(styles.input, inputClassName, inputElStyle), value: value, maxLength: maxLength, disabled: disabled, placeholder: shouldShowPlaceholder ? placeholderText : undefined, "aria-label": (ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : shouldShowLabel) ? labelText : undefined, "aria-required": required, id: id, autoComplete: 'off' }, other)), endAdornmentText && shouldShowAdornments ? (jsx(Text, __assign({ variant: 'label', size: 'l', color: 'subdued' }, { children: endAdornmentText }))) : null] })));
130
137
  var isLabelElevated = hasValue || isFocused || elevateLabel;
131
- return (jsxs(Flex, __assign({ className: cn(styles.root, className), direction: 'column', gap: 'xs', alignItems: 'flex-start', w: '100%' }, { children: [jsxs("label", __assign({ htmlFor: id, className: cn(styles.contentContainer, inputRootClassName, inputRootStyle) }, { children: [StartIcon ? (jsx(StartIcon, __assign({ size: size === TextInputSize.SMALL ? 'l' : undefined, color: 'subdued' }, IconProps))) : null, jsxs(Flex, __assign({ direction: 'column', gap: 'xs', justifyContent: 'center', w: '100%' }, { children: [shouldShowLabel ? (jsxs(Flex, __assign({ className: styles.labelRow, direction: 'row', alignItems: 'center', justifyContent: 'space-between', gap: 's' }, { children: [jsx(Text, __assign({ variant: 'body', tag: 'span', size: isLabelElevated ? 's' : 'l', color: 'subdued', css: function (theme) { return ({
138
+ return (jsxs(Flex, __assign({ className: cn(styles.root, className), direction: 'column', gap: 'xs', alignItems: 'flex-start', w: '100%' }, { children: [jsxs("label", __assign({ htmlFor: id, className: cn(styles.contentContainer, inputRootClassName, inputRootStyle) }, { children: [StartIcon ? (jsx(StartIcon, __assign({ size: size === TextInputSize.EXTRA_SMALL
139
+ ? 's'
140
+ : size === TextInputSize.SMALL
141
+ ? 'l'
142
+ : undefined, color: 'subdued' }, IconProps))) : null, jsxs(Flex, __assign({ direction: 'column', gap: 'xs', justifyContent: 'center', w: '100%' }, { children: [shouldShowLabel ? (jsxs(Flex, __assign({ className: styles.labelRow, direction: 'row', alignItems: 'center', justifyContent: 'space-between', gap: 's' }, { children: [jsx(Text, __assign({ variant: 'body', tag: 'span', size: isLabelElevated ? 's' : 'l', color: 'subdued', css: function (theme) { return ({
132
143
  whiteSpace: 'nowrap',
133
144
  overflow: 'hidden',
134
145
  textOverflow: 'ellipsis',
@@ -1 +1 @@
1
- {"version":3,"file":"TextInput.js","sources":["../../../../src/components/input/TextInput/TextInput.tsx"],"sourcesContent":["import { ReactNode, forwardRef, useId } from 'react'\n\nimport cn from 'classnames'\n\nimport { Text, TextSize } from '~harmony/components/text'\nimport type { TextColors } from '~harmony/foundations/color/semantic'\nimport { IconCloseAlt } from '~harmony/icons'\n\nimport { Flex } from '../../layout'\nimport { useFocusState } from '../useFocusState'\n\nimport styles from './TextInput.module.css'\nimport { TextInputSize, type TextInputProps } from './types'\n\n/**\n * An input is a field where users can enter and edit text and enables the user to provide input in the form of plain text.\n */\nexport const TextInput = forwardRef<HTMLInputElement, TextInputProps>(\n (props, ref) => {\n const {\n 'aria-label': ariaLabel,\n required,\n className,\n inputRootClassName,\n maxLength,\n showMaxLengthThreshold = 0.7,\n maxLengthWarningThreshold = 0.9,\n size = TextInputSize.DEFAULT,\n hideLabel,\n hidePlaceholder,\n label: labelProp,\n value,\n id: idProp,\n warning: warningProp,\n error,\n className: inputClassName,\n disabled,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n placeholder,\n helperText,\n startAdornmentText,\n endAdornmentText,\n startIcon: StartIcon,\n endIcon: EndIcon,\n IconProps,\n endAdornment: endAdornmentProp,\n elevateLabel,\n onClear,\n _incorrectError,\n _isHovered,\n _isFocused,\n _disablePointerEvents,\n ...other\n } = props\n\n let endAdornment: null | ReactNode\n if (EndIcon != null) {\n endAdornment = <EndIcon size='l' color='subdued' {...IconProps} />\n } else if (endAdornmentProp != null) {\n endAdornment = endAdornmentProp\n } else {\n endAdornment = null\n }\n\n /**\n * Since Firefox doesn't support the :has() pseudo selector,\n * manually track the focused state and use classes for focus, required, and disabled\n */\n const [isFocusedState, handleFocus, handleBlur] = useFocusState(\n onFocusProp,\n onBlurProp\n )\n\n const isFocused = _isFocused ?? isFocusedState\n\n // For focus behavior and accessiblity, <label> needs to have a htmlFor={} provided to an id matching the input\n const backupId = useId()\n const id = idProp ?? backupId\n\n const characterCount = value !== undefined ? `${value}`.length : 0\n const hasValue = characterCount > 0\n\n // Hide the label when requested or when the size is set to small\n const shouldShowLabel = !hideLabel && size !== TextInputSize.SMALL\n const labelText = required ? `${labelProp} *` : labelProp\n const placeholderText =\n required && hideLabel\n ? `${placeholder} *`\n : size === TextInputSize.SMALL\n ? labelText\n : placeholder\n const helperTextSize: TextSize = size === TextInputSize.SMALL ? 'xs' : 's'\n\n // Whenever a label isn't visible the placeholder should be visible in it's place (if provided)\n const shouldShowPlaceholder =\n (isFocused || !shouldShowLabel) && !hidePlaceholder\n const shouldShowAdornments = isFocused || hasValue || !shouldShowLabel\n // Show the maxlength text whenever we hit a certain threshold (default 70%) + the input is focused\n const shouldShowMaxLengthText =\n isFocused &&\n maxLength &&\n characterCount >= showMaxLengthThreshold * maxLength\n // Turn the maxlength text to the warning color whenever we hit a certain threshold (default 90%)\n let maxLengthTextColor: TextColors = 'default'\n if (maxLength && characterCount > maxLength) {\n maxLengthTextColor = 'danger'\n } else if (\n maxLength &&\n characterCount >= maxLengthWarningThreshold * maxLength\n ) {\n maxLengthTextColor = 'warning'\n }\n\n // Styles for the root of the input\n const inputRootStyle = {\n [styles.default]: size === TextInputSize.DEFAULT,\n [styles.small]: size === TextInputSize.SMALL,\n [styles.warning]: warningProp,\n [styles.error]: error,\n [styles.focused]: isFocused || _isFocused,\n [styles.disabled]: disabled,\n [styles.required]: required,\n [styles.hover]: _isHovered,\n [styles.incorrectError]: _incorrectError,\n [styles.disablePointerEvents]: _disablePointerEvents\n }\n\n // Styles for the input element itself\n const inputElStyle = {\n [styles.default]: size === TextInputSize.DEFAULT,\n [styles.small]: size === TextInputSize.SMALL,\n [styles.disabled]: disabled,\n [styles.focused]: isFocused\n }\n\n const inputElement = (\n <Flex alignItems='center' justifyContent='space-between'>\n {startAdornmentText && shouldShowAdornments ? (\n <Text variant='label' size='l' color='subdued'>\n {startAdornmentText}\n </Text>\n ) : null}\n <input\n onFocus={handleFocus}\n onBlur={handleBlur}\n ref={ref}\n className={cn(styles.input, inputClassName, inputElStyle)}\n value={value}\n maxLength={maxLength}\n disabled={disabled}\n placeholder={shouldShowPlaceholder ? placeholderText : undefined}\n aria-label={(ariaLabel ?? shouldShowLabel) ? labelText : undefined}\n aria-required={required}\n id={id}\n autoComplete='off'\n {...other}\n />\n {endAdornmentText && shouldShowAdornments ? (\n <Text variant='label' size='l' color='subdued'>\n {endAdornmentText}\n </Text>\n ) : null}\n </Flex>\n )\n\n const isLabelElevated = hasValue || isFocused || elevateLabel\n\n return (\n <Flex\n className={cn(styles.root, className)}\n direction='column'\n gap='xs'\n alignItems='flex-start'\n w='100%'\n >\n <label\n htmlFor={id}\n className={cn(\n styles.contentContainer,\n inputRootClassName,\n inputRootStyle\n )}\n >\n {StartIcon ? (\n <StartIcon\n size={size === TextInputSize.SMALL ? 'l' : undefined}\n color='subdued'\n {...IconProps}\n />\n ) : null}\n <Flex direction='column' gap='xs' justifyContent='center' w='100%'>\n {shouldShowLabel ? (\n <Flex\n className={styles.labelRow}\n direction='row'\n alignItems='center'\n justifyContent='space-between'\n gap='s'\n >\n <Text\n variant='body'\n tag='span'\n size={isLabelElevated ? 's' : 'l'}\n color='subdued'\n css={(theme) => ({\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n zIndex: 2,\n transition: `all ${theme.motion.expressive}`,\n transform: isLabelElevated\n ? 'translate(0, 0)'\n : 'translate(0px, 13px)'\n })}\n >\n {labelText}\n </Text>\n {shouldShowMaxLengthText ? (\n <Text\n variant='body'\n size='xs'\n tag='span'\n color={maxLengthTextColor}\n >\n {characterCount}/{maxLength}\n </Text>\n ) : null}\n </Flex>\n ) : null}\n {inputElement}\n </Flex>\n {onClear && value ? (\n <IconCloseAlt onClick={onClear} color='subdued' />\n ) : null}\n {endAdornment}\n </label>\n {helperText ? (\n <Text\n variant='body'\n size={helperTextSize}\n color={error ? 'danger' : _incorrectError ? 'warning' : 'default'}\n >\n {helperText}\n </Text>\n ) : null}\n </Flex>\n )\n }\n)\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA;;AAEG;IACU,SAAS,GAAG,UAAU,CACjC,UAAC,KAAK,EAAE,GAAG,EAAA;;AAEP,IAAA,IAAc,SAAS,GAkCrB,KAAK,cAlCgB,EACvB,QAAQ,GAiCN,KAAK,CAAA,QAjCC,EACR,SAAS,GAgCP,KAAK,CAhCE,SAAA,EACT,kBAAkB,GA+BhB,KAAK,mBA/BW,EAClB,SAAS,GA8BP,KAAK,CAAA,SA9BE,EACT,EA6BE,GAAA,KAAK,uBA7BqB,EAA5B,sBAAsB,mBAAG,GAAG,GAAA,EAAA,EAC5B,EA4BE,GAAA,KAAK,0BA5BwB,EAA/B,yBAAyB,mBAAG,GAAG,GAAA,EAAA,EAC/B,EA2BE,GAAA,KAAK,CA3BqB,IAAA,EAA5B,IAAI,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,aAAa,CAAC,OAAO,GAAA,EAAA,EAC5B,SAAS,GA0BP,KAAK,CA1BE,SAAA,EACT,eAAe,GAyBb,KAAK,gBAzBQ,EACR,SAAS,GAwBd,KAAK,CAAA,KAxBS,EAChB,KAAK,GAuBH,KAAK,CAvBF,KAAA,EACD,MAAM,GAsBR,KAAK,GAtBG,EACD,WAAW,GAqBlB,KAAK,CAAA,OArBa,EACpB,KAAK,GAoBH,KAAK,CApBF,KAAA,EACM,cAAc,GAmBvB,KAAK,CAnBkB,SAAA,EACzB,QAAQ,GAkBN,KAAK,SAlBC,EACC,WAAW,GAiBlB,KAAK,CAAA,OAjBa,EACZ,UAAU,GAgBhB,KAAK,CAhBW,MAAA,EAClB,WAAW,GAeT,KAAK,YAfI,EACX,UAAU,GAcR,KAAK,CAAA,UAdG,EACV,kBAAkB,GAahB,KAAK,CAbW,kBAAA,EAClB,gBAAgB,GAYd,KAAK,iBAZS,EACL,SAAS,GAWlB,KAAK,CAAA,SAXa,EACX,OAAO,GAUd,KAAK,CAVS,OAAA,EAChB,SAAS,GASP,KAAK,UATE,EACK,gBAAgB,GAQ5B,KAAK,CAAA,YARuB,EAC9B,YAAY,GAOV,KAAK,CAPK,YAAA,EACZ,OAAO,GAML,KAAK,QANA,EACP,eAAe,GAKb,KAAK,CAAA,eALQ,EACf,UAAU,GAIR,KAAK,CAJG,UAAA,EACV,UAAU,GAGR,KAAK,WAHG,EACV,qBAAqB,GAEnB,KAAK,CAAA,qBAFc,EAClB,KAAK,GAAA,MAAA,CACN,KAAK,EAnCH,CAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,wBAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,IAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,CAmCL,CADS,CACD;AAET,IAAA,IAAI,YAA8B,CAAA;IAClC,IAAI,OAAO,IAAI,IAAI,EAAE;AACnB,QAAA,YAAY,GAAGA,GAAA,CAAC,OAAO,EAAA,QAAA,CAAA,EAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,SAAS,EAAK,EAAA,SAAS,EAAI,CAAA;AACnE,KAAA;SAAM,IAAI,gBAAgB,IAAI,IAAI,EAAE;QACnC,YAAY,GAAG,gBAAgB,CAAA;AAChC,KAAA;AAAM,SAAA;QACL,YAAY,GAAG,IAAI,CAAA;AACpB,KAAA;AAED;;;AAGG;AACG,IAAA,IAAA,KAA4C,aAAa,CAC7D,WAAW,EACX,UAAU,CACX,EAHM,cAAc,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,WAAW,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,QAG7C,CAAA;IAED,IAAM,SAAS,GAAG,UAAU,KAAA,IAAA,IAAV,UAAU,KAAV,KAAA,CAAA,GAAA,UAAU,GAAI,cAAc,CAAA;;AAG9C,IAAA,IAAM,QAAQ,GAAG,KAAK,EAAE,CAAA;IACxB,IAAM,EAAE,GAAG,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,MAAM,GAAI,QAAQ,CAAA;AAE7B,IAAA,IAAM,cAAc,GAAG,KAAK,KAAK,SAAS,GAAG,EAAG,CAAA,MAAA,CAAA,KAAK,CAAE,CAAC,MAAM,GAAG,CAAC,CAAA;AAClE,IAAA,IAAM,QAAQ,GAAG,cAAc,GAAG,CAAC,CAAA;;IAGnC,IAAM,eAAe,GAAG,CAAC,SAAS,IAAI,IAAI,KAAK,aAAa,CAAC,KAAK,CAAA;AAClE,IAAA,IAAM,SAAS,GAAG,QAAQ,GAAG,EAAG,CAAA,MAAA,CAAA,SAAS,EAAI,IAAA,CAAA,GAAG,SAAS,CAAA;AACzD,IAAA,IAAM,eAAe,GACnB,QAAQ,IAAI,SAAS;UACjB,EAAG,CAAA,MAAA,CAAA,WAAW,EAAI,IAAA,CAAA;AACpB,UAAE,IAAI,KAAK,aAAa,CAAC,KAAK;AAC5B,cAAE,SAAS;cACT,WAAW,CAAA;AACnB,IAAA,IAAM,cAAc,GAAa,IAAI,KAAK,aAAa,CAAC,KAAK,GAAG,IAAI,GAAG,GAAG,CAAA;;IAG1E,IAAM,qBAAqB,GACzB,CAAC,SAAS,IAAI,CAAC,eAAe,KAAK,CAAC,eAAe,CAAA;IACrD,IAAM,oBAAoB,GAAG,SAAS,IAAI,QAAQ,IAAI,CAAC,eAAe,CAAA;;IAEtE,IAAM,uBAAuB,GAC3B,SAAS;QACT,SAAS;AACT,QAAA,cAAc,IAAI,sBAAsB,GAAG,SAAS,CAAA;;IAEtD,IAAI,kBAAkB,GAAe,SAAS,CAAA;AAC9C,IAAA,IAAI,SAAS,IAAI,cAAc,GAAG,SAAS,EAAE;QAC3C,kBAAkB,GAAG,QAAQ,CAAA;AAC9B,KAAA;AAAM,SAAA,IACL,SAAS;AACT,QAAA,cAAc,IAAI,yBAAyB,GAAG,SAAS,EACvD;QACA,kBAAkB,GAAG,SAAS,CAAA;AAC/B,KAAA;;AAGD,IAAA,IAAM,cAAc,IAAA,EAAA,GAAA,EAAA;QAClB,EAAC,CAAA,MAAM,CAAC,OAAO,CAAA,GAAG,IAAI,KAAK,aAAa,CAAC,OAAO;QAChD,EAAC,CAAA,MAAM,CAAC,KAAK,CAAA,GAAG,IAAI,KAAK,aAAa,CAAC,KAAK;AAC5C,QAAA,EAAA,CAAC,MAAM,CAAC,OAAO,CAAA,GAAG,WAAW;AAC7B,QAAA,EAAA,CAAC,MAAM,CAAC,KAAK,CAAA,GAAG,KAAK;AACrB,QAAA,EAAA,CAAC,MAAM,CAAC,OAAO,CAAG,GAAA,SAAS,IAAI,UAAU;AACzC,QAAA,EAAA,CAAC,MAAM,CAAC,QAAQ,CAAA,GAAG,QAAQ;AAC3B,QAAA,EAAA,CAAC,MAAM,CAAC,QAAQ,CAAA,GAAG,QAAQ;AAC3B,QAAA,EAAA,CAAC,MAAM,CAAC,KAAK,CAAA,GAAG,UAAU;AAC1B,QAAA,EAAA,CAAC,MAAM,CAAC,cAAc,CAAA,GAAG,eAAe;AACxC,QAAA,EAAA,CAAC,MAAM,CAAC,oBAAoB,CAAA,GAAG,qBAAqB;WACrD,CAAA;;AAGD,IAAA,IAAM,YAAY,IAAA,EAAA,GAAA,EAAA;QAChB,EAAC,CAAA,MAAM,CAAC,OAAO,CAAA,GAAG,IAAI,KAAK,aAAa,CAAC,OAAO;QAChD,EAAC,CAAA,MAAM,CAAC,KAAK,CAAA,GAAG,IAAI,KAAK,aAAa,CAAC,KAAK;AAC5C,QAAA,EAAA,CAAC,MAAM,CAAC,QAAQ,CAAA,GAAG,QAAQ;AAC3B,QAAA,EAAA,CAAC,MAAM,CAAC,OAAO,CAAA,GAAG,SAAS;WAC5B,CAAA;AAED,IAAA,IAAM,YAAY,IAChBC,IAAC,CAAA,IAAI,aAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,eAAe,EACrD,EAAA,EAAA,QAAA,EAAA,CAAA,kBAAkB,IAAI,oBAAoB,IACzCD,GAAC,CAAA,IAAI,EAAC,QAAA,CAAA,EAAA,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,SAAS,gBAC3C,kBAAkB,EAAA,CAAA,CACd,IACL,IAAI,EACRA,GAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EACE,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,CAAC,EACzD,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,qBAAqB,GAAG,eAAe,GAAG,SAAS,EACpD,YAAA,EAAA,CAAC,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,SAAS,GAAI,eAAe,IAAI,SAAS,GAAG,SAAS,EACnD,eAAA,EAAA,QAAQ,EACvB,EAAE,EAAE,EAAE,EACN,YAAY,EAAC,KAAK,EACd,EAAA,KAAK,CACT,CAAA,EACD,gBAAgB,IAAI,oBAAoB,IACvCA,GAAA,CAAC,IAAI,EAAA,QAAA,CAAA,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,SAAS,EAC3C,EAAA,EAAA,QAAA,EAAA,gBAAgB,EACZ,CAAA,CAAA,IACL,IAAI,CAAA,EAAA,CAAA,CACH,CACR,CAAA;AAED,IAAA,IAAM,eAAe,GAAG,QAAQ,IAAI,SAAS,IAAI,YAAY,CAAA;AAE7D,IAAA,QACEC,IAAC,CAAA,IAAI,EACH,QAAA,CAAA,EAAA,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EACrC,SAAS,EAAC,QAAQ,EAClB,GAAG,EAAC,IAAI,EACR,UAAU,EAAC,YAAY,EACvB,CAAC,EAAC,MAAM,EAAA,EAAA,EAAA,QAAA,EAAA,CAERA,yBACE,OAAO,EAAE,EAAE,EACX,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,gBAAgB,EACvB,kBAAkB,EAClB,cAAc,CACf,EAEA,EAAA,EAAA,QAAA,EAAA,CAAA,SAAS,IACRD,GAAA,CAAC,SAAS,EACR,QAAA,CAAA,EAAA,IAAI,EAAE,IAAI,KAAK,aAAa,CAAC,KAAK,GAAG,GAAG,GAAG,SAAS,EACpD,KAAK,EAAC,SAAS,EAAA,EACX,SAAS,CACb,CAAA,IACA,IAAI,EACRC,KAAC,IAAI,EAAA,QAAA,CAAA,EAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,cAAc,EAAC,QAAQ,EAAC,CAAC,EAAC,MAAM,EAAA,EAAA,EAAA,QAAA,EAAA,CAC/D,eAAe,IACdA,KAAC,IAAI,EAAA,QAAA,CAAA,EACH,SAAS,EAAE,MAAM,CAAC,QAAQ,EAC1B,SAAS,EAAC,KAAK,EACf,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,eAAe,EAC9B,GAAG,EAAC,GAAG,iBAEPD,GAAC,CAAA,IAAI,EACH,QAAA,CAAA,EAAA,OAAO,EAAC,MAAM,EACd,GAAG,EAAC,MAAM,EACV,IAAI,EAAE,eAAe,GAAG,GAAG,GAAG,GAAG,EACjC,KAAK,EAAC,SAAS,EACf,GAAG,EAAE,UAAC,KAAK,EAAA,EAAK,QAAC;AACf,4CAAA,UAAU,EAAE,QAAQ;AACpB,4CAAA,QAAQ,EAAE,QAAQ;AAClB,4CAAA,YAAY,EAAE,UAAU;AACxB,4CAAA,MAAM,EAAE,CAAC;AACT,4CAAA,UAAU,EAAE,MAAO,CAAA,MAAA,CAAA,KAAK,CAAC,MAAM,CAAC,UAAU,CAAE;AAC5C,4CAAA,SAAS,EAAE,eAAe;AACxB,kDAAE,iBAAiB;AACnB,kDAAE,sBAAsB;yCAC3B,EAAC,EAAA,EAAA,EAAA,EAAA,QAAA,EAED,SAAS,EAAA,CAAA,CACL,EACN,uBAAuB,IACtBC,IAAC,CAAA,IAAI,EACH,QAAA,CAAA,EAAA,OAAO,EAAC,MAAM,EACd,IAAI,EAAC,IAAI,EACT,GAAG,EAAC,MAAM,EACV,KAAK,EAAE,kBAAkB,iBAExB,cAAc,EAAA,GAAA,EAAG,SAAS,CAAA,EAAA,CAAA,CACtB,IACL,IAAI,CAAA,EAAA,CAAA,CACH,IACL,IAAI,EACP,YAAY,CAAA,EAAA,CAAA,CACR,EACN,OAAO,IAAI,KAAK,IACfD,GAAC,CAAA,YAAY,EAAC,EAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAC,SAAS,EAAA,CAAG,IAChD,IAAI,EACP,YAAY,CAAA,EAAA,CAAA,CACP,EACP,UAAU,IACTA,GAAC,CAAA,IAAI,EACH,QAAA,CAAA,EAAA,OAAO,EAAC,MAAM,EACd,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,eAAe,GAAG,SAAS,GAAG,SAAS,EAEhE,EAAA,EAAA,QAAA,EAAA,UAAU,EACN,CAAA,CAAA,IACL,IAAI,CACH,EAAA,CAAA,CAAA,EACR;AACH,CAAC;;;;"}
1
+ {"version":3,"file":"TextInput.js","sources":["../../../../src/components/input/TextInput/TextInput.tsx"],"sourcesContent":["import { ReactNode, forwardRef, useId } from 'react'\n\nimport cn from 'classnames'\n\nimport { Text, TextSize } from '~harmony/components/text'\nimport type { TextColors } from '~harmony/foundations/color/semantic'\nimport { IconCloseAlt } from '~harmony/icons'\n\nimport { Flex } from '../../layout'\nimport { useFocusState } from '../useFocusState'\n\nimport styles from './TextInput.module.css'\nimport { TextInputSize, type TextInputProps } from './types'\n\n/**\n * An input is a field where users can enter and edit text and enables the user to provide input in the form of plain text.\n */\nexport const TextInput = forwardRef<HTMLInputElement, TextInputProps>(\n (props, ref) => {\n const {\n 'aria-label': ariaLabel,\n required,\n className,\n inputRootClassName,\n maxLength,\n showMaxLengthThreshold = 0.7,\n maxLengthWarningThreshold = 0.9,\n size = TextInputSize.DEFAULT,\n hideLabel,\n hidePlaceholder,\n label: labelProp,\n value,\n id: idProp,\n warning: warningProp,\n error,\n className: inputClassName,\n disabled,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n placeholder,\n helperText,\n startAdornmentText,\n endAdornmentText,\n startIcon: StartIcon,\n endIcon: EndIcon,\n IconProps,\n endAdornment: endAdornmentProp,\n elevateLabel,\n onClear,\n _incorrectError,\n _isHovered,\n _isFocused,\n _disablePointerEvents,\n ...other\n } = props\n\n let endAdornment: null | ReactNode\n if (EndIcon != null) {\n endAdornment = <EndIcon size='l' color='subdued' {...IconProps} />\n } else if (endAdornmentProp != null) {\n endAdornment = endAdornmentProp\n } else {\n endAdornment = null\n }\n\n /**\n * Since Firefox doesn't support the :has() pseudo selector,\n * manually track the focused state and use classes for focus, required, and disabled\n */\n const [isFocusedState, handleFocus, handleBlur] = useFocusState(\n onFocusProp,\n onBlurProp\n )\n\n const isFocused = _isFocused ?? isFocusedState\n\n // For focus behavior and accessiblity, <label> needs to have a htmlFor={} provided to an id matching the input\n const backupId = useId()\n const id = idProp ?? backupId\n\n const characterCount = value !== undefined ? `${value}`.length : 0\n const hasValue = characterCount > 0\n\n // Hide the label when requested or when the size is set to small or extra small\n const shouldShowLabel =\n !hideLabel &&\n size !== TextInputSize.SMALL &&\n size !== TextInputSize.EXTRA_SMALL\n const labelText = required ? `${labelProp} *` : labelProp\n const placeholderText =\n required && hideLabel\n ? `${placeholder} *`\n : size === TextInputSize.SMALL || size === TextInputSize.EXTRA_SMALL\n ? labelText\n : placeholder\n const helperTextSize: TextSize =\n size === TextInputSize.SMALL || size === TextInputSize.EXTRA_SMALL\n ? 'xs'\n : 's'\n\n // Whenever a label isn't visible the placeholder should be visible in it's place (if provided)\n const shouldShowPlaceholder =\n (isFocused || !shouldShowLabel) && !hidePlaceholder\n const shouldShowAdornments = isFocused || hasValue || !shouldShowLabel\n // Show the maxlength text whenever we hit a certain threshold (default 70%) + the input is focused\n const shouldShowMaxLengthText =\n isFocused &&\n maxLength &&\n characterCount >= showMaxLengthThreshold * maxLength\n // Turn the maxlength text to the warning color whenever we hit a certain threshold (default 90%)\n let maxLengthTextColor: TextColors = 'default'\n if (maxLength && characterCount > maxLength) {\n maxLengthTextColor = 'danger'\n } else if (\n maxLength &&\n characterCount >= maxLengthWarningThreshold * maxLength\n ) {\n maxLengthTextColor = 'warning'\n }\n\n // Styles for the root of the input\n const inputRootStyle = {\n [styles.default]: size === TextInputSize.DEFAULT,\n [styles.small]: size === TextInputSize.SMALL,\n [styles.extraSmall]: size === TextInputSize.EXTRA_SMALL,\n [styles.warning]: warningProp,\n [styles.error]: error,\n [styles.focused]: isFocused || _isFocused,\n [styles.disabled]: disabled,\n [styles.required]: required,\n [styles.hover]: _isHovered,\n [styles.incorrectError]: _incorrectError,\n [styles.disablePointerEvents]: _disablePointerEvents\n }\n\n // Styles for the input element itself\n const inputElStyle = {\n [styles.default]: size === TextInputSize.DEFAULT,\n [styles.small]: size === TextInputSize.SMALL,\n [styles.extraSmall]: size === TextInputSize.EXTRA_SMALL,\n [styles.disabled]: disabled,\n [styles.focused]: isFocused\n }\n\n const inputElement = (\n <Flex alignItems='center' justifyContent='space-between'>\n {startAdornmentText && shouldShowAdornments ? (\n <Text variant='label' size='l' color='subdued'>\n {startAdornmentText}\n </Text>\n ) : null}\n <input\n onFocus={handleFocus}\n onBlur={handleBlur}\n ref={ref}\n className={cn(styles.input, inputClassName, inputElStyle)}\n value={value}\n maxLength={maxLength}\n disabled={disabled}\n placeholder={shouldShowPlaceholder ? placeholderText : undefined}\n aria-label={(ariaLabel ?? shouldShowLabel) ? labelText : undefined}\n aria-required={required}\n id={id}\n autoComplete='off'\n {...other}\n />\n {endAdornmentText && shouldShowAdornments ? (\n <Text variant='label' size='l' color='subdued'>\n {endAdornmentText}\n </Text>\n ) : null}\n </Flex>\n )\n\n const isLabelElevated = hasValue || isFocused || elevateLabel\n\n return (\n <Flex\n className={cn(styles.root, className)}\n direction='column'\n gap='xs'\n alignItems='flex-start'\n w='100%'\n >\n <label\n htmlFor={id}\n className={cn(\n styles.contentContainer,\n inputRootClassName,\n inputRootStyle\n )}\n >\n {StartIcon ? (\n <StartIcon\n size={\n size === TextInputSize.EXTRA_SMALL\n ? 's'\n : size === TextInputSize.SMALL\n ? 'l'\n : undefined\n }\n color='subdued'\n {...IconProps}\n />\n ) : null}\n <Flex direction='column' gap='xs' justifyContent='center' w='100%'>\n {shouldShowLabel ? (\n <Flex\n className={styles.labelRow}\n direction='row'\n alignItems='center'\n justifyContent='space-between'\n gap='s'\n >\n <Text\n variant='body'\n tag='span'\n size={isLabelElevated ? 's' : 'l'}\n color='subdued'\n css={(theme) => ({\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n zIndex: 2,\n transition: `all ${theme.motion.expressive}`,\n transform: isLabelElevated\n ? 'translate(0, 0)'\n : 'translate(0px, 13px)'\n })}\n >\n {labelText}\n </Text>\n {shouldShowMaxLengthText ? (\n <Text\n variant='body'\n size='xs'\n tag='span'\n color={maxLengthTextColor}\n >\n {characterCount}/{maxLength}\n </Text>\n ) : null}\n </Flex>\n ) : null}\n {inputElement}\n </Flex>\n {onClear && value ? (\n <IconCloseAlt onClick={onClear} color='subdued' />\n ) : null}\n {endAdornment}\n </label>\n {helperText ? (\n <Text\n variant='body'\n size={helperTextSize}\n color={error ? 'danger' : _incorrectError ? 'warning' : 'default'}\n >\n {helperText}\n </Text>\n ) : null}\n </Flex>\n )\n }\n)\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA;;AAEG;IACU,SAAS,GAAG,UAAU,CACjC,UAAC,KAAK,EAAE,GAAG,EAAA;;AAEP,IAAA,IAAc,SAAS,GAkCrB,KAAK,cAlCgB,EACvB,QAAQ,GAiCN,KAAK,CAAA,QAjCC,EACR,SAAS,GAgCP,KAAK,CAhCE,SAAA,EACT,kBAAkB,GA+BhB,KAAK,mBA/BW,EAClB,SAAS,GA8BP,KAAK,CAAA,SA9BE,EACT,EA6BE,GAAA,KAAK,uBA7BqB,EAA5B,sBAAsB,mBAAG,GAAG,GAAA,EAAA,EAC5B,EA4BE,GAAA,KAAK,0BA5BwB,EAA/B,yBAAyB,mBAAG,GAAG,GAAA,EAAA,EAC/B,EA2BE,GAAA,KAAK,CA3BqB,IAAA,EAA5B,IAAI,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,aAAa,CAAC,OAAO,GAAA,EAAA,EAC5B,SAAS,GA0BP,KAAK,CA1BE,SAAA,EACT,eAAe,GAyBb,KAAK,gBAzBQ,EACR,SAAS,GAwBd,KAAK,CAAA,KAxBS,EAChB,KAAK,GAuBH,KAAK,CAvBF,KAAA,EACD,MAAM,GAsBR,KAAK,GAtBG,EACD,WAAW,GAqBlB,KAAK,CAAA,OArBa,EACpB,KAAK,GAoBH,KAAK,CApBF,KAAA,EACM,cAAc,GAmBvB,KAAK,CAnBkB,SAAA,EACzB,QAAQ,GAkBN,KAAK,SAlBC,EACC,WAAW,GAiBlB,KAAK,CAAA,OAjBa,EACZ,UAAU,GAgBhB,KAAK,CAhBW,MAAA,EAClB,WAAW,GAeT,KAAK,YAfI,EACX,UAAU,GAcR,KAAK,CAAA,UAdG,EACV,kBAAkB,GAahB,KAAK,CAbW,kBAAA,EAClB,gBAAgB,GAYd,KAAK,iBAZS,EACL,SAAS,GAWlB,KAAK,CAAA,SAXa,EACX,OAAO,GAUd,KAAK,CAVS,OAAA,EAChB,SAAS,GASP,KAAK,UATE,EACK,gBAAgB,GAQ5B,KAAK,CAAA,YARuB,EAC9B,YAAY,GAOV,KAAK,CAPK,YAAA,EACZ,OAAO,GAML,KAAK,QANA,EACP,eAAe,GAKb,KAAK,CAAA,eALQ,EACf,UAAU,GAIR,KAAK,CAJG,UAAA,EACV,UAAU,GAGR,KAAK,WAHG,EACV,qBAAqB,GAEnB,KAAK,CAAA,qBAFc,EAClB,KAAK,GAAA,MAAA,CACN,KAAK,EAnCH,CAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,wBAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,IAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,CAmCL,CADS,CACD;AAET,IAAA,IAAI,YAA8B,CAAA;IAClC,IAAI,OAAO,IAAI,IAAI,EAAE;AACnB,QAAA,YAAY,GAAGA,GAAA,CAAC,OAAO,EAAA,QAAA,CAAA,EAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,SAAS,EAAK,EAAA,SAAS,EAAI,CAAA;AACnE,KAAA;SAAM,IAAI,gBAAgB,IAAI,IAAI,EAAE;QACnC,YAAY,GAAG,gBAAgB,CAAA;AAChC,KAAA;AAAM,SAAA;QACL,YAAY,GAAG,IAAI,CAAA;AACpB,KAAA;AAED;;;AAGG;AACG,IAAA,IAAA,KAA4C,aAAa,CAC7D,WAAW,EACX,UAAU,CACX,EAHM,cAAc,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,WAAW,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,QAG7C,CAAA;IAED,IAAM,SAAS,GAAG,UAAU,KAAA,IAAA,IAAV,UAAU,KAAV,KAAA,CAAA,GAAA,UAAU,GAAI,cAAc,CAAA;;AAG9C,IAAA,IAAM,QAAQ,GAAG,KAAK,EAAE,CAAA;IACxB,IAAM,EAAE,GAAG,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,MAAM,GAAI,QAAQ,CAAA;AAE7B,IAAA,IAAM,cAAc,GAAG,KAAK,KAAK,SAAS,GAAG,EAAG,CAAA,MAAA,CAAA,KAAK,CAAE,CAAC,MAAM,GAAG,CAAC,CAAA;AAClE,IAAA,IAAM,QAAQ,GAAG,cAAc,GAAG,CAAC,CAAA;;IAGnC,IAAM,eAAe,GACnB,CAAC,SAAS;QACV,IAAI,KAAK,aAAa,CAAC,KAAK;AAC5B,QAAA,IAAI,KAAK,aAAa,CAAC,WAAW,CAAA;AACpC,IAAA,IAAM,SAAS,GAAG,QAAQ,GAAG,EAAG,CAAA,MAAA,CAAA,SAAS,EAAI,IAAA,CAAA,GAAG,SAAS,CAAA;AACzD,IAAA,IAAM,eAAe,GACnB,QAAQ,IAAI,SAAS;UACjB,EAAG,CAAA,MAAA,CAAA,WAAW,EAAI,IAAA,CAAA;UAClB,IAAI,KAAK,aAAa,CAAC,KAAK,IAAI,IAAI,KAAK,aAAa,CAAC,WAAW;AAClE,cAAE,SAAS;cACT,WAAW,CAAA;AACnB,IAAA,IAAM,cAAc,GAClB,IAAI,KAAK,aAAa,CAAC,KAAK,IAAI,IAAI,KAAK,aAAa,CAAC,WAAW;AAChE,UAAE,IAAI;UACJ,GAAG,CAAA;;IAGT,IAAM,qBAAqB,GACzB,CAAC,SAAS,IAAI,CAAC,eAAe,KAAK,CAAC,eAAe,CAAA;IACrD,IAAM,oBAAoB,GAAG,SAAS,IAAI,QAAQ,IAAI,CAAC,eAAe,CAAA;;IAEtE,IAAM,uBAAuB,GAC3B,SAAS;QACT,SAAS;AACT,QAAA,cAAc,IAAI,sBAAsB,GAAG,SAAS,CAAA;;IAEtD,IAAI,kBAAkB,GAAe,SAAS,CAAA;AAC9C,IAAA,IAAI,SAAS,IAAI,cAAc,GAAG,SAAS,EAAE;QAC3C,kBAAkB,GAAG,QAAQ,CAAA;AAC9B,KAAA;AAAM,SAAA,IACL,SAAS;AACT,QAAA,cAAc,IAAI,yBAAyB,GAAG,SAAS,EACvD;QACA,kBAAkB,GAAG,SAAS,CAAA;AAC/B,KAAA;;AAGD,IAAA,IAAM,cAAc,IAAA,EAAA,GAAA,EAAA;QAClB,EAAC,CAAA,MAAM,CAAC,OAAO,CAAA,GAAG,IAAI,KAAK,aAAa,CAAC,OAAO;QAChD,EAAC,CAAA,MAAM,CAAC,KAAK,CAAA,GAAG,IAAI,KAAK,aAAa,CAAC,KAAK;QAC5C,EAAC,CAAA,MAAM,CAAC,UAAU,CAAA,GAAG,IAAI,KAAK,aAAa,CAAC,WAAW;AACvD,QAAA,EAAA,CAAC,MAAM,CAAC,OAAO,CAAA,GAAG,WAAW;AAC7B,QAAA,EAAA,CAAC,MAAM,CAAC,KAAK,CAAA,GAAG,KAAK;AACrB,QAAA,EAAA,CAAC,MAAM,CAAC,OAAO,CAAG,GAAA,SAAS,IAAI,UAAU;AACzC,QAAA,EAAA,CAAC,MAAM,CAAC,QAAQ,CAAA,GAAG,QAAQ;AAC3B,QAAA,EAAA,CAAC,MAAM,CAAC,QAAQ,CAAA,GAAG,QAAQ;AAC3B,QAAA,EAAA,CAAC,MAAM,CAAC,KAAK,CAAA,GAAG,UAAU;AAC1B,QAAA,EAAA,CAAC,MAAM,CAAC,cAAc,CAAA,GAAG,eAAe;AACxC,QAAA,EAAA,CAAC,MAAM,CAAC,oBAAoB,CAAA,GAAG,qBAAqB;WACrD,CAAA;;AAGD,IAAA,IAAM,YAAY,IAAA,EAAA,GAAA,EAAA;QAChB,EAAC,CAAA,MAAM,CAAC,OAAO,CAAA,GAAG,IAAI,KAAK,aAAa,CAAC,OAAO;QAChD,EAAC,CAAA,MAAM,CAAC,KAAK,CAAA,GAAG,IAAI,KAAK,aAAa,CAAC,KAAK;QAC5C,EAAC,CAAA,MAAM,CAAC,UAAU,CAAA,GAAG,IAAI,KAAK,aAAa,CAAC,WAAW;AACvD,QAAA,EAAA,CAAC,MAAM,CAAC,QAAQ,CAAA,GAAG,QAAQ;AAC3B,QAAA,EAAA,CAAC,MAAM,CAAC,OAAO,CAAA,GAAG,SAAS;WAC5B,CAAA;AAED,IAAA,IAAM,YAAY,IAChBC,IAAC,CAAA,IAAI,aAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,eAAe,EACrD,EAAA,EAAA,QAAA,EAAA,CAAA,kBAAkB,IAAI,oBAAoB,IACzCD,GAAC,CAAA,IAAI,EAAC,QAAA,CAAA,EAAA,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,SAAS,gBAC3C,kBAAkB,EAAA,CAAA,CACd,IACL,IAAI,EACRA,GAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EACE,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,CAAC,EACzD,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,qBAAqB,GAAG,eAAe,GAAG,SAAS,EACpD,YAAA,EAAA,CAAC,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,SAAS,GAAI,eAAe,IAAI,SAAS,GAAG,SAAS,EACnD,eAAA,EAAA,QAAQ,EACvB,EAAE,EAAE,EAAE,EACN,YAAY,EAAC,KAAK,EACd,EAAA,KAAK,CACT,CAAA,EACD,gBAAgB,IAAI,oBAAoB,IACvCA,GAAA,CAAC,IAAI,EAAA,QAAA,CAAA,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,GAAG,EAAC,KAAK,EAAC,SAAS,EAC3C,EAAA,EAAA,QAAA,EAAA,gBAAgB,EACZ,CAAA,CAAA,IACL,IAAI,CAAA,EAAA,CAAA,CACH,CACR,CAAA;AAED,IAAA,IAAM,eAAe,GAAG,QAAQ,IAAI,SAAS,IAAI,YAAY,CAAA;AAE7D,IAAA,QACEC,IAAA,CAAC,IAAI,EAAA,QAAA,CAAA,EACH,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EACrC,SAAS,EAAC,QAAQ,EAClB,GAAG,EAAC,IAAI,EACR,UAAU,EAAC,YAAY,EACvB,CAAC,EAAC,MAAM,EAAA,EAAA,EAAA,QAAA,EAAA,CAERA,IACE,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,OAAO,EAAE,EAAE,EACX,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,gBAAgB,EACvB,kBAAkB,EAClB,cAAc,CACf,EAEA,EAAA,EAAA,QAAA,EAAA,CAAA,SAAS,IACRD,GAAC,CAAA,SAAS,EACR,QAAA,CAAA,EAAA,IAAI,EACF,IAAI,KAAK,aAAa,CAAC,WAAW;AAChC,8BAAE,GAAG;AACL,8BAAE,IAAI,KAAK,aAAa,CAAC,KAAK;AAC5B,kCAAE,GAAG;kCACH,SAAS,EAEjB,KAAK,EAAC,SAAS,EAAA,EACX,SAAS,CACb,CAAA,IACA,IAAI,EACRC,IAAA,CAAC,IAAI,EAAC,QAAA,CAAA,EAAA,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,cAAc,EAAC,QAAQ,EAAC,CAAC,EAAC,MAAM,EAC/D,EAAA,EAAA,QAAA,EAAA,CAAA,eAAe,IACdA,IAAC,CAAA,IAAI,aACH,SAAS,EAAE,MAAM,CAAC,QAAQ,EAC1B,SAAS,EAAC,KAAK,EACf,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,eAAe,EAC9B,GAAG,EAAC,GAAG,iBAEPD,GAAC,CAAA,IAAI,aACH,OAAO,EAAC,MAAM,EACd,GAAG,EAAC,MAAM,EACV,IAAI,EAAE,eAAe,GAAG,GAAG,GAAG,GAAG,EACjC,KAAK,EAAC,SAAS,EACf,GAAG,EAAE,UAAC,KAAK,EAAK,EAAA,QAAC;AACf,4CAAA,UAAU,EAAE,QAAQ;AACpB,4CAAA,QAAQ,EAAE,QAAQ;AAClB,4CAAA,YAAY,EAAE,UAAU;AACxB,4CAAA,MAAM,EAAE,CAAC;AACT,4CAAA,UAAU,EAAE,MAAO,CAAA,MAAA,CAAA,KAAK,CAAC,MAAM,CAAC,UAAU,CAAE;AAC5C,4CAAA,SAAS,EAAE,eAAe;AACxB,kDAAE,iBAAiB;AACnB,kDAAE,sBAAsB;yCAC3B,EAAC,EAAA,EAAA,EAAA,EAAA,QAAA,EAED,SAAS,EAAA,CAAA,CACL,EACN,uBAAuB,IACtBC,IAAC,CAAA,IAAI,EACH,QAAA,CAAA,EAAA,OAAO,EAAC,MAAM,EACd,IAAI,EAAC,IAAI,EACT,GAAG,EAAC,MAAM,EACV,KAAK,EAAE,kBAAkB,iBAExB,cAAc,EAAA,GAAA,EAAG,SAAS,CAAA,EAAA,CAAA,CACtB,IACL,IAAI,CAAA,EAAA,CAAA,CACH,IACL,IAAI,EACP,YAAY,CAAA,EAAA,CAAA,CACR,EACN,OAAO,IAAI,KAAK,IACfD,GAAC,CAAA,YAAY,EAAC,EAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAC,SAAS,EAAA,CAAG,IAChD,IAAI,EACP,YAAY,CAAA,EAAA,CAAA,CACP,EACP,UAAU,IACTA,GAAC,CAAA,IAAI,EACH,QAAA,CAAA,EAAA,OAAO,EAAC,MAAM,EACd,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,eAAe,GAAG,SAAS,GAAG,SAAS,EAEhE,EAAA,EAAA,QAAA,EAAA,UAAU,EACN,CAAA,CAAA,IACL,IAAI,CACH,EAAA,CAAA,CAAA,EACR;AACH,CAAC;;;;"}
@@ -1,4 +1,4 @@
1
- var styles = {"root":"TextInput-module_root__YKSHY","contentContainer":"TextInput-module_contentContainer__bNAhX","hover":"TextInput-module_hover__grSfp","disabled":"TextInput-module_disabled__m5CAR","small":"TextInput-module_small__mqDO6","default":"TextInput-module_default__W50h-","focused":"TextInput-module_focused__BdLuT","warning":"TextInput-module_warning__tv-Vs","error":"TextInput-module_error__Iud3-","incorrectError":"TextInput-module_incorrectError__siog6","disablePointerEvents":"TextInput-module_disablePointerEvents__4CcVt","input":"TextInput-module_input__3FI9K"};
1
+ var styles = {"root":"TextInput-module_root__YKSHY","contentContainer":"TextInput-module_contentContainer__bNAhX","hover":"TextInput-module_hover__grSfp","disabled":"TextInput-module_disabled__m5CAR","extra-small":"TextInput-module_extra-small__mi8bz","extraSmall":"TextInput-module_extraSmall__GF9aF","small":"TextInput-module_small__mqDO6","default":"TextInput-module_default__W50h-","focused":"TextInput-module_focused__BdLuT","warning":"TextInput-module_warning__tv-Vs","error":"TextInput-module_error__Iud3-","incorrectError":"TextInput-module_incorrectError__siog6","disablePointerEvents":"TextInput-module_disablePointerEvents__4CcVt","input":"TextInput-module_input__3FI9K"};
2
2
 
3
3
  export { styles as default };
4
4
  //# sourceMappingURL=TextInput.module.css.js.map
@@ -1,6 +1,7 @@
1
1
  import type { ComponentPropsWithoutRef, ReactNode } from 'react';
2
2
  import type { IconComponent, IconProps } from '../../icon';
3
3
  export declare enum TextInputSize {
4
+ EXTRA_SMALL = "extra-small",
4
5
  SMALL = "small",
5
6
  DEFAULT = "default"
6
7
  }
@@ -32,7 +33,7 @@ type InternalProps = {
32
33
  };
33
34
  export type TextInputProps = Omit<ComponentPropsWithoutRef<'input'>, 'size' | 'required'> & {
34
35
  /**
35
- * Input sizes. NOTE: small inputs will not show the label
36
+ * Input sizes. NOTE: small and extra-small inputs will not show the label
36
37
  * @default default
37
38
  */
38
39
  size?: TextInputSize;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/input/TextInput/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE1D,oBAAY,aAAa;IACvB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,KAAK,aAAa,GAAG;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,wBAAwB,CAAC,OAAO,CAAC,EAEjC,MAAM,GAAG,UAAU,CACpB,GAAG;IACF;;;OAGG;IACH,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B;;;OAGG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,GAAG,aAAa,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/input/TextInput/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE1D,oBAAY,aAAa;IACvB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,KAAK,aAAa,GAAG;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,wBAAwB,CAAC,OAAO,CAAC,EAEjC,MAAM,GAAG,UAAU,CACpB,GAAG;IACF;;;OAGG;IACH,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B;;;OAGG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,GAAG,aAAa,CAAA"}
@@ -1,5 +1,6 @@
1
1
  var TextInputSize;
2
2
  (function (TextInputSize) {
3
+ TextInputSize["EXTRA_SMALL"] = "extra-small";
3
4
  TextInputSize["SMALL"] = "small";
4
5
  TextInputSize["DEFAULT"] = "default";
5
6
  })(TextInputSize || (TextInputSize = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../src/components/input/TextInput/types.ts"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react'\n\nimport type { IconComponent, IconProps } from '../../icon'\n\nexport enum TextInputSize {\n SMALL = 'small',\n DEFAULT = 'default'\n}\n\ntype InternalProps = {\n /**\n * @ignore\n * This prop is for internal use only.\n * Toggles the incorrect error state for the storybook docs\n */\n _incorrectError?: boolean\n /**\n * @ignore\n * This prop is for internal use only.\n * Toggles the hover state for the storybook docs\n */\n _isHovered?: boolean\n /**\n * @ignore\n * This prop is for internal use only.\n * Toggles the focus state for the storybook docs\n */\n _isFocused?: boolean\n /**\n * @ignore\n * This prop is for internal use only.\n * Disabled pointer events for storybook docs\n */\n _disablePointerEvents?: boolean\n}\n\nexport type TextInputProps = Omit<\n ComponentPropsWithoutRef<'input'>,\n // Omitting required purely for storybook docs\n 'size' | 'required'\n> & {\n /**\n * Input sizes. NOTE: small inputs will not show the label\n * @default default\n */\n size?: TextInputSize\n /**\n * Toggles warning state (turns border warning color). NOTE: this is not used any where at the moment\n */\n warning?: boolean\n /**\n * Toggles error state\n */\n error?: boolean\n /**\n * Hides the label. If the label is hidden the placeholder will show by default instead.\n */\n hideLabel?: boolean\n /**\n * When `true` hides the placeholder. Used in `Select`.\n */\n hidePlaceholder?: boolean\n /**\n * Handler for when input is cleared.\n */\n onClear?: () => void\n /**\n * Label Text. Required due to accessibility. If hideLabel is true, the label is set via aria-label\n */\n label: string\n /**\n * ClassName on the div wrapping the whole input container (doesn't include assistive text)\n */\n inputRootClassName?: string\n /**\n * Helper text (or JSX) that shows up below the input\n */\n helperText?: string | ReactNode\n /**\n * Floating text on the lefthand side of the input.\n */\n startAdornmentText?: string\n /**\n * Floating text on the righthand side of the input\n */\n endAdornmentText?: string\n /**\n * Floating icon on the lefthand side of the input. Note: will float to the left of the label & content\n */\n startIcon?: IconComponent\n /**\n * Floating icon on the righthand side of the input\n */\n endIcon?: IconComponent\n /**\n * Override props to supply the start or end Icon\n */\n IconProps?: Partial<IconProps>\n /**\n * @hidden\n * Floating component on the righthand side of the input. Meant for internal use only.\n */\n endAdornment?: ReactNode\n /**\n * Required or not. Will add an * to the label if required\n */\n required?: boolean\n /**\n * 0-1 number representating a percentage threshold to show the max character text. Default is 0.7 (70%)\n * @default 0.7\n */\n showMaxLengthThreshold?: number\n /**\n * 0-1 number representating a percentage threshold to turn the character limit text orange. Default is 0.9 (90%)\n * @default 0.9\n */\n maxLengthWarningThreshold?: number\n /**\n * When `true` elevate the label. Useful for adding custom values. Reference `Select` component\n */\n elevateLabel?: boolean\n} & InternalProps\n"],"names":[],"mappings":"IAIY,cAGX;AAHD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,KAAb,aAAa,GAGxB,EAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"types.js","sources":["../../../../src/components/input/TextInput/types.ts"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react'\n\nimport type { IconComponent, IconProps } from '../../icon'\n\nexport enum TextInputSize {\n EXTRA_SMALL = 'extra-small',\n SMALL = 'small',\n DEFAULT = 'default'\n}\n\ntype InternalProps = {\n /**\n * @ignore\n * This prop is for internal use only.\n * Toggles the incorrect error state for the storybook docs\n */\n _incorrectError?: boolean\n /**\n * @ignore\n * This prop is for internal use only.\n * Toggles the hover state for the storybook docs\n */\n _isHovered?: boolean\n /**\n * @ignore\n * This prop is for internal use only.\n * Toggles the focus state for the storybook docs\n */\n _isFocused?: boolean\n /**\n * @ignore\n * This prop is for internal use only.\n * Disabled pointer events for storybook docs\n */\n _disablePointerEvents?: boolean\n}\n\nexport type TextInputProps = Omit<\n ComponentPropsWithoutRef<'input'>,\n // Omitting required purely for storybook docs\n 'size' | 'required'\n> & {\n /**\n * Input sizes. NOTE: small and extra-small inputs will not show the label\n * @default default\n */\n size?: TextInputSize\n /**\n * Toggles warning state (turns border warning color). NOTE: this is not used any where at the moment\n */\n warning?: boolean\n /**\n * Toggles error state\n */\n error?: boolean\n /**\n * Hides the label. If the label is hidden the placeholder will show by default instead.\n */\n hideLabel?: boolean\n /**\n * When `true` hides the placeholder. Used in `Select`.\n */\n hidePlaceholder?: boolean\n /**\n * Handler for when input is cleared.\n */\n onClear?: () => void\n /**\n * Label Text. Required due to accessibility. If hideLabel is true, the label is set via aria-label\n */\n label: string\n /**\n * ClassName on the div wrapping the whole input container (doesn't include assistive text)\n */\n inputRootClassName?: string\n /**\n * Helper text (or JSX) that shows up below the input\n */\n helperText?: string | ReactNode\n /**\n * Floating text on the lefthand side of the input.\n */\n startAdornmentText?: string\n /**\n * Floating text on the righthand side of the input\n */\n endAdornmentText?: string\n /**\n * Floating icon on the lefthand side of the input. Note: will float to the left of the label & content\n */\n startIcon?: IconComponent\n /**\n * Floating icon on the righthand side of the input\n */\n endIcon?: IconComponent\n /**\n * Override props to supply the start or end Icon\n */\n IconProps?: Partial<IconProps>\n /**\n * @hidden\n * Floating component on the righthand side of the input. Meant for internal use only.\n */\n endAdornment?: ReactNode\n /**\n * Required or not. Will add an * to the label if required\n */\n required?: boolean\n /**\n * 0-1 number representating a percentage threshold to show the max character text. Default is 0.7 (70%)\n * @default 0.7\n */\n showMaxLengthThreshold?: number\n /**\n * 0-1 number representating a percentage threshold to turn the character limit text orange. Default is 0.9 (90%)\n * @default 0.9\n */\n maxLengthWarningThreshold?: number\n /**\n * When `true` elevate the label. Useful for adding custom values. Reference `Select` component\n */\n elevateLabel?: boolean\n} & InternalProps\n"],"names":[],"mappings":"IAIY,cAIX;AAJD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA;;;;"}
@@ -1,9 +1,10 @@
1
1
  /// <reference types="react" />
2
- export declare const TokenAmountInput: (props: Omit<import("../TextInput").TextInputProps, "value" | "onChange"> & {
2
+ export declare const TokenAmountInput: (props: Omit<import("../TextInput").TextInputProps, "value" | "onChange" | "endIcon" | "endAdornment"> & {
3
3
  tokenLabel?: string | undefined;
4
4
  decimals?: number | undefined;
5
5
  isWhole?: boolean | undefined;
6
6
  value?: string | undefined;
7
7
  onChange?: import("./types").TokenAmountInputChangeHandler | undefined;
8
+ endIcon?: import("../..").IconComponent | import("react").ReactNode;
8
9
  } & import("react").RefAttributes<HTMLInputElement>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
9
10
  //# sourceMappingURL=TokenAmountInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenAmountInput.d.ts","sourceRoot":"","sources":["../../../../src/components/input/TokenAmountInput/TokenAmountInput.tsx"],"names":[],"mappings":";AAmBA,eAAO,MAAM,gBAAgB;;;;;;qJA0D5B,CAAA"}
1
+ {"version":3,"file":"TokenAmountInput.d.ts","sourceRoot":"","sources":["../../../../src/components/input/TokenAmountInput/TokenAmountInput.tsx"],"names":[],"mappings":";AAmBA,eAAO,MAAM,gBAAgB;;;;;;;qJAgE5B,CAAA"}
@@ -14,7 +14,7 @@ var formatNumberCommas = function (num) {
14
14
  (parts[1] !== undefined ? '.' + parts[1] : ''));
15
15
  };
16
16
  var TokenAmountInput = forwardRef(function (props, ref) {
17
- var tokenLabel = props.tokenLabel, _a = props.decimals, decimals = _a === void 0 ? 0 : _a, _b = props.isWhole, isWhole = _b === void 0 ? false : _b, valueProp = props.value, onChange = props.onChange, other = __rest(props, ["tokenLabel", "decimals", "isWhole", "value", "onChange"]);
17
+ var tokenLabel = props.tokenLabel, _a = props.decimals, decimals = _a === void 0 ? 0 : _a, _b = props.isWhole, isWhole = _b === void 0 ? false : _b, valueProp = props.value, onChange = props.onChange, endIcon = props.endIcon, other = __rest(props, ["tokenLabel", "decimals", "isWhole", "value", "onChange", "endIcon"]);
18
18
  var _c = useControlled({
19
19
  controlledProp: valueProp ? formatNumberCommas(valueProp) : valueProp,
20
20
  defaultValue: '',
@@ -44,7 +44,9 @@ var TokenAmountInput = forwardRef(function (props, ref) {
44
44
  onChange(stringAmount, amount);
45
45
  }
46
46
  }, [decimals, isWhole, setValueState, onChange]);
47
- return (jsx(TextInput, __assign({ ref: ref }, other, { value: value, onChange: handleChange, endAdornmentText: tokenLabel })));
47
+ // Determine if endIcon is an IconComponent or ReactNode
48
+ var isIconComponent = endIcon && typeof endIcon === 'function';
49
+ return (jsx(TextInput, __assign({ ref: ref }, other, { value: value, onChange: handleChange, endAdornmentText: tokenLabel, endIcon: isIconComponent ? endIcon : undefined, endAdornment: !isIconComponent ? endIcon : undefined })));
48
50
  });
49
51
 
50
52
  export { TokenAmountInput };
@@ -1 +1 @@
1
- {"version":3,"file":"TokenAmountInput.js","sources":["../../../../src/components/input/TokenAmountInput/TokenAmountInput.tsx"],"sourcesContent":["import { ChangeEventHandler, Ref, forwardRef, useCallback } from 'react'\n\nimport { useControlled } from '~harmony/hooks/useControlled'\n\nimport { TextInput } from '../TextInput'\n\nimport { TokenAmountInputProps } from './types'\n\n/**\n * Format a number to have commas\n */\nconst formatNumberCommas = (num: number | string) => {\n const parts = num.toString().split('.')\n return (\n parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') +\n (parts[1] !== undefined ? '.' + parts[1] : '')\n )\n}\n\nexport const TokenAmountInput = forwardRef(\n (props: TokenAmountInputProps, ref: Ref<HTMLInputElement>) => {\n const {\n tokenLabel,\n decimals = 0,\n isWhole = false,\n value: valueProp,\n onChange,\n ...other\n } = props\n\n const [value, setValueState] = useControlled({\n controlledProp: valueProp ? formatNumberCommas(valueProp) : valueProp,\n defaultValue: '',\n componentName: 'TokenAmountInput'\n })\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = useCallback(\n (e) => {\n const input = e.target.value.replace(/[^0-9.]+/g, '')\n // Regex to grab the whole and decimal parts of the number, stripping duplicate '.' characters\n const match = input.match(/^(\\d*)(.)?(\\d*)/)\n const whole = match?.[1] || ''\n const decimal = match?.[3] || ''\n const dot = match?.[2] || ''\n\n // Conditionally render the decimal part, and only for the number of decimals specified\n const stringAmount =\n dot && decimals && !isWhole\n ? `${whole}.${decimal.substring(0, decimals)}`\n : whole\n\n // Calculate the wei amount using BigInt arithmetic instead of BN\n const wholeBigInt = BigInt(whole || '0')\n const decimalPadded = decimal\n .padEnd(decimals, '0')\n .substring(0, decimals)\n const decimalBigInt = BigInt(decimalPadded || '0')\n const multiplier = BigInt(10 ** decimals)\n const amount = wholeBigInt * multiplier + decimalBigInt\n\n setValueState(formatNumberCommas(stringAmount))\n if (onChange) {\n onChange(stringAmount, amount)\n }\n },\n [decimals, isWhole, setValueState, onChange]\n )\n return (\n <TextInput\n ref={ref}\n {...other}\n value={value}\n onChange={handleChange}\n endAdornmentText={tokenLabel}\n />\n )\n }\n)\n"],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"TokenAmountInput.js","sources":["../../../../src/components/input/TokenAmountInput/TokenAmountInput.tsx"],"sourcesContent":["import { ChangeEventHandler, Ref, forwardRef, useCallback } from 'react'\n\nimport { useControlled } from '~harmony/hooks/useControlled'\n\nimport { TextInput } from '../TextInput'\n\nimport { TokenAmountInputProps } from './types'\n\n/**\n * Format a number to have commas\n */\nconst formatNumberCommas = (num: number | string) => {\n const parts = num.toString().split('.')\n return (\n parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') +\n (parts[1] !== undefined ? '.' + parts[1] : '')\n )\n}\n\nexport const TokenAmountInput = forwardRef(\n (props: TokenAmountInputProps, ref: Ref<HTMLInputElement>) => {\n const {\n tokenLabel,\n decimals = 0,\n isWhole = false,\n value: valueProp,\n onChange,\n endIcon,\n ...other\n } = props\n\n const [value, setValueState] = useControlled({\n controlledProp: valueProp ? formatNumberCommas(valueProp) : valueProp,\n defaultValue: '',\n componentName: 'TokenAmountInput'\n })\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = useCallback(\n (e) => {\n const input = e.target.value.replace(/[^0-9.]+/g, '')\n // Regex to grab the whole and decimal parts of the number, stripping duplicate '.' characters\n const match = input.match(/^(\\d*)(.)?(\\d*)/)\n const whole = match?.[1] || ''\n const decimal = match?.[3] || ''\n const dot = match?.[2] || ''\n\n // Conditionally render the decimal part, and only for the number of decimals specified\n const stringAmount =\n dot && decimals && !isWhole\n ? `${whole}.${decimal.substring(0, decimals)}`\n : whole\n\n // Calculate the wei amount using BigInt arithmetic instead of BN\n const wholeBigInt = BigInt(whole || '0')\n const decimalPadded = decimal\n .padEnd(decimals, '0')\n .substring(0, decimals)\n const decimalBigInt = BigInt(decimalPadded || '0')\n const multiplier = BigInt(10 ** decimals)\n const amount = wholeBigInt * multiplier + decimalBigInt\n\n setValueState(formatNumberCommas(stringAmount))\n if (onChange) {\n onChange(stringAmount, amount)\n }\n },\n [decimals, isWhole, setValueState, onChange]\n )\n // Determine if endIcon is an IconComponent or ReactNode\n const isIconComponent = endIcon && typeof endIcon === 'function'\n\n return (\n <TextInput\n ref={ref}\n {...other}\n value={value}\n onChange={handleChange}\n endAdornmentText={tokenLabel}\n endIcon={isIconComponent ? (endIcon as any) : undefined}\n endAdornment={!isIconComponent ? endIcon : undefined}\n />\n )\n }\n)\n"],"names":["_jsx"],"mappings":"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"}
@@ -1,10 +1,16 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { IconComponent } from '../../icon';
1
3
  import { TextInputProps } from '../TextInput';
2
4
  export type TokenAmountInputChangeHandler = (value: string, valueBigInt: bigint) => void;
3
- export type TokenAmountInputProps = Omit<TextInputProps, 'onChange' | 'value'> & {
5
+ export type TokenAmountInputProps = Omit<TextInputProps, 'onChange' | 'value' | 'endIcon' | 'endAdornment'> & {
4
6
  tokenLabel?: string;
5
7
  decimals?: number;
6
8
  isWhole?: boolean;
7
9
  value?: string;
8
10
  onChange?: TokenAmountInputChangeHandler;
11
+ /**
12
+ * Icon or component to display on the right side of the input
13
+ */
14
+ endIcon?: IconComponent | ReactNode;
9
15
  };
10
16
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/input/TokenAmountInput/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,MAAM,6BAA6B,GAAG,CAC1C,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,KAChB,IAAI,CAAA;AAET,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,cAAc,EACd,UAAU,GAAG,OAAO,CACrB,GAAG;IACF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,6BAA6B,CAAA;CACzC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/input/TokenAmountInput/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,MAAM,6BAA6B,GAAG,CAC1C,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,KAChB,IAAI,CAAA;AAET,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,cAAc,EACd,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,cAAc,CAClD,GAAG;IACF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,6BAA6B,CAAA;IACxC;;OAEG;IACH,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;CACpC,CAAA"}
@@ -32,6 +32,7 @@ import '../button/IconButton/IconButton.js';
32
32
  import '../button/UnstyledButton.js';
33
33
  import '../button/FilterButton/FilterButton.js';
34
34
  import '../button/FilterButton/FilterButtonOption.js';
35
+ import '../button/BaseButton/BaseButton.js';
35
36
  import '@react-spring/web';
36
37
  import '../text-link/TextLink.js';
37
38
  import '../switch/Switch.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../src/components/modal/Modal.tsx"],"sourcesContent":["import {\n useEffect,\n useState,\n useCallback,\n useMemo,\n forwardRef,\n MouseEventHandler,\n useRef\n} from 'react'\n\nimport { useTheme } from '@emotion/react'\nimport cn from 'classnames'\nimport { capitalize } from 'lodash'\nimport uniqueId from 'lodash/uniqueId'\nimport ReactDOM from 'react-dom'\n// eslint-disable-next-line no-restricted-imports -- TODO: migrate to @react-spring/web\nimport { animated, useTransition } from 'react-spring'\nimport { useEffectOnce } from 'react-use'\n\nimport { ModalState } from '~harmony/utils/modalState'\n\nimport { useHotkeys, useScrollLock, useClickOutside } from '../../hooks'\nimport { IconClose } from '../../icons'\n\nimport styles from './Modal.module.css'\nimport { ModalContext } from './ModalContext'\nimport { findAncestor } from './findAncestor'\nimport { useModalScrollCount } from './hooks'\nimport { ModalProps, Anchor } from './types'\n\nconst rootContainer = 'modalRootContainer'\nconst rootId = 'modalRoot'\nconst bgId = 'bgModal'\nconst wrapperClass = 'modalWrapper'\n\nconst anchorStyleMap = {\n [Anchor.TOP]: styles.top,\n [Anchor.CENTER]: styles.center,\n [Anchor.BOTTOM]: styles.bottom\n}\n\nconst anchorPropertyMap = {\n [Anchor.TOP]: 'marginTop',\n [Anchor.CENTER]: 'marginTop',\n [Anchor.BOTTOM]: 'marginBottom'\n}\n\nconst getOffset = (anchor: Anchor, verticalAnchorOffset: number) => {\n return { [anchorPropertyMap[anchor]]: verticalAnchorOffset }\n}\n\nconst useModalRoot = (id: string, isOpen: boolean, zIndex?: number) => {\n const [modalRoot, setModalRoot] = useState<HTMLElement | null>(null)\n const [modalBg, setModalBg] = useState<HTMLElement | null>(null)\n\n useEffect(() => {\n const uniqueRootId = `${id}-${rootId}`\n const uniqueBgId = `${id}-${bgId}`\n const uniqueRootContainerId = `${id}-${rootContainer}`\n let el = document.getElementById(uniqueRootId)\n let bgEl = document.getElementById(uniqueBgId)\n let container = document.getElementById(uniqueRootContainerId)\n\n if (!isOpen) {\n if (bgEl) {\n document.body.removeChild(bgEl)\n }\n if (el && container) {\n container.removeChild(el)\n }\n\n if (container) {\n document.body.removeChild(container)\n }\n\n return\n }\n\n if (!bgEl) {\n bgEl = document.createElement('div')\n bgEl.id = uniqueBgId\n bgEl.classList.add(bgId)\n document.body.appendChild(bgEl)\n }\n\n if (!container) {\n container = document.createElement('div')\n container.id = uniqueRootContainerId\n container.classList.add(rootContainer)\n document.body.appendChild(container)\n }\n\n if (!el) {\n el = document.createElement('div')\n el.id = uniqueRootId\n el.classList.add(rootId)\n container.appendChild(el)\n }\n\n if (zIndex) {\n container.style.zIndex = `${zIndex}`\n el.style.zIndex = `${zIndex}`\n bgEl.style.zIndex = `${zIndex - 1}`\n }\n\n setModalRoot(el)\n setModalBg(bgEl)\n }, [id, zIndex, isOpen])\n\n return [modalRoot, modalBg]\n}\n\nexport const Modal = forwardRef<HTMLDivElement, ModalProps>(function Modal(\n {\n 'aria-describedby': ariaDescribedbyProp,\n 'aria-labelledby': ariaLabelledbyProp,\n modalKey,\n children,\n onClose,\n onClosed,\n isOpen: isOpenProp,\n wrapperClassName,\n bodyClassName,\n titleClassName,\n subtitleClassName,\n headerContainerClassName,\n anchor = Anchor.CENTER,\n subtitle,\n verticalAnchorOffset = 0,\n horizontalPadding = 8,\n contentHorizontalPadding = 0,\n allowScroll = false,\n title = '',\n showTitleHeader = false,\n dismissOnClickOutside = true,\n showDismissButton = false,\n zIndex,\n size,\n className\n },\n ref\n) {\n useEffectOnce(() => {\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'development'\n ) {\n if (\n subtitle ||\n title ||\n showTitleHeader ||\n titleClassName ||\n subtitleClassName ||\n headerContainerClassName ||\n showDismissButton\n ) {\n console.warn(\n 'Header and title-related props of `Modal` have been deprecated. Use the `ModalHeader` sub-component instead.'\n )\n }\n\n if (allowScroll !== undefined) {\n console.warn('`allowScroll` prop of `Modal` has been deprecated.')\n }\n }\n })\n\n const [modalState, setModalState] = useState<ModalState>('closed')\n const isOpen = modalState !== 'closed'\n const isDoneOpening = modalState === 'open'\n const { spring } = useTheme()\n const id = useMemo(() => modalKey || uniqueId('modal-'), [modalKey])\n const titleId = ariaLabelledbyProp || `${id}-title`\n const subtitleId = ariaDescribedbyProp || `${id}-subtitle`\n const modalContextValue = useMemo(() => {\n return { titleId, subtitleId, onClose, isDoneOpening }\n }, [titleId, subtitleId, onClose, isDoneOpening])\n\n const onTouchMove = useCallback(\n (e: any) => {\n !allowScroll && e.preventDefault()\n },\n [allowScroll]\n )\n\n const [modalRoot, bgModal] = useModalRoot(id, isOpen, zIndex)\n const { incrementScrollCount, decrementScrollCount } = useModalScrollCount()\n useScrollLock(isOpen, incrementScrollCount, decrementScrollCount)\n\n useEffect(() => {\n if (modalState === 'closed' && isOpenProp) {\n setModalState('opening')\n } else if (modalState === 'open' && !isOpenProp) {\n setModalState('closing')\n }\n }, [isOpenProp, modalState])\n\n useEffect(() => {\n if (isOpen) {\n if (bgModal) {\n bgModal.classList.add('bgModalVisible')\n }\n\n // Need to prevent safari iOS bounce\n // overscroll effect by intercepting\n // touchmove events.\n if (modalRoot) modalRoot.addEventListener('touchmove', onTouchMove)\n return () => {\n if (bgModal) bgModal.classList.remove('bgModalVisible')\n }\n }\n if (bgModal) bgModal.classList.remove('bgModalVisible')\n if (modalRoot) modalRoot.removeEventListener('touchmove', onTouchMove)\n return () => {}\n }, [isOpen, bgModal, onTouchMove, modalRoot])\n\n const transition = useTransition(isOpenProp, null, {\n from: { transform: 'scale(0)', opacity: 0 },\n // @ts-ignore function is a valid value for enter, but the types don't acknowledge that\n enter:\n () =>\n async (\n next: (props: { transform: string; opacity: number }) => Promise<void>\n ) => {\n await next({ transform: 'scale(1)', opacity: 1 })\n },\n leave: { transform: 'scale(0)', opacity: 0 },\n unique: true,\n config: spring.standard,\n onDestroyed: (isDestroyed) => {\n setModalState(isDestroyed ? 'closed' : 'open')\n if (isDestroyed) {\n onClosed?.()\n }\n }\n })\n\n const modalContentClickedRef = useRef<boolean>(false)\n const outsideClickRef = useClickOutside(\n onClose,\n isOpen,\n // Check to see if the click outside is not another modal wrapper.\n // If it is, that means we have a nested modal situation and shouldn't\n // dismiss \"this\" modal. We let the useClickOutside in \"that\" modal to\n // dismiss it.\n (e: EventTarget) => {\n // Only close if we're open.\n // Closing when we're not open can cause a race condition when opened\n // via a click since this handler exists prior to visibility,\n // causing the modal to open and close immediately\n if (\n !isOpen ||\n modalContentClickedRef?.current ||\n !dismissOnClickOutside\n ) {\n modalContentClickedRef.current = false\n return true\n }\n if (e instanceof Element) {\n const modalElement = findAncestor(e, `.${wrapperClass}`)\n if (!modalElement) {\n return false\n }\n const isModalWrapper = modalElement.classList.contains(wrapperClass)\n const isThisModalWrapper = modalElement.classList.contains(\n `${wrapperClass}-${id}`\n )\n return isModalWrapper && !isThisModalWrapper\n }\n return false\n }\n )\n\n const handleEscape = useCallback(() => {\n if (isOpen) onClose()\n }, [isOpen, onClose])\n\n useHotkeys({ 27 /* escape */: handleEscape })\n\n const wrapperClassNames = cn(\n styles.wrapper,\n anchorStyleMap[anchor],\n {\n [wrapperClassName!]: !!wrapperClassName\n },\n wrapperClass,\n // Add a unique id class name to detect whether, if we're using\n // click outside to dismiss the modal, the correct \"outside\" is being clicked.\n `${wrapperClass}-${id}`\n )\n\n const wrapperStyle = {\n paddingLeft: `${horizontalPadding}px`,\n paddingRight: `${horizontalPadding}px`\n }\n\n /** Begin @deprecated section (favor using ModalContent sub-component) */\n const bodyStyle = {\n paddingLeft: `${contentHorizontalPadding}px`,\n paddingRight: `${contentHorizontalPadding}px`\n }\n /** End @deprecated section */\n\n const bodyClassNames = cn(styles.body, className, {\n [styles.noScroll!]: !allowScroll,\n [styles[`size${capitalize(size)}`]]: size,\n [bodyClassName!]: !!bodyClassName\n })\n\n const headerContainerClassNames = cn(styles.headerContainer, {\n [headerContainerClassName!]: !!headerContainerClassName\n })\n\n const [height, setHeight] = useState(\n typeof window !== 'undefined' ? window.innerHeight : 0\n )\n\n useEffect(() => {\n const onResize = () => {\n setHeight(window.innerHeight)\n }\n window.addEventListener('resize', onResize)\n return () => {\n window.removeEventListener('resize', onResize)\n }\n }, [setHeight])\n\n const bodyOffset = getOffset(anchor, verticalAnchorOffset)\n\n const handleModalContentClicked: MouseEventHandler = () => {\n modalContentClickedRef.current = true\n }\n\n return (\n <>\n {modalRoot && (process.env.NODE_ENV === 'test' ? isOpenProp : isOpen)\n ? ReactDOM.createPortal(\n <>\n {transition.map(\n ({ item, props, key }) =>\n item && (\n <animated.div\n className={wrapperClassNames}\n style={{\n ...wrapperStyle,\n opacity: props.opacity,\n height,\n minHeight: height\n }}\n key={key}\n ref={ref}\n >\n <animated.div\n ref={dismissOnClickOutside ? outsideClickRef : null}\n className={bodyClassNames}\n style={{ ...props, ...bodyOffset, ...bodyStyle }}\n role='dialog'\n aria-labelledby={titleId}\n aria-describedby={subtitleId}\n onMouseDown={handleModalContentClicked}\n >\n <>\n {/** Begin @deprecated section (moved to ModalHeader and ModalTitle sub-components) */}\n {showTitleHeader && (\n <div className={headerContainerClassNames}>\n {showDismissButton && (\n <div\n className={styles.dismissButton}\n onClick={onClose}\n >\n <IconClose color='subdued' size='s' />\n </div>\n )}\n <div\n id={titleId}\n className={cn(styles.header, titleClassName)}\n >\n {title}\n </div>\n <div\n id={subtitleId}\n className={cn(\n styles.subtitle,\n subtitleClassName\n )}\n >\n {subtitle}\n </div>\n </div>\n )}\n {/** End @deprecated section */}\n <ModalContext.Provider value={modalContextValue}>\n {children}\n </ModalContext.Provider>\n </>\n </animated.div>\n </animated.div>\n )\n )}\n </>,\n modalRoot\n )\n : null}\n </>\n )\n})\n"],"names":["_jsx","_Fragment","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../src/components/modal/Modal.tsx"],"sourcesContent":["import {\n useEffect,\n useState,\n useCallback,\n useMemo,\n forwardRef,\n MouseEventHandler,\n useRef\n} from 'react'\n\nimport { useTheme } from '@emotion/react'\nimport cn from 'classnames'\nimport { capitalize } from 'lodash'\nimport uniqueId from 'lodash/uniqueId'\nimport ReactDOM from 'react-dom'\n// eslint-disable-next-line no-restricted-imports -- TODO: migrate to @react-spring/web\nimport { animated, useTransition } from 'react-spring'\nimport { useEffectOnce } from 'react-use'\n\nimport { ModalState } from '~harmony/utils/modalState'\n\nimport { useHotkeys, useScrollLock, useClickOutside } from '../../hooks'\nimport { IconClose } from '../../icons'\n\nimport styles from './Modal.module.css'\nimport { ModalContext } from './ModalContext'\nimport { findAncestor } from './findAncestor'\nimport { useModalScrollCount } from './hooks'\nimport { ModalProps, Anchor } from './types'\n\nconst rootContainer = 'modalRootContainer'\nconst rootId = 'modalRoot'\nconst bgId = 'bgModal'\nconst wrapperClass = 'modalWrapper'\n\nconst anchorStyleMap = {\n [Anchor.TOP]: styles.top,\n [Anchor.CENTER]: styles.center,\n [Anchor.BOTTOM]: styles.bottom\n}\n\nconst anchorPropertyMap = {\n [Anchor.TOP]: 'marginTop',\n [Anchor.CENTER]: 'marginTop',\n [Anchor.BOTTOM]: 'marginBottom'\n}\n\nconst getOffset = (anchor: Anchor, verticalAnchorOffset: number) => {\n return { [anchorPropertyMap[anchor]]: verticalAnchorOffset }\n}\n\nconst useModalRoot = (id: string, isOpen: boolean, zIndex?: number) => {\n const [modalRoot, setModalRoot] = useState<HTMLElement | null>(null)\n const [modalBg, setModalBg] = useState<HTMLElement | null>(null)\n\n useEffect(() => {\n const uniqueRootId = `${id}-${rootId}`\n const uniqueBgId = `${id}-${bgId}`\n const uniqueRootContainerId = `${id}-${rootContainer}`\n let el = document.getElementById(uniqueRootId)\n let bgEl = document.getElementById(uniqueBgId)\n let container = document.getElementById(uniqueRootContainerId)\n\n if (!isOpen) {\n if (bgEl) {\n document.body.removeChild(bgEl)\n }\n if (el && container) {\n container.removeChild(el)\n }\n\n if (container) {\n document.body.removeChild(container)\n }\n\n return\n }\n\n if (!bgEl) {\n bgEl = document.createElement('div')\n bgEl.id = uniqueBgId\n bgEl.classList.add(bgId)\n document.body.appendChild(bgEl)\n }\n\n if (!container) {\n container = document.createElement('div')\n container.id = uniqueRootContainerId\n container.classList.add(rootContainer)\n document.body.appendChild(container)\n }\n\n if (!el) {\n el = document.createElement('div')\n el.id = uniqueRootId\n el.classList.add(rootId)\n container.appendChild(el)\n }\n\n if (zIndex) {\n container.style.zIndex = `${zIndex}`\n el.style.zIndex = `${zIndex}`\n bgEl.style.zIndex = `${zIndex - 1}`\n }\n\n setModalRoot(el)\n setModalBg(bgEl)\n }, [id, zIndex, isOpen])\n\n return [modalRoot, modalBg]\n}\n\nexport const Modal = forwardRef<HTMLDivElement, ModalProps>(function Modal(\n {\n 'aria-describedby': ariaDescribedbyProp,\n 'aria-labelledby': ariaLabelledbyProp,\n modalKey,\n children,\n onClose,\n onClosed,\n isOpen: isOpenProp,\n wrapperClassName,\n bodyClassName,\n titleClassName,\n subtitleClassName,\n headerContainerClassName,\n anchor = Anchor.CENTER,\n subtitle,\n verticalAnchorOffset = 0,\n horizontalPadding = 8,\n contentHorizontalPadding = 0,\n allowScroll = false,\n title = '',\n showTitleHeader = false,\n dismissOnClickOutside = true,\n showDismissButton = false,\n zIndex,\n size,\n className\n },\n ref\n) {\n useEffectOnce(() => {\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'development'\n ) {\n if (\n subtitle ||\n title ||\n showTitleHeader ||\n titleClassName ||\n subtitleClassName ||\n headerContainerClassName ||\n showDismissButton\n ) {\n console.warn(\n 'Header and title-related props of `Modal` have been deprecated. Use the `ModalHeader` sub-component instead.'\n )\n }\n\n if (allowScroll !== undefined) {\n console.warn('`allowScroll` prop of `Modal` has been deprecated.')\n }\n }\n })\n\n const [modalState, setModalState] = useState<ModalState>('closed')\n const isOpen = modalState !== 'closed'\n const isDoneOpening = modalState === 'open'\n const { spring } = useTheme()\n const id = useMemo(() => modalKey || uniqueId('modal-'), [modalKey])\n const titleId = ariaLabelledbyProp || `${id}-title`\n const subtitleId = ariaDescribedbyProp || `${id}-subtitle`\n const modalContextValue = useMemo(() => {\n return { titleId, subtitleId, onClose, isDoneOpening }\n }, [titleId, subtitleId, onClose, isDoneOpening])\n\n const onTouchMove = useCallback(\n (e: any) => {\n !allowScroll && e.preventDefault()\n },\n [allowScroll]\n )\n\n const [modalRoot, bgModal] = useModalRoot(id, isOpen, zIndex)\n const { incrementScrollCount, decrementScrollCount } = useModalScrollCount()\n useScrollLock(isOpen, incrementScrollCount, decrementScrollCount)\n\n useEffect(() => {\n if (modalState === 'closed' && isOpenProp) {\n setModalState('opening')\n } else if (modalState === 'open' && !isOpenProp) {\n setModalState('closing')\n }\n }, [isOpenProp, modalState])\n\n useEffect(() => {\n if (isOpen) {\n if (bgModal) {\n bgModal.classList.add('bgModalVisible')\n }\n\n // Need to prevent safari iOS bounce\n // overscroll effect by intercepting\n // touchmove events.\n if (modalRoot) modalRoot.addEventListener('touchmove', onTouchMove)\n return () => {\n if (bgModal) bgModal.classList.remove('bgModalVisible')\n }\n }\n if (bgModal) bgModal.classList.remove('bgModalVisible')\n if (modalRoot) modalRoot.removeEventListener('touchmove', onTouchMove)\n return () => {}\n }, [isOpen, bgModal, onTouchMove, modalRoot])\n\n const transition = useTransition(isOpenProp, null, {\n from: { transform: 'scale(0)', opacity: 0 },\n // @ts-ignore function is a valid value for enter, but the types don't acknowledge that\n enter:\n () =>\n async (\n next: (props: { transform: string; opacity: number }) => Promise<void>\n ) => {\n await next({ transform: 'scale(1)', opacity: 1 })\n },\n leave: { transform: 'scale(0)', opacity: 0 },\n unique: true,\n config: spring.standard,\n onDestroyed: (isDestroyed) => {\n setModalState(isDestroyed ? 'closed' : 'open')\n if (isDestroyed) {\n onClosed?.()\n }\n }\n })\n\n const modalContentClickedRef = useRef<boolean>(false)\n const outsideClickRef = useClickOutside(\n onClose,\n isOpen,\n // Check to see if the click outside is not another modal wrapper.\n // If it is, that means we have a nested modal situation and shouldn't\n // dismiss \"this\" modal. We let the useClickOutside in \"that\" modal to\n // dismiss it.\n (e: EventTarget) => {\n // Only close if we're open.\n // Closing when we're not open can cause a race condition when opened\n // via a click since this handler exists prior to visibility,\n // causing the modal to open and close immediately\n if (\n !isOpen ||\n modalContentClickedRef?.current ||\n !dismissOnClickOutside\n ) {\n modalContentClickedRef.current = false\n return true\n }\n if (e instanceof Element) {\n const modalElement = findAncestor(e, `.${wrapperClass}`)\n if (!modalElement) {\n return false\n }\n const isModalWrapper = modalElement.classList.contains(wrapperClass)\n const isThisModalWrapper = modalElement.classList.contains(\n `${wrapperClass}-${id}`\n )\n return isModalWrapper && !isThisModalWrapper\n }\n return false\n }\n )\n\n const handleEscape = useCallback(() => {\n if (isOpen) onClose()\n }, [isOpen, onClose])\n\n useHotkeys({ 27 /* escape */: handleEscape })\n\n const wrapperClassNames = cn(\n styles.wrapper,\n anchorStyleMap[anchor],\n {\n [wrapperClassName!]: !!wrapperClassName\n },\n wrapperClass,\n // Add a unique id class name to detect whether, if we're using\n // click outside to dismiss the modal, the correct \"outside\" is being clicked.\n `${wrapperClass}-${id}`\n )\n\n const wrapperStyle = {\n paddingLeft: `${horizontalPadding}px`,\n paddingRight: `${horizontalPadding}px`\n }\n\n /** Begin @deprecated section (favor using ModalContent sub-component) */\n const bodyStyle = {\n paddingLeft: `${contentHorizontalPadding}px`,\n paddingRight: `${contentHorizontalPadding}px`\n }\n /** End @deprecated section */\n\n const bodyClassNames = cn(styles.body, className, {\n [styles.noScroll!]: !allowScroll,\n [styles[`size${capitalize(size)}`]]: size,\n [bodyClassName!]: !!bodyClassName\n })\n\n const headerContainerClassNames = cn(styles.headerContainer, {\n [headerContainerClassName!]: !!headerContainerClassName\n })\n\n const [height, setHeight] = useState(\n typeof window !== 'undefined' ? window.innerHeight : 0\n )\n\n useEffect(() => {\n const onResize = () => {\n setHeight(window.innerHeight)\n }\n window.addEventListener('resize', onResize)\n return () => {\n window.removeEventListener('resize', onResize)\n }\n }, [setHeight])\n\n const bodyOffset = getOffset(anchor, verticalAnchorOffset)\n\n const handleModalContentClicked: MouseEventHandler = () => {\n modalContentClickedRef.current = true\n }\n\n return (\n <>\n {modalRoot && (process.env.NODE_ENV === 'test' ? isOpenProp : isOpen)\n ? ReactDOM.createPortal(\n <>\n {transition.map(\n ({ item, props, key }) =>\n item && (\n <animated.div\n className={wrapperClassNames}\n style={{\n ...wrapperStyle,\n opacity: props.opacity,\n height,\n minHeight: height\n }}\n key={key}\n ref={ref}\n >\n <animated.div\n ref={dismissOnClickOutside ? outsideClickRef : null}\n className={bodyClassNames}\n style={{ ...props, ...bodyOffset, ...bodyStyle }}\n role='dialog'\n aria-labelledby={titleId}\n aria-describedby={subtitleId}\n onMouseDown={handleModalContentClicked}\n >\n <>\n {/** Begin @deprecated section (moved to ModalHeader and ModalTitle sub-components) */}\n {showTitleHeader && (\n <div className={headerContainerClassNames}>\n {showDismissButton && (\n <div\n className={styles.dismissButton}\n onClick={onClose}\n >\n <IconClose color='subdued' size='s' />\n </div>\n )}\n <div\n id={titleId}\n className={cn(styles.header, titleClassName)}\n >\n {title}\n </div>\n <div\n id={subtitleId}\n className={cn(\n styles.subtitle,\n subtitleClassName\n )}\n >\n {subtitle}\n </div>\n </div>\n )}\n {/** End @deprecated section */}\n <ModalContext.Provider value={modalContextValue}>\n {children}\n </ModalContext.Provider>\n </>\n </animated.div>\n </animated.div>\n )\n )}\n </>,\n modalRoot\n )\n : null}\n </>\n )\n})\n"],"names":["_jsx","_Fragment","_jsxs"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  /// <reference types="react" />
2
- import { ModalFooterProps } from './types';
3
2
  /**
4
3
  * Footer component to be used inside modals
5
4
  */
6
- export declare const ModalFooter: (props: ModalFooterProps & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
5
+ export declare const ModalFooter: (props: import("../layout/Flex").BaseFlexProps & import("..").BaseBoxProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
7
6
  //# sourceMappingURL=ModalFooter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalFooter.d.ts","sourceRoot":"","sources":["../../../src/components/modal/ModalFooter.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C;;GAEG;AACH,eAAO,MAAM,WAAW,4KAYvB,CAAA"}
1
+ {"version":3,"file":"ModalFooter.d.ts","sourceRoot":"","sources":["../../../src/components/modal/ModalFooter.tsx"],"names":[],"mappings":";AAMA;;GAEG;AACH,eAAO,MAAM,WAAW,+UAgBvB,CAAA"}
@@ -1,15 +1,14 @@
1
1
  import { __rest, __assign } from '../../_virtual/_tslib.js';
2
2
  import { jsx } from '@emotion/react/jsx-runtime';
3
3
  import { forwardRef } from 'react';
4
- import cn from 'classnames';
5
- import styles from './ModalFooter.module.css.js';
4
+ import { Flex } from '../layout/Flex/Flex.js';
6
5
 
7
6
  /**
8
7
  * Footer component to be used inside modals
9
8
  */
10
9
  var ModalFooter = forwardRef(function ModalFooter(_a, ref) {
11
- var className = _a.className, children = _a.children, props = __rest(_a, ["className", "children"]);
12
- return (jsx("div", __assign({ className: cn(styles.modalFooterContainer, className) }, props, { ref: ref }, { children: children })));
10
+ var children = _a.children, props = __rest(_a, ["children"]);
11
+ return (jsx(Flex, __assign({ ref: ref, justifyContent: 'center', alignItems: 'center', p: 'xl', gap: 's', flex: '0 0 auto' }, props, { children: children })));
13
12
  });
14
13
 
15
14
  export { ModalFooter };
@@ -1 +1 @@
1
- {"version":3,"file":"ModalFooter.js","sources":["../../../src/components/modal/ModalFooter.tsx"],"sourcesContent":["import { forwardRef } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './ModalFooter.module.css'\nimport { ModalFooterProps } from './types'\n\n/**\n * Footer component to be used inside modals\n */\nexport const ModalFooter = forwardRef<HTMLDivElement, ModalFooterProps>(\n function ModalFooter({ className, children, ...props }, ref) {\n return (\n <div\n className={cn(styles.modalFooterContainer, className)}\n {...props}\n ref={ref}\n >\n {children}\n </div>\n )\n }\n)\n"],"names":["_jsx"],"mappings":";;;;;;AAOA;;AAEG;AACU,IAAA,WAAW,GAAG,UAAU,CACnC,SAAS,WAAW,CAAC,EAAiC,EAAE,GAAG,EAAA;IAApC,IAAA,SAAS,eAAA,EAAE,QAAQ,cAAA,EAAK,KAAK,GAA/B,MAAA,CAAA,EAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAiC,CAAF,CAAA;IAClD,QACEA,sBACE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE,SAAS,CAAC,EACjD,EAAA,KAAK,IACT,GAAG,EAAE,GAAG,EAEP,EAAA,EAAA,QAAA,EAAA,QAAQ,EACL,CAAA,CAAA,EACP;AACH,CAAC;;;;"}
1
+ {"version":3,"file":"ModalFooter.js","sources":["../../../src/components/modal/ModalFooter.tsx"],"sourcesContent":["import { forwardRef } from 'react'\n\nimport { Flex } from '../layout/Flex'\n\nimport { ModalFooterProps } from './types'\n\n/**\n * Footer component to be used inside modals\n */\nexport const ModalFooter = forwardRef<HTMLDivElement, ModalFooterProps>(\n function ModalFooter({ children, ...props }, ref) {\n return (\n <Flex\n ref={ref}\n justifyContent='center'\n alignItems='center'\n p='xl'\n gap='s'\n flex='0 0 auto'\n {...props}\n >\n {children}\n </Flex>\n )\n }\n)\n"],"names":["_jsx"],"mappings":";;;;;AAMA;;AAEG;AACU,IAAA,WAAW,GAAG,UAAU,CACnC,SAAS,WAAW,CAAC,EAAsB,EAAE,GAAG,EAAA;AAAzB,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAK,KAAK,GAAA,MAAA,CAAA,EAAA,EAApB,YAAsB,CAAF,CAAA;AACvC,IAAA,QACEA,GAAA,CAAC,IAAI,EAAA,QAAA,CAAA,EACH,GAAG,EAAE,GAAG,EACR,cAAc,EAAC,QAAQ,EACvB,UAAU,EAAC,QAAQ,EACnB,CAAC,EAAC,IAAI,EACN,GAAG,EAAC,GAAG,EACP,IAAI,EAAC,UAAU,IACX,KAAK,EAAA,EAAA,QAAA,EAER,QAAQ,EAAA,CAAA,CACJ,EACR;AACH,CAAC;;;;"}
@@ -23,6 +23,7 @@ import { IconButton } from '../button/IconButton/IconButton.js';
23
23
  import '../button/UnstyledButton.js';
24
24
  import '../button/FilterButton/FilterButton.js';
25
25
  import '../button/FilterButton/FilterButtonOption.js';
26
+ import '../button/BaseButton/BaseButton.js';
26
27
  import '@react-spring/web';
27
28
  import '../text-link/TextLink.js';
28
29
  import '../switch/Switch.js';
@@ -1 +1 @@
1
- {"version":3,"file":"ModalHeader.js","sources":["../../../src/components/modal/ModalHeader.tsx"],"sourcesContent":["import { useContext, forwardRef, useCallback } from 'react'\n\nimport cn from 'classnames'\n\nimport { IconClose } from '../../icons'\nimport { IconButton } from '../button'\n\nimport { ModalContext } from './ModalContext'\nimport styles from './ModalHeader.module.css'\nimport { ModalHeaderProps, ModalTitleProps } from './types'\n\n/**\n * Header component to be used inside modals\n */\nexport const ModalHeader = forwardRef<HTMLDivElement, ModalHeaderProps>(\n function ModalHeader(\n {\n className,\n onClose: onCloseProp,\n dismissButtonClassName,\n showDismissButton = true,\n children,\n ...props\n },\n ref\n ) {\n const { onClose } = useContext(ModalContext)\n\n const handleClose = useCallback(() => {\n onClose?.()\n onCloseProp?.()\n }, [onClose, onCloseProp])\n\n return (\n <div\n className={cn(\n styles.headerContainer,\n { [styles.noDismissButton]: !showDismissButton },\n className\n )}\n ref={ref}\n {...props}\n >\n {showDismissButton ? (\n <IconButton\n aria-label='dismiss dialog'\n className={cn(styles.dismissButton, dismissButtonClassName)}\n icon={IconClose}\n color='subdued'\n size='s'\n onClick={handleClose}\n />\n ) : null}\n {children}\n </div>\n )\n }\n)\n\n/**\n * Title component to be used inside modal headers\n */\nexport const ModalTitle = forwardRef<HTMLDivElement, ModalTitleProps>(\n function ModalTitle(\n {\n subtitleClassName,\n icon,\n Icon,\n iconClassName,\n title,\n titleClassName,\n subtitle,\n titleId: titleIdProp,\n subtitleId: subtitleIdProp,\n ...props\n },\n ref\n ) {\n const modalContext = useContext(ModalContext)\n const titleId = titleIdProp || modalContext.titleId\n const subtitleId = subtitleIdProp || modalContext.subtitleId\n\n return (\n <>\n <div className={styles.titleContainer} {...props} ref={ref}>\n {icon == null ? null : (\n <div className={cn(styles.icon, iconClassName)}>{icon}</div>\n )}\n {Icon ? <Icon className={styles.icon} /> : null}\n <h2 id={titleId} className={cn(styles.title, titleClassName)}>\n {title}\n </h2>\n </div>\n {subtitle == null ? null : (\n <div className={cn(styles.subtitleContainer, subtitleClassName)}>\n <h3 id={subtitleId} className={styles.subtitle}>\n {subtitle}\n </h3>\n </div>\n )}\n </>\n )\n }\n)\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"ModalHeader.js","sources":["../../../src/components/modal/ModalHeader.tsx"],"sourcesContent":["import { useContext, forwardRef, useCallback } from 'react'\n\nimport cn from 'classnames'\n\nimport { IconClose } from '../../icons'\nimport { IconButton } from '../button'\n\nimport { ModalContext } from './ModalContext'\nimport styles from './ModalHeader.module.css'\nimport { ModalHeaderProps, ModalTitleProps } from './types'\n\n/**\n * Header component to be used inside modals\n */\nexport const ModalHeader = forwardRef<HTMLDivElement, ModalHeaderProps>(\n function ModalHeader(\n {\n className,\n onClose: onCloseProp,\n dismissButtonClassName,\n showDismissButton = true,\n children,\n ...props\n },\n ref\n ) {\n const { onClose } = useContext(ModalContext)\n\n const handleClose = useCallback(() => {\n onClose?.()\n onCloseProp?.()\n }, [onClose, onCloseProp])\n\n return (\n <div\n className={cn(\n styles.headerContainer,\n { [styles.noDismissButton]: !showDismissButton },\n className\n )}\n ref={ref}\n {...props}\n >\n {showDismissButton ? (\n <IconButton\n aria-label='dismiss dialog'\n className={cn(styles.dismissButton, dismissButtonClassName)}\n icon={IconClose}\n color='subdued'\n size='s'\n onClick={handleClose}\n />\n ) : null}\n {children}\n </div>\n )\n }\n)\n\n/**\n * Title component to be used inside modal headers\n */\nexport const ModalTitle = forwardRef<HTMLDivElement, ModalTitleProps>(\n function ModalTitle(\n {\n subtitleClassName,\n icon,\n Icon,\n iconClassName,\n title,\n titleClassName,\n subtitle,\n titleId: titleIdProp,\n subtitleId: subtitleIdProp,\n ...props\n },\n ref\n ) {\n const modalContext = useContext(ModalContext)\n const titleId = titleIdProp || modalContext.titleId\n const subtitleId = subtitleIdProp || modalContext.subtitleId\n\n return (\n <>\n <div className={styles.titleContainer} {...props} ref={ref}>\n {icon == null ? null : (\n <div className={cn(styles.icon, iconClassName)}>{icon}</div>\n )}\n {Icon ? <Icon className={styles.icon} /> : null}\n <h2 id={titleId} className={cn(styles.title, titleClassName)}>\n {title}\n </h2>\n </div>\n {subtitle == null ? null : (\n <div className={cn(styles.subtitleContainer, subtitleClassName)}>\n <h3 id={subtitleId} className={styles.subtitle}>\n {subtitle}\n </h3>\n </div>\n )}\n </>\n )\n }\n)\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { HTMLAttributes, ReactNode } from 'react';
2
2
  import { IconComponent } from '../icon';
3
+ import { FlexProps } from '../layout/Flex';
3
4
  import { ScrollbarProps } from '../scrollbar';
4
5
  export declare enum Anchor {
5
6
  CENTER = "CENTER",
@@ -126,5 +127,5 @@ export type ModalTitleProps = Omit<HTMLAttributes<HTMLDivElement>, 'title'> & {
126
127
  titleId?: string;
127
128
  subtitleId?: string;
128
129
  };
129
- export type ModalFooterProps = HTMLAttributes<HTMLDivElement>;
130
+ export type ModalFooterProps = FlexProps;
130
131
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/modal/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,oBAAY,MAAM;IAChB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,UAAU,GAAG;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAA;IAEnB;;;OAGG;IACH,OAAO,EAAE,MAAM,IAAI,CAAA;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAErB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IAEf;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAE/B;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,kBAAkB;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IAIrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;IAEjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;IAEjC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAA;AAE9C,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC9D,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,GAAG;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,SAAS,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/modal/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,oBAAY,MAAM;IAChB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,UAAU,GAAG;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAA;IAEnB;;;OAGG;IACH,OAAO,EAAE,MAAM,IAAI,CAAA;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAErB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IAEf;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAE/B;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,kBAAkB;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IAIrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;IAEjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;IAEjC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAE3B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAA;AAE9C,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC9D,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,GAAG;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,SAAS,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../src/components/modal/types.ts"],"sourcesContent":["import { HTMLAttributes, ReactNode } from 'react'\n\nimport { IconComponent } from '../icon'\nimport { ScrollbarProps } from '../scrollbar'\n\nexport enum Anchor {\n CENTER = 'CENTER',\n TOP = 'TOP',\n BOTTOM = 'BOTTOM'\n}\n\nexport type ModalProps = {\n /**\n * Optional unique key to assign to the modal.\n * If not provided, it is auto-generated.\n */\n modalKey?: string\n\n /**\n * Modal contents\n */\n children: ReactNode\n\n /**\n * Callback fired when the modal is closed\n * Should set isOpen accordingly\n */\n onClose: () => void\n\n /**\n * Callback fired when the modal children are removed from the dom.\n */\n onClosed?: () => void\n\n /**\n * Whether or not the modal is open\n */\n isOpen: boolean\n\n /**\n * @deprecated in favor of composability - use ModalHeader sub-component instead.\n */\n showTitleHeader?: boolean\n /**\n * @deprecated in favor of composability - use ModalHeader sub-component instead.\n */\n title?: ReactNode\n /**\n * @deprecated in favor of composability - use ModalHeader sub-component instead.\n */\n subtitle?: string\n\n /**\n * Whether to dismiss on a click outside the modal\n */\n dismissOnClickOutside?: boolean\n\n /**\n * @deprecated in favor of composability - use ModalHeader sub-component instead.\n */\n showDismissButton?: boolean\n\n /**\n * Manually set z-index.\n *\n * By default, the z-index is 10000 and the modal background shadow is\n * set to z-index - 1 so that the modal appears on top of the shadow.\n *\n * If you would like to nest modals, it's important to increase the z-index by\n * 2 for every modal so that the parent modal lives behind the child modal's shadow.\n */\n zIndex?: number\n\n /** @deprecated */\n allowScroll?: boolean\n\n // Classnames\n\n wrapperClassName?: string\n\n /**\n * Set max-width on bodyClass to set the modal width\n */\n bodyClassName?: string\n\n /**\n * @deprecated in favor of composability - use ModalHeader sub-component instead.\n */\n titleClassName?: string\n /**\n * @deprecated in favor of composability - use ModalHeader sub-component instead.\n */\n subtitleClassName?: string\n /**\n * @deprecated in favor of composability - use ModalHeader sub-component instead.\n */\n headerContainerClassName?: string\n\n anchor?: Anchor\n verticalAnchorOffset?: number\n\n /**\n * Horizontal padding between modal edges and viewport edge\n */\n horizontalPadding?: number\n\n /**\n * @deprecated in favor of composability - use ModalContent sub-component instead\n */\n contentHorizontalPadding?: number\n\n /**\n * Optional aria description for the dialog.\n * If not provided, it is auto-generated.\n */\n 'aria-describedby'?: string\n\n /**\n * Optional aria label for the dialog.\n * If not provided, it is auto-generated.\n */\n 'aria-labelledby'?: string\n /**\n * If provided, conform to standard modal widths\n * (only small currently implemented)\n */\n size?: 'small' | 'medium' | 'large'\n className?: string\n}\n\nexport type ModalContentProps = ScrollbarProps\n\nexport type ModalHeaderProps = HTMLAttributes<HTMLDivElement> & {\n dismissButtonClassName?: string\n showDismissButton?: boolean\n onClose?: () => void\n children: ReactNode\n}\n\nexport type ModalTitleProps = Omit<HTMLAttributes<HTMLDivElement>, 'title'> & {\n subtitleClassName?: string\n /**\n * @deprecated use Icon prop instead\n */\n icon?: ReactNode\n Icon?: IconComponent\n iconClassName?: string\n title: ReactNode\n titleClassName?: string\n subtitle?: ReactNode\n titleId?: string\n subtitleId?: string\n}\n\nexport type ModalFooterProps = HTMLAttributes<HTMLDivElement>\n"],"names":[],"mappings":"IAKY,OAIX;AAJD,CAAA,UAAY,MAAM,EAAA;AAChB,IAAA,MAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,MAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,MAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAJW,MAAM,KAAN,MAAM,GAIjB,EAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"types.js","sources":["../../../src/components/modal/types.ts"],"sourcesContent":["import { HTMLAttributes, ReactNode } from 'react'\n\nimport { IconComponent } from '../icon'\nimport { FlexProps } from '../layout/Flex'\nimport { ScrollbarProps } from '../scrollbar'\n\nexport enum Anchor {\n CENTER = 'CENTER',\n TOP = 'TOP',\n BOTTOM = 'BOTTOM'\n}\n\nexport type ModalProps = {\n /**\n * Optional unique key to assign to the modal.\n * If not provided, it is auto-generated.\n */\n modalKey?: string\n\n /**\n * Modal contents\n */\n children: ReactNode\n\n /**\n * Callback fired when the modal is closed\n * Should set isOpen accordingly\n */\n onClose: () => void\n\n /**\n * Callback fired when the modal children are removed from the dom.\n */\n onClosed?: () => void\n\n /**\n * Whether or not the modal is open\n */\n isOpen: boolean\n\n /**\n * @deprecated in favor of composability - use ModalHeader sub-component instead.\n */\n showTitleHeader?: boolean\n /**\n * @deprecated in favor of composability - use ModalHeader sub-component instead.\n */\n title?: ReactNode\n /**\n * @deprecated in favor of composability - use ModalHeader sub-component instead.\n */\n subtitle?: string\n\n /**\n * Whether to dismiss on a click outside the modal\n */\n dismissOnClickOutside?: boolean\n\n /**\n * @deprecated in favor of composability - use ModalHeader sub-component instead.\n */\n showDismissButton?: boolean\n\n /**\n * Manually set z-index.\n *\n * By default, the z-index is 10000 and the modal background shadow is\n * set to z-index - 1 so that the modal appears on top of the shadow.\n *\n * If you would like to nest modals, it's important to increase the z-index by\n * 2 for every modal so that the parent modal lives behind the child modal's shadow.\n */\n zIndex?: number\n\n /** @deprecated */\n allowScroll?: boolean\n\n // Classnames\n\n wrapperClassName?: string\n\n /**\n * Set max-width on bodyClass to set the modal width\n */\n bodyClassName?: string\n\n /**\n * @deprecated in favor of composability - use ModalHeader sub-component instead.\n */\n titleClassName?: string\n /**\n * @deprecated in favor of composability - use ModalHeader sub-component instead.\n */\n subtitleClassName?: string\n /**\n * @deprecated in favor of composability - use ModalHeader sub-component instead.\n */\n headerContainerClassName?: string\n\n anchor?: Anchor\n verticalAnchorOffset?: number\n\n /**\n * Horizontal padding between modal edges and viewport edge\n */\n horizontalPadding?: number\n\n /**\n * @deprecated in favor of composability - use ModalContent sub-component instead\n */\n contentHorizontalPadding?: number\n\n /**\n * Optional aria description for the dialog.\n * If not provided, it is auto-generated.\n */\n 'aria-describedby'?: string\n\n /**\n * Optional aria label for the dialog.\n * If not provided, it is auto-generated.\n */\n 'aria-labelledby'?: string\n /**\n * If provided, conform to standard modal widths\n * (only small currently implemented)\n */\n size?: 'small' | 'medium' | 'large'\n className?: string\n}\n\nexport type ModalContentProps = ScrollbarProps\n\nexport type ModalHeaderProps = HTMLAttributes<HTMLDivElement> & {\n dismissButtonClassName?: string\n showDismissButton?: boolean\n onClose?: () => void\n children: ReactNode\n}\n\nexport type ModalTitleProps = Omit<HTMLAttributes<HTMLDivElement>, 'title'> & {\n subtitleClassName?: string\n /**\n * @deprecated use Icon prop instead\n */\n icon?: ReactNode\n Icon?: IconComponent\n iconClassName?: string\n title: ReactNode\n titleClassName?: string\n subtitle?: ReactNode\n titleId?: string\n subtitleId?: string\n}\n\nexport type ModalFooterProps = FlexProps\n"],"names":[],"mappings":"IAMY,OAIX;AAJD,CAAA,UAAY,MAAM,EAAA;AAChB,IAAA,MAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,MAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,MAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAJW,MAAM,KAAN,MAAM,GAIjB,EAAA,CAAA,CAAA;;;;"}