@react-spectrum/s2 1.5.0 → 1.5.1

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 (268) hide show
  1. package/dist/private/Accordion.cjs +2 -2
  2. package/dist/private/Accordion.css +2 -2
  3. package/dist/private/Accordion.mjs +2 -2
  4. package/dist/private/ActionBar.cjs +59 -59
  5. package/dist/private/ActionBar.css +58 -58
  6. package/dist/private/ActionBar.mjs +59 -59
  7. package/dist/private/ActionButton.cjs +247 -247
  8. package/dist/private/ActionButton.css +169 -169
  9. package/dist/private/ActionButton.mjs +247 -247
  10. package/dist/private/ActionButtonGroup.cjs +15 -15
  11. package/dist/private/ActionButtonGroup.css +9 -9
  12. package/dist/private/ActionButtonGroup.mjs +15 -15
  13. package/dist/private/Add.cjs +10 -10
  14. package/dist/private/Add.css +6 -6
  15. package/dist/private/Add.mjs +10 -10
  16. package/dist/private/AlertDialog.cjs +3 -3
  17. package/dist/private/AlertDialog.css +3 -3
  18. package/dist/private/AlertDialog.mjs +3 -3
  19. package/dist/private/Asterisk.cjs +6 -6
  20. package/dist/private/Asterisk.css +4 -4
  21. package/dist/private/Asterisk.mjs +6 -6
  22. package/dist/private/Avatar.cjs +16 -16
  23. package/dist/private/Avatar.css +16 -16
  24. package/dist/private/Avatar.mjs +16 -16
  25. package/dist/private/AvatarGroup.cjs +120 -120
  26. package/dist/private/AvatarGroup.css +31 -31
  27. package/dist/private/AvatarGroup.mjs +120 -120
  28. package/dist/private/Badge.cjs +197 -197
  29. package/dist/private/Badge.css +125 -125
  30. package/dist/private/Badge.mjs +197 -197
  31. package/dist/private/Breadcrumbs.cjs +234 -234
  32. package/dist/private/Breadcrumbs.css +100 -100
  33. package/dist/private/Breadcrumbs.mjs +234 -234
  34. package/dist/private/Button.cjs +335 -326
  35. package/dist/private/Button.cjs.map +1 -1
  36. package/dist/private/Button.css +176 -172
  37. package/dist/private/Button.css.map +1 -1
  38. package/dist/private/Button.mjs +335 -326
  39. package/dist/private/Button.mjs.map +1 -1
  40. package/dist/private/ButtonGroup.cjs +21 -21
  41. package/dist/private/ButtonGroup.css +16 -16
  42. package/dist/private/ButtonGroup.mjs +21 -21
  43. package/dist/private/Calendar.cjs +232 -232
  44. package/dist/private/Calendar.css +149 -149
  45. package/dist/private/Calendar.mjs +232 -232
  46. package/dist/private/Card.cjs +309 -309
  47. package/dist/private/Card.css +206 -206
  48. package/dist/private/Card.mjs +309 -309
  49. package/dist/private/CardView.cjs +17 -17
  50. package/dist/private/CardView.css +17 -17
  51. package/dist/private/CardView.mjs +17 -17
  52. package/dist/private/CenterBaseline.cjs +1 -1
  53. package/dist/private/CenterBaseline.css +2 -2
  54. package/dist/private/CenterBaseline.mjs +1 -1
  55. package/dist/private/Checkbox.cjs +188 -188
  56. package/dist/private/Checkbox.css +110 -110
  57. package/dist/private/Checkbox.mjs +188 -188
  58. package/dist/private/CheckboxGroup.cjs +43 -43
  59. package/dist/private/CheckboxGroup.css +37 -37
  60. package/dist/private/CheckboxGroup.mjs +43 -43
  61. package/dist/private/Checkmark.cjs +12 -12
  62. package/dist/private/Checkmark.css +8 -8
  63. package/dist/private/Checkmark.mjs +12 -12
  64. package/dist/private/Chevron.cjs +12 -12
  65. package/dist/private/Chevron.css +10 -10
  66. package/dist/private/Chevron.mjs +12 -12
  67. package/dist/private/ClearButton.cjs +30 -30
  68. package/dist/private/ClearButton.css +30 -30
  69. package/dist/private/ClearButton.mjs +30 -30
  70. package/dist/private/CloseButton.cjs +52 -52
  71. package/dist/private/CloseButton.css +46 -46
  72. package/dist/private/CloseButton.mjs +52 -52
  73. package/dist/private/ColorArea.cjs +16 -16
  74. package/dist/private/ColorArea.css +16 -16
  75. package/dist/private/ColorArea.mjs +16 -16
  76. package/dist/private/ColorField.cjs +31 -31
  77. package/dist/private/ColorField.css +27 -27
  78. package/dist/private/ColorField.mjs +31 -31
  79. package/dist/private/ColorHandle.cjs +27 -27
  80. package/dist/private/ColorHandle.css +42 -42
  81. package/dist/private/ColorHandle.mjs +27 -27
  82. package/dist/private/ColorSlider.cjs +108 -108
  83. package/dist/private/ColorSlider.css +52 -52
  84. package/dist/private/ColorSlider.mjs +108 -108
  85. package/dist/private/ColorSwatch.cjs +29 -29
  86. package/dist/private/ColorSwatch.css +29 -29
  87. package/dist/private/ColorSwatch.mjs +29 -29
  88. package/dist/private/ColorSwatchPicker.cjs +29 -29
  89. package/dist/private/ColorSwatchPicker.css +48 -48
  90. package/dist/private/ColorSwatchPicker.mjs +29 -29
  91. package/dist/private/ColorWheel.cjs +26 -26
  92. package/dist/private/ColorWheel.css +17 -17
  93. package/dist/private/ColorWheel.mjs +26 -26
  94. package/dist/private/ComboBox.cjs +381 -381
  95. package/dist/private/ComboBox.css +188 -188
  96. package/dist/private/ComboBox.mjs +381 -381
  97. package/dist/private/ContextualHelp.cjs +5 -5
  98. package/dist/private/ContextualHelp.css +50 -50
  99. package/dist/private/ContextualHelp.mjs +5 -5
  100. package/dist/private/CornerTriangle.cjs +8 -8
  101. package/dist/private/CornerTriangle.css +6 -6
  102. package/dist/private/CornerTriangle.mjs +8 -8
  103. package/dist/private/Cross.cjs +14 -14
  104. package/dist/private/Cross.css +10 -10
  105. package/dist/private/Cross.mjs +14 -14
  106. package/dist/private/CustomDialog.cjs +25 -25
  107. package/dist/private/CustomDialog.css +25 -25
  108. package/dist/private/CustomDialog.mjs +25 -25
  109. package/dist/private/Dash.cjs +10 -10
  110. package/dist/private/Dash.css +6 -6
  111. package/dist/private/Dash.mjs +10 -10
  112. package/dist/private/DateField.cjs +73 -73
  113. package/dist/private/DateField.css +77 -77
  114. package/dist/private/DateField.mjs +73 -73
  115. package/dist/private/DatePicker.cjs +172 -172
  116. package/dist/private/DatePicker.css +128 -128
  117. package/dist/private/DatePicker.mjs +172 -172
  118. package/dist/private/DateRangePicker.cjs +55 -55
  119. package/dist/private/DateRangePicker.css +59 -59
  120. package/dist/private/DateRangePicker.mjs +55 -55
  121. package/dist/private/Dialog.cjs +17 -17
  122. package/dist/private/Dialog.css +70 -70
  123. package/dist/private/Dialog.mjs +17 -17
  124. package/dist/private/Disclosure.cjs +119 -119
  125. package/dist/private/Disclosure.css +112 -112
  126. package/dist/private/Disclosure.mjs +119 -119
  127. package/dist/private/Divider.cjs +25 -25
  128. package/dist/private/Divider.css +25 -25
  129. package/dist/private/Divider.mjs +25 -25
  130. package/dist/private/DragHandle.cjs +8 -8
  131. package/dist/private/DragHandle.css +6 -6
  132. package/dist/private/DragHandle.mjs +8 -8
  133. package/dist/private/DragPreview.cjs +154 -154
  134. package/dist/private/DragPreview.css +106 -106
  135. package/dist/private/DragPreview.mjs +154 -154
  136. package/dist/private/DropZone.cjs +61 -61
  137. package/dist/private/DropZone.css +57 -57
  138. package/dist/private/DropZone.mjs +61 -61
  139. package/dist/private/Field.cjs +360 -360
  140. package/dist/private/Field.cjs.map +1 -1
  141. package/dist/private/Field.css +160 -160
  142. package/dist/private/Field.mjs +360 -360
  143. package/dist/private/Field.mjs.map +1 -1
  144. package/dist/private/Form.cjs +9 -9
  145. package/dist/private/Form.css +9 -9
  146. package/dist/private/Form.mjs +9 -9
  147. package/dist/private/FullscreenDialog.cjs +5 -5
  148. package/dist/private/FullscreenDialog.css +78 -78
  149. package/dist/private/FullscreenDialog.mjs +5 -5
  150. package/dist/private/IllustratedMessage.cjs +228 -228
  151. package/dist/private/IllustratedMessage.css +72 -72
  152. package/dist/private/IllustratedMessage.mjs +228 -228
  153. package/dist/private/Image.cjs +14 -14
  154. package/dist/private/Image.css +14 -14
  155. package/dist/private/Image.mjs +14 -14
  156. package/dist/private/InlineAlert.cjs +100 -100
  157. package/dist/private/InlineAlert.css +76 -76
  158. package/dist/private/InlineAlert.mjs +100 -100
  159. package/dist/private/LabeledValue.cjs +134 -134
  160. package/dist/private/LabeledValue.css +63 -63
  161. package/dist/private/LabeledValue.mjs +134 -134
  162. package/dist/private/Link.cjs +49 -49
  163. package/dist/private/Link.css +41 -41
  164. package/dist/private/Link.mjs +49 -49
  165. package/dist/private/LinkOut.cjs +8 -8
  166. package/dist/private/LinkOut.css +8 -8
  167. package/dist/private/LinkOut.mjs +8 -8
  168. package/dist/private/ListView.cjs +245 -245
  169. package/dist/private/ListView.css +177 -177
  170. package/dist/private/ListView.mjs +245 -245
  171. package/dist/private/Menu.cjs +446 -446
  172. package/dist/private/Menu.css +196 -196
  173. package/dist/private/Menu.mjs +446 -446
  174. package/dist/private/Meter.cjs +153 -153
  175. package/dist/private/Meter.css +91 -91
  176. package/dist/private/Meter.mjs +153 -153
  177. package/dist/private/Modal.cjs +74 -74
  178. package/dist/private/Modal.css +59 -59
  179. package/dist/private/Modal.mjs +74 -74
  180. package/dist/private/NotificationBadge.cjs +56 -56
  181. package/dist/private/NotificationBadge.css +49 -49
  182. package/dist/private/NotificationBadge.mjs +56 -56
  183. package/dist/private/NumberField.cjs +114 -114
  184. package/dist/private/NumberField.css +99 -99
  185. package/dist/private/NumberField.mjs +114 -114
  186. package/dist/private/Picker.cjs +275 -275
  187. package/dist/private/Picker.css +173 -173
  188. package/dist/private/Picker.mjs +275 -275
  189. package/dist/private/Popover.cjs +95 -95
  190. package/dist/private/Popover.css +75 -75
  191. package/dist/private/Popover.mjs +95 -95
  192. package/dist/private/ProgressBar.cjs +163 -163
  193. package/dist/private/ProgressBar.css +99 -99
  194. package/dist/private/ProgressBar.mjs +163 -163
  195. package/dist/private/ProgressCircle.cjs +31 -31
  196. package/dist/private/ProgressCircle.css +24 -24
  197. package/dist/private/ProgressCircle.mjs +31 -31
  198. package/dist/private/Provider.cjs +19 -19
  199. package/dist/private/Provider.css +15 -15
  200. package/dist/private/Provider.mjs +19 -19
  201. package/dist/private/RadioGroup.cjs +208 -208
  202. package/dist/private/RadioGroup.css +113 -113
  203. package/dist/private/RadioGroup.mjs +208 -208
  204. package/dist/private/RangeCalendar.cjs +16 -16
  205. package/dist/private/RangeCalendar.css +17 -17
  206. package/dist/private/RangeCalendar.mjs +16 -16
  207. package/dist/private/SearchField.cjs +41 -41
  208. package/dist/private/SearchField.css +45 -45
  209. package/dist/private/SearchField.mjs +41 -41
  210. package/dist/private/SegmentedControl.cjs +178 -178
  211. package/dist/private/SegmentedControl.css +123 -123
  212. package/dist/private/SegmentedControl.mjs +178 -178
  213. package/dist/private/SelectBoxGroup.cjs +142 -142
  214. package/dist/private/SelectBoxGroup.css +120 -120
  215. package/dist/private/SelectBoxGroup.mjs +142 -142
  216. package/dist/private/Slider.cjs +292 -292
  217. package/dist/private/Slider.css +159 -159
  218. package/dist/private/Slider.mjs +292 -292
  219. package/dist/private/StatusLight.cjs +115 -115
  220. package/dist/private/StatusLight.css +59 -59
  221. package/dist/private/StatusLight.mjs +115 -115
  222. package/dist/private/Switch.cjs +171 -171
  223. package/dist/private/Switch.css +85 -85
  224. package/dist/private/Switch.mjs +171 -171
  225. package/dist/private/TableView.cjs +540 -540
  226. package/dist/private/TableView.css +290 -290
  227. package/dist/private/TableView.mjs +540 -540
  228. package/dist/private/Tabs.cjs +123 -123
  229. package/dist/private/Tabs.css +105 -105
  230. package/dist/private/Tabs.mjs +123 -123
  231. package/dist/private/TabsPicker.cjs +127 -127
  232. package/dist/private/TabsPicker.css +108 -108
  233. package/dist/private/TabsPicker.mjs +127 -127
  234. package/dist/private/TagGroup.cjs +203 -203
  235. package/dist/private/TagGroup.css +146 -146
  236. package/dist/private/TagGroup.mjs +203 -203
  237. package/dist/private/TextField.cjs +58 -58
  238. package/dist/private/TextField.css +54 -54
  239. package/dist/private/TextField.mjs +58 -58
  240. package/dist/private/TimeField.cjs +51 -51
  241. package/dist/private/TimeField.css +47 -47
  242. package/dist/private/TimeField.mjs +51 -51
  243. package/dist/private/Toast.cjs +120 -120
  244. package/dist/private/Toast.css +110 -110
  245. package/dist/private/Toast.mjs +120 -120
  246. package/dist/private/ToggleButton.cjs +16 -16
  247. package/dist/private/ToggleButton.css +23 -23
  248. package/dist/private/ToggleButton.mjs +16 -16
  249. package/dist/private/Tooltip.cjs +86 -86
  250. package/dist/private/Tooltip.css +70 -70
  251. package/dist/private/Tooltip.mjs +86 -86
  252. package/dist/private/TreeView.cjs +229 -229
  253. package/dist/private/TreeView.css +184 -184
  254. package/dist/private/TreeView.mjs +229 -229
  255. package/dist/private/dnd-utils.cjs +42 -42
  256. package/dist/private/dnd-utils.css +39 -39
  257. package/dist/private/dnd-utils.mjs +42 -42
  258. package/icons/Icon.cjs +10 -10
  259. package/icons/Icon.css +9 -9
  260. package/icons/Icon.mjs +10 -10
  261. package/icons/Skeleton.cjs +2 -2
  262. package/icons/Skeleton.cjs.map +1 -1
  263. package/icons/Skeleton.css +6 -6
  264. package/icons/Skeleton.mjs +2 -2
  265. package/icons/Skeleton.mjs.map +1 -1
  266. package/package.json +2 -2
  267. package/src/Button.tsx +12 -2
  268. package/style/__tests__/style-macro.test.js +73 -71
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Field.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport AlertIcon from '../s2wf-icons/S2_Icon_AlertTriangle_20_N.svg';\nimport {Alignment, DOMRef, NecessityIndicator} from '@react-types/shared';\nimport AsteriskIcon from '../ui-icons/Asterisk';\nimport {baseColor, focusRing, fontRelative, style} from '../style' with {type: 'macro'};\nimport {CenterBaseline, centerBaseline, centerBaselineBefore} from './CenterBaseline';\nimport {composeRenderProps} from 'react-aria-components/composeRenderProps';\nimport {ContextualHelpContext} from './ContextualHelp';\nimport {\n control,\n controlFont,\n fieldInput,\n fieldLabel,\n StyleProps,\n UnsafeStyles\n} from './style-utils' with {type: 'macro'};\nimport {FieldError, FieldErrorProps} from 'react-aria-components/FieldError';\nimport {ForwardedRef, forwardRef, ReactNode, useContext} from 'react';\nimport {getEventTarget} from 'react-aria/private/utils/shadowdom/DOMFunctions';\nimport {Group, GroupProps} from 'react-aria-components/Group';\nimport {IconContext} from './Icon';\nimport {\n InputContext,\n Input as RACInput,\n InputProps as RACInputProps\n} from 'react-aria-components/Input';\nimport intlMessages from '../intl/*.json';\nimport {Label, LabelProps} from 'react-aria-components/Label';\nimport {mergeStyles} from '../style/runtime';\nimport {Provider} from 'react-aria-components/slots';\nimport {StyleString} from '../style/types';\nimport {Text} from 'react-aria-components/Text';\nimport {useDOMRef} from './useDOMRef';\nimport {useId} from 'react-aria/useId';\nimport {useLocalizedStringFormatter} from 'react-aria/useLocalizedStringFormatter';\n\ninterface FieldLabelProps\n extends Omit<LabelProps, 'className' | 'style' | 'render' | 'children'>, StyleProps {\n isDisabled?: boolean;\n isRequired?: boolean;\n size?: 'S' | 'M' | 'L' | 'XL';\n necessityIndicator?: NecessityIndicator;\n labelAlign?: Alignment;\n labelPosition?: 'top' | 'side';\n includeNecessityIndicatorInAccessibilityName?: boolean;\n staticColor?: 'white' | 'black' | 'auto';\n contextualHelp?: ReactNode;\n isQuiet?: boolean;\n children?: ReactNode;\n}\n\nexport const FieldLabel = forwardRef(function FieldLabel(\n props: FieldLabelProps,\n ref: DOMRef<HTMLLabelElement>\n) {\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n let {\n isDisabled,\n isRequired,\n size = 'M',\n necessityIndicator = 'icon',\n includeNecessityIndicatorInAccessibilityName = false,\n labelAlign,\n labelPosition,\n staticColor,\n contextualHelp,\n isQuiet,\n UNSAFE_style,\n UNSAFE_className = '',\n ...labelProps\n } = props;\n\n let domRef = useDOMRef(ref);\n let contextualHelpId = useId();\n let fallbackLabelPropsId = useId();\n if (contextualHelp && !labelProps.id) {\n labelProps.id = fallbackLabelPropsId;\n }\n\n if (!props.children) {\n return null;\n }\n\n return (\n <div\n className={style({\n gridArea: 'label',\n display: 'inline',\n textAlign: {\n labelAlign: {\n start: 'start',\n end: 'end'\n }\n },\n paddingBottom: {\n labelPosition: {\n top: '--field-gap'\n }\n },\n contain: {\n labelPosition: {\n top: 'inline-size'\n },\n isQuiet: 'none'\n }\n })({labelAlign, labelPosition, isQuiet})}>\n <Label\n {...labelProps}\n ref={domRef}\n style={UNSAFE_style}\n className={\n UNSAFE_className +\n mergeStyles(\n style(fieldLabel())({labelPosition, isDisabled, size, isStaticColor: !!staticColor}),\n props.styles\n )\n }>\n {props.children}\n {(isRequired || necessityIndicator === 'label') && (\n <span className={style({whiteSpace: 'nowrap'})}>\n &nbsp;\n {necessityIndicator === 'icon' && (\n <AsteriskIcon\n size={size === 'S' ? 'M' : size}\n className={style({\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n })}\n aria-label={\n includeNecessityIndicatorInAccessibilityName\n ? stringFormatter.format('label.(required)')\n : undefined\n }\n aria-hidden={!includeNecessityIndicatorInAccessibilityName}\n />\n )}\n {necessityIndicator === 'label' && (\n /* The necessity label is hidden to screen readers if the field is required because\n * aria-required is set on the field in that case. That will already be announced,\n * so no need to duplicate it here. If optional, we do want it to be announced here.\n */\n <span\n aria-hidden={\n !includeNecessityIndicatorInAccessibilityName ? isRequired : undefined\n }>\n {isRequired\n ? stringFormatter.format('label.(required)')\n : stringFormatter.format('label.(optional)')}\n </span>\n )}\n </span>\n )}\n </Label>\n {contextualHelp && (\n <span className={style({whiteSpace: 'nowrap'})}>\n &nbsp;\n <CenterBaseline\n styles={style({\n display: 'inline-flex',\n height: 0\n })}>\n <ContextualHelpContext.Provider\n value={{\n id: contextualHelpId,\n 'aria-labelledby': labelProps?.id\n ? `${labelProps.id} ${contextualHelpId}`\n : undefined,\n size: size === 'L' || size === 'XL' ? 'S' : 'XS'\n }}>\n {contextualHelp}\n </ContextualHelpContext.Provider>\n </CenterBaseline>\n </span>\n )}\n </div>\n );\n});\n\ninterface FieldGroupProps\n extends Omit<GroupProps, 'className' | 'style' | 'render' | 'children' | 'prefix'>, UnsafeStyles {\n size?: 'S' | 'M' | 'L' | 'XL';\n children: ReactNode;\n styles?: StyleString;\n shouldTurnOffFocusRing?: boolean;\n prefix?: ReactNode;\n}\n\nconst fieldGroupStyles = style({\n ...focusRing(),\n ...control({shape: 'default'}),\n ...fieldInput(),\n borderWidth: 2,\n borderStyle: 'solid',\n transition: 'default',\n borderColor: {\n default: baseColor('gray-300'),\n forcedColors: 'ButtonBorder',\n isInvalid: {\n default: baseColor('negative'),\n forcedColors: 'Mark'\n },\n isFocusWithin: {\n default: 'gray-900',\n isInvalid: 'negative-1000',\n forcedColors: 'Highlight'\n },\n isDisabled: {\n default: 'disabled',\n forcedColors: 'GrayText'\n }\n },\n backgroundColor: {\n default: 'gray-25',\n forcedColors: 'Field'\n },\n color: {\n default: baseColor('neutral'),\n forcedColors: 'ButtonText',\n isDisabled: {\n default: 'disabled',\n forcedColors: 'GrayText'\n }\n },\n cursor: {\n default: 'text',\n isDisabled: 'default'\n }\n});\n\nexport const FieldGroup = forwardRef(function FieldGroup(\n props: FieldGroupProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n let {children, prefix, shouldTurnOffFocusRing, ...otherProps} = props;\n let ctx = useContext(InputContext);\n let prefixId = useId();\n let newAriaLabelledby = ctx?.['aria-labelledby'];\n if (prefix) {\n newAriaLabelledby = newAriaLabelledby ? `${newAriaLabelledby} ${prefixId}` : prefixId;\n }\n return (\n <Group\n ref={ref}\n {...otherProps}\n onPointerDown={e => {\n // Forward focus to input element when clicking on a non-interactive child (e.g. icon or padding)\n if (\n e.pointerType === 'mouse' &&\n !(getEventTarget(e) as Element).closest('button,input,textarea,[role=\"button\"]')\n ) {\n e.preventDefault();\n (e.currentTarget.querySelector('input, textarea') as HTMLElement)?.focus();\n }\n }}\n onTouchEnd={e => {\n let target = getEventTarget(e) as HTMLElement;\n if (!target.isContentEditable && !target.closest('button,input,textarea,[role=\"button\"]')) {\n e.preventDefault();\n (e.currentTarget.querySelector('input, textarea') as HTMLElement)?.focus();\n }\n }}\n style={props.UNSAFE_style}\n className={renderProps =>\n (props.UNSAFE_className || '') +\n ' ' +\n centerBaselineBefore +\n mergeStyles(\n fieldGroupStyles({\n ...renderProps,\n isFocusWithin: shouldTurnOffFocusRing ? false : renderProps.isFocusWithin,\n isFocusVisible: shouldTurnOffFocusRing ? false : renderProps.isFocusVisible,\n size: props.size || 'M'\n }),\n props.styles\n )\n }>\n {props.prefix ? (\n <Provider\n values={[\n [\n IconContext,\n {\n styles: style({\n size: fontRelative(20),\n '--iconPrimary': {type: 'fill', value: 'currentColor'}\n })\n }\n ]\n ]}>\n <CenterBaseline\n id={prefixId}\n styles={style({\n color: 'gray-600',\n flexShrink: 0,\n marginEnd: 'text-to-visual'\n })}>\n {props.prefix}\n </CenterBaseline>\n </Provider>\n ) : null}\n <InputContext.Consumer>\n {ctx => (\n <InputContext.Provider value={{...ctx, 'aria-labelledby': newAriaLabelledby}}>\n {children}\n </InputContext.Provider>\n )}\n </InputContext.Consumer>\n </Group>\n );\n});\n\nexport interface InputProps\n extends Omit<RACInputProps, 'className' | 'style' | 'render'>, StyleProps {}\n\nexport const Input = forwardRef(function Input(\n props: InputProps,\n ref: ForwardedRef<HTMLInputElement>\n) {\n let {UNSAFE_className = '', UNSAFE_style, styles, ...otherProps} = props;\n return (\n <RACInput\n {...otherProps}\n ref={ref}\n style={UNSAFE_style}\n className={\n UNSAFE_className +\n mergeStyles(\n style({\n padding: 0,\n backgroundColor: 'transparent',\n color: {\n default: 'inherit',\n '::placeholder': {\n default: 'gray-600',\n forcedColors: 'GrayText'\n }\n },\n fontFamily: 'inherit',\n fontSize: 'inherit',\n fontWeight: 'inherit',\n flexGrow: 1,\n flexShrink: 1,\n minWidth: 0,\n width: 'full',\n outlineStyle: 'none',\n borderStyle: 'none',\n truncate: true\n }),\n styles\n )\n }\n />\n );\n});\n\ninterface HelpTextProps extends FieldErrorProps {\n size?: 'XS' | 'S' | 'M' | 'L' | 'XL';\n isDisabled?: boolean;\n isInvalid?: boolean; // TODO: export FieldErrorContext from RAC to get this.\n description?: ReactNode;\n showErrorIcon?: boolean;\n styles?: StyleString;\n}\n\nexport const helpTextStyles = style({\n gridArea: 'helptext',\n display: 'flex',\n alignItems: 'baseline',\n gap: 'text-to-visual',\n font: controlFont(),\n color: {\n default: 'neutral-subdued',\n isInvalid: {\n default: 'negative',\n forcedColors: 'Mark'\n },\n isDisabled: {\n default: 'disabled',\n forcedColors: 'GrayText'\n }\n },\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n },\n contain: 'inline-size',\n paddingTop: '--field-gap',\n cursor: {\n default: 'text',\n isDisabled: 'default'\n }\n});\n\nexport function HelpText(\n props: HelpTextProps & {\n descriptionRef?: DOMRef<HTMLDivElement>;\n errorRef?: DOMRef<HTMLDivElement>;\n }\n): ReactNode {\n let domDescriptionRef = useDOMRef(props.descriptionRef || null);\n let domErrorRef = useDOMRef(props.errorRef || null);\n\n if (!props.isInvalid && props.description) {\n return (\n <Text\n slot=\"description\"\n ref={domDescriptionRef}\n className={mergeStyles(\n helpTextStyles({size: props.size || 'M', isDisabled: props.isDisabled}),\n props.styles\n )}>\n {props.description}\n </Text>\n );\n }\n\n if (!props.isInvalid) {\n return null;\n }\n\n return (\n <FieldError\n {...props}\n ref={domErrorRef}\n className={renderProps =>\n mergeStyles(\n helpTextStyles({...renderProps, size: props.size || 'M', isDisabled: props.isDisabled}),\n props.styles\n )\n }>\n {composeRenderProps(props.children, (children, {validationErrors}) => (\n <>\n {props.showErrorIcon && (\n <CenterBaseline>\n <AlertIcon\n // @ts-ignore - ts doesn't know that AlertIcon is an icon and not a raw SVG\n styles={style({\n size: {\n size: {\n XS: 14,\n S: 16,\n M: 20,\n L: 22,\n XL: 26\n }\n }\n })({size: props.size || 'M'})}\n />\n </CenterBaseline>\n )}\n <span>{children || validationErrors.join(' ')}</span>\n </>\n ))}\n </FieldError>\n );\n}\n\nexport function FieldErrorIcon(props: {isDisabled?: boolean}): ReactNode {\n return (\n <Provider\n values={[\n [\n IconContext,\n {\n render: centerBaseline({\n slot: 'icon',\n styles: style({\n order: 0,\n flexShrink: 0,\n '--iconPrimary': {\n type: 'fill',\n value: {\n default: 'negative',\n forcedColors: 'Mark'\n }\n }\n })\n }),\n styles: style({\n size: fontRelative(20),\n marginStart: 'text-to-visual',\n marginEnd: fontRelative(-2),\n flexShrink: 0\n })\n }\n ]\n ]}>\n {!props.isDisabled && <AlertIcon />}\n </Provider>\n );\n}\n"],"names":[],"version":3,"file":"Field.cjs.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;;;;;;;;;;;AAoDM,MAAM,0DAAa,CAAA,GAAA,uBAAS,EAAE,SAAS,WAC5C,KAAsB,EACtB,GAA6B;IAE7B,IAAI,kBAAkB,CAAA,GAAA,uEAA0B,EAAE,CAAA,GAAA,mDAAW,GAAG;IAChE,IAAI,cACF,UAAU,cACV,UAAU,QACV,OAAO,yBACP,qBAAqB,sDACrB,+CAA+C,mBAC/C,UAAU,iBACV,aAAa,eACb,WAAW,kBACX,cAAc,WACd,OAAO,gBACP,YAAY,oBACZ,mBAAmB,IACnB,GAAG,YACJ,GAAG;IAEJ,IAAI,SAAS,CAAA,GAAA,mCAAQ,EAAE;IACvB,IAAI,mBAAmB,CAAA,GAAA,2BAAI;IAC3B,IAAI,uBAAuB,CAAA,GAAA,2BAAI;IAC/B,IAAI,kBAAkB,CAAC,WAAW,EAAE,EAClC,WAAW,EAAE,GAAG;IAGlB,IAAI,CAAC,MAAM,QAAQ,EACjB,OAAO;IAGT,qBACE,iCAAC;QACC,WAAW;;;;;;;;;;;;;UAoBR;wBAAC;2BAAY;qBAAe;QAAO;;0BACtC,iCAAC,CAAA,GAAA,qCAAI;gBACF,GAAG,UAAU;gBACd,KAAK;gBACL,OAAO;gBACP,WACE,mBACA,CAAA,GAAA,qCAAU,EACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAoB;mCAAC;gCAAe;0BAAY;oBAAM,eAAe,CAAC,CAAC;gBAAW,IAClF,MAAM,MAAM;;oBAGf,MAAM,QAAQ;oBACb,CAAA,cAAc,uBAAuB,OAAM,mBAC3C,iCAAC;wBAAK,SAAS;;4BAAiC;4BAE7C,uBAAuB,wBACtB,gCAAC,CAAA,GAAA,iCAAW;gCACV,MAAM,SAAS,MAAM,MAAM;gCAC3B,SAAS;gCAMT,cACE,+CACI,gBAAgB,MAAM,CAAC,sBACvB;gCAEN,eAAa,CAAC;;4BAGjB,uBAAuB,WACtB;;;eAGC,iBACD,gCAAC;gCACC,eACE,CAAC,+CAA+C,aAAa;0CAE9D,aACG,gBAAgB,MAAM,CAAC,sBACvB,gBAAgB,MAAM,CAAC;;;;;;YAMpC,gCACC,iCAAC;gBAAK,SAAS;;oBAAiC;kCAE9C,gCAAC,CAAA,GAAA,wCAAa;wBACZ,MAAM;kCAIN,cAAA,gCAAC,CAAA,GAAA,+CAAoB,EAAE,QAAQ;4BAC7B,OAAO;gCACL,IAAI;gCACJ,mBAAmB,YAAY,KAC3B,GAAG,WAAW,EAAE,CAAC,CAAC,EAAE,kBAAkB,GACtC;gCACJ,MAAM,SAAS,OAAO,SAAS,OAAO,MAAM;4BAC9C;sCACC;;;;;;;AAOf;AAWA,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CC,MAAM,0DAAa,CAAA,GAAA,uBAAS,EAAE,SAAS,WAC5C,KAAsB,EACtB,GAAiC;IAEjC,IAAI,YAAC,QAAQ,UAAE,MAAM,0BAAE,sBAAsB,EAAE,GAAG,YAAW,GAAG;IAChE,IAAI,MAAM,CAAA,GAAA,uBAAS,EAAE,CAAA,GAAA,4CAAW;IAChC,IAAI,WAAW,CAAA,GAAA,2BAAI;IACnB,IAAI,oBAAoB,KAAK,CAAC,kBAAkB;IAChD,IAAI,QACF,oBAAoB,oBAAoB,GAAG,kBAAkB,CAAC,EAAE,UAAU,GAAG;IAE/E,qBACE,iCAAC,CAAA,GAAA,qCAAI;QACH,KAAK;QACJ,GAAG,UAAU;QACd,eAAe,CAAA;YACb,iGAAiG;YACjG,IACE,EAAE,WAAW,KAAK,WAClB,CAAC,AAAC,CAAA,GAAA,gEAAa,EAAE,GAAe,OAAO,CAAC,0CACxC;gBACA,EAAE,cAAc;gBACf,EAAE,aAAa,CAAC,aAAa,CAAC,oBAAoC;YACrE;QACF;QACA,YAAY,CAAA;YACV,IAAI,SAAS,CAAA,GAAA,gEAAa,EAAE;YAC5B,IAAI,CAAC,OAAO,iBAAiB,IAAI,CAAC,OAAO,OAAO,CAAC,0CAA0C;gBACzF,EAAE,cAAc;gBACf,EAAE,aAAa,CAAC,aAAa,CAAC,oBAAoC;YACrE;QACF;QACA,OAAO,MAAM,YAAY;QACzB,WAAW,CAAA,cACT,AAAC,CAAA,MAAM,gBAAgB,IAAI,EAAC,IAC5B,MACA,CAAA,GAAA,8CAAmB,IACnB,CAAA,GAAA,qCAAU,EACR,uCAAiB;gBACf,GAAG,WAAW;gBACd,eAAe,yBAAyB,QAAQ,YAAY,aAAa;gBACzE,gBAAgB,yBAAyB,QAAQ,YAAY,cAAc;gBAC3E,MAAM,MAAM,IAAI,IAAI;YACtB,IACA,MAAM,MAAM;;YAGf,MAAM,MAAM,iBACX,gCAAC,CAAA,GAAA,wCAAO;gBACN,QAAQ;oBACN;wBACE,CAAA,GAAA,qCAAU;wBACV;4BACE,MAAM;wBAIR;qBACD;iBACF;0BACD,cAAA,gCAAC,CAAA,GAAA,wCAAa;oBACZ,IAAI;oBACJ,MAAM;8BAKL,MAAM,MAAM;;iBAGf;0BACJ,gCAAC,CAAA,GAAA,4CAAW,EAAE,QAAQ;0BACnB,CAAA,oBACC,gCAAC,CAAA,GAAA,4CAAW,EAAE,QAAQ;wBAAC,OAAO;4BAAC,GAAG,GAAG;4BAAE,mBAAmB;wBAAiB;kCACxE;;;;;AAMb;AAKO,MAAM,0DAAQ,CAAA,GAAA,uBAAS,EAAE,SAAS,MACvC,KAAiB,EACjB,GAAmC;IAEnC,IAAI,oBAAC,mBAAmB,kBAAI,YAAY,UAAE,MAAM,EAAE,GAAG,YAAW,GAAG;IACnE,qBACE,gCAAC,CAAA,GAAA,qCAAO;QACL,GAAG,UAAU;QACd,KAAK;QACL,OAAO;QACP,WACE,mBACA,CAAA,GAAA,qCAAU,mLAsBR;;AAKV;AAWO,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BN,SAAS,0CACd,MAGC;IAED,IAAI,oBAAoB,CAAA,GAAA,mCAAQ,EAAE,OAAM,cAAc,IAAI;IAC1D,IAAI,cAAc,CAAA,GAAA,mCAAQ,EAAE,OAAM,QAAQ,IAAI;IAE9C,IAAI,CAAC,OAAM,SAAS,IAAI,OAAM,WAAW,EACvC,qBACE,gCAAC,CAAA,GAAA,mCAAG;QACF,MAAK;QACL,KAAK;QACL,WAAW,CAAA,GAAA,qCAAU,EACnB,0CAAe;YAAC,MAAM,OAAM,IAAI,IAAI;YAAK,YAAY,OAAM,UAAU;QAAA,IACrE,OAAM,MAAM;kBAEb,OAAM,WAAW;;IAKxB,IAAI,CAAC,OAAM,SAAS,EAClB,OAAO;IAGT,qBACE,gCAAC,CAAA,GAAA,+CAAS;QACP,GAAG,MAAK;QACT,KAAK;QACL,WAAW,CAAA,cACT,CAAA,GAAA,qCAAU,EACR,0CAAe;gBAAC,GAAG,WAAW;gBAAE,MAAM,OAAM,IAAI,IAAI;gBAAK,YAAY,OAAM,UAAU;YAAA,IACrF,OAAM,MAAM;kBAGf,CAAA,GAAA,+DAAiB,EAAE,OAAM,QAAQ,EAAE,CAAC,UAAU,oBAAC,gBAAgB,EAAC,iBAC/D;;oBACG,OAAM,aAAa,kBAClB,gCAAC,CAAA,GAAA,wCAAa;kCACZ,cAAA,gCAAC,CAAA,GAAA,iCAAQ;4BACP,2EAA2E;4BAC3E,QAAQ;;;;;;;;;;;;;8BAUL;gCAAC,MAAM,OAAM,IAAI,IAAI;4BAAG;;;kCAIjC,gCAAC;kCAAM,YAAY,iBAAiB,IAAI,CAAC;;;;;AAKnD;AAEO,SAAS,0CAAe,KAA6B;IAC1D,qBACE,gCAAC,CAAA,GAAA,wCAAO;QACN,QAAQ;YACN;gBACE,CAAA,GAAA,qCAAU;gBACV;oBACE,QAAQ,CAAA,GAAA,wCAAa,EAAE;wBACrB,MAAM;wBACN,MAAM;oBAWR;oBACA,MAAM;gBAMR;aACD;SACF;kBACA,CAAC,MAAM,UAAU,kBAAI,gCAAC,CAAA,GAAA,iCAAQ;;AAGrC","sources":["packages/@react-spectrum/s2/src/Field.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport AlertIcon from '../s2wf-icons/S2_Icon_AlertTriangle_20_N.svg';\nimport {Alignment, DOMRef, NecessityIndicator} from '@react-types/shared';\nimport AsteriskIcon from '../ui-icons/Asterisk';\nimport {baseColor, focusRing, fontRelative, style} from '../style' with {type: 'macro'};\nimport {CenterBaseline, centerBaseline, centerBaselineBefore} from './CenterBaseline';\nimport {composeRenderProps} from 'react-aria-components/composeRenderProps';\nimport {ContextualHelpContext} from './ContextualHelp';\nimport {\n control,\n controlFont,\n fieldInput,\n fieldLabel,\n StyleProps,\n UnsafeStyles\n} from './style-utils' with {type: 'macro'};\nimport {FieldError, FieldErrorProps} from 'react-aria-components/FieldError';\nimport {ForwardedRef, forwardRef, ReactNode, useContext} from 'react';\nimport {getEventTarget} from 'react-aria/private/utils/shadowdom/DOMFunctions';\nimport {Group, GroupProps} from 'react-aria-components/Group';\nimport {IconContext} from './Icon';\nimport {\n InputContext,\n Input as RACInput,\n InputProps as RACInputProps\n} from 'react-aria-components/Input';\nimport intlMessages from '../intl/*.json';\nimport {Label, LabelProps} from 'react-aria-components/Label';\nimport {mergeStyles} from '../style/runtime';\nimport {Provider} from 'react-aria-components/slots';\nimport {StyleString} from '../style/types';\nimport {Text} from 'react-aria-components/Text';\nimport {useDOMRef} from './useDOMRef';\nimport {useId} from 'react-aria/useId';\nimport {useLocalizedStringFormatter} from 'react-aria/useLocalizedStringFormatter';\n\ninterface FieldLabelProps\n extends Omit<LabelProps, 'className' | 'style' | 'render' | 'children'>, StyleProps {\n isDisabled?: boolean;\n isRequired?: boolean;\n size?: 'S' | 'M' | 'L' | 'XL';\n necessityIndicator?: NecessityIndicator;\n labelAlign?: Alignment;\n labelPosition?: 'top' | 'side';\n includeNecessityIndicatorInAccessibilityName?: boolean;\n staticColor?: 'white' | 'black' | 'auto';\n contextualHelp?: ReactNode;\n isQuiet?: boolean;\n children?: ReactNode;\n}\n\nexport const FieldLabel = forwardRef(function FieldLabel(\n props: FieldLabelProps,\n ref: DOMRef<HTMLLabelElement>\n) {\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n let {\n isDisabled,\n isRequired,\n size = 'M',\n necessityIndicator = 'icon',\n includeNecessityIndicatorInAccessibilityName = false,\n labelAlign,\n labelPosition,\n staticColor,\n contextualHelp,\n isQuiet,\n UNSAFE_style,\n UNSAFE_className = '',\n ...labelProps\n } = props;\n\n let domRef = useDOMRef(ref);\n let contextualHelpId = useId();\n let fallbackLabelPropsId = useId();\n if (contextualHelp && !labelProps.id) {\n labelProps.id = fallbackLabelPropsId;\n }\n\n if (!props.children) {\n return null;\n }\n\n return (\n <div\n className={style({\n gridArea: 'label',\n display: 'inline',\n textAlign: {\n labelAlign: {\n start: 'start',\n end: 'end'\n }\n },\n paddingBottom: {\n labelPosition: {\n top: '--field-gap'\n }\n },\n contain: {\n labelPosition: {\n top: 'inline-size'\n },\n isQuiet: 'none'\n }\n })({labelAlign, labelPosition, isQuiet})}>\n <Label\n {...labelProps}\n ref={domRef}\n style={UNSAFE_style}\n className={\n UNSAFE_className +\n mergeStyles(\n style(fieldLabel())({labelPosition, isDisabled, size, isStaticColor: !!staticColor}),\n props.styles\n )\n }>\n {props.children}\n {(isRequired || necessityIndicator === 'label') && (\n <span className={style({whiteSpace: 'nowrap'})}>\n &nbsp;\n {necessityIndicator === 'icon' && (\n <AsteriskIcon\n size={size === 'S' ? 'M' : size}\n className={style({\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n })}\n aria-label={\n includeNecessityIndicatorInAccessibilityName\n ? stringFormatter.format('label.(required)')\n : undefined\n }\n aria-hidden={!includeNecessityIndicatorInAccessibilityName}\n />\n )}\n {necessityIndicator === 'label' && (\n /* The necessity label is hidden to screen readers if the field is required because\n * aria-required is set on the field in that case. That will already be announced,\n * so no need to duplicate it here. If optional, we do want it to be announced here.\n */\n <span\n aria-hidden={\n !includeNecessityIndicatorInAccessibilityName ? isRequired : undefined\n }>\n {isRequired\n ? stringFormatter.format('label.(required)')\n : stringFormatter.format('label.(optional)')}\n </span>\n )}\n </span>\n )}\n </Label>\n {contextualHelp && (\n <span className={style({whiteSpace: 'nowrap'})}>\n &nbsp;\n <CenterBaseline\n styles={style({\n display: 'inline-flex',\n height: 0\n })}>\n <ContextualHelpContext.Provider\n value={{\n id: contextualHelpId,\n 'aria-labelledby': labelProps?.id\n ? `${labelProps.id} ${contextualHelpId}`\n : undefined,\n size: size === 'L' || size === 'XL' ? 'S' : 'XS'\n }}>\n {contextualHelp}\n </ContextualHelpContext.Provider>\n </CenterBaseline>\n </span>\n )}\n </div>\n );\n});\n\ninterface FieldGroupProps\n extends Omit<GroupProps, 'className' | 'style' | 'render' | 'children' | 'prefix'>, UnsafeStyles {\n size?: 'S' | 'M' | 'L' | 'XL';\n children: ReactNode;\n styles?: StyleString;\n shouldTurnOffFocusRing?: boolean;\n prefix?: ReactNode;\n}\n\nconst fieldGroupStyles = style({\n ...focusRing(),\n ...control({shape: 'default'}),\n ...fieldInput(),\n borderWidth: 2,\n borderStyle: 'solid',\n transition: 'default',\n borderColor: {\n default: baseColor('gray-300'),\n forcedColors: 'ButtonBorder',\n isInvalid: {\n default: baseColor('negative'),\n forcedColors: 'Mark'\n },\n isFocusWithin: {\n default: 'gray-900',\n isInvalid: 'negative-1000',\n forcedColors: 'Highlight'\n },\n isDisabled: {\n default: 'disabled',\n forcedColors: 'GrayText'\n }\n },\n backgroundColor: {\n default: 'gray-25',\n forcedColors: 'Field'\n },\n color: {\n default: baseColor('neutral'),\n forcedColors: 'ButtonText',\n isDisabled: {\n default: 'disabled',\n forcedColors: 'GrayText'\n }\n },\n cursor: {\n default: 'text',\n isDisabled: 'default'\n }\n});\n\nexport const FieldGroup = forwardRef(function FieldGroup(\n props: FieldGroupProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n let {children, prefix, shouldTurnOffFocusRing, ...otherProps} = props;\n let ctx = useContext(InputContext);\n let prefixId = useId();\n let newAriaLabelledby = ctx?.['aria-labelledby'];\n if (prefix) {\n newAriaLabelledby = newAriaLabelledby ? `${newAriaLabelledby} ${prefixId}` : prefixId;\n }\n return (\n <Group\n ref={ref}\n {...otherProps}\n onPointerDown={e => {\n // Forward focus to input element when clicking on a non-interactive child (e.g. icon or padding)\n if (\n e.pointerType === 'mouse' &&\n !(getEventTarget(e) as Element).closest('button,input,textarea,[role=\"button\"]')\n ) {\n e.preventDefault();\n (e.currentTarget.querySelector('input, textarea') as HTMLElement)?.focus();\n }\n }}\n onTouchEnd={e => {\n let target = getEventTarget(e) as HTMLElement;\n if (!target.isContentEditable && !target.closest('button,input,textarea,[role=\"button\"]')) {\n e.preventDefault();\n (e.currentTarget.querySelector('input, textarea') as HTMLElement)?.focus();\n }\n }}\n style={props.UNSAFE_style}\n className={renderProps =>\n (props.UNSAFE_className || '') +\n ' ' +\n centerBaselineBefore +\n mergeStyles(\n fieldGroupStyles({\n ...renderProps,\n isFocusWithin: shouldTurnOffFocusRing ? false : renderProps.isFocusWithin,\n isFocusVisible: shouldTurnOffFocusRing ? false : renderProps.isFocusVisible,\n size: props.size || 'M'\n }),\n props.styles\n )\n }>\n {props.prefix ? (\n <Provider\n values={[\n [\n IconContext,\n {\n styles: style({\n size: fontRelative(20),\n '--iconPrimary': {type: 'fill', value: 'currentColor'}\n })\n }\n ]\n ]}>\n <CenterBaseline\n id={prefixId}\n styles={style({\n color: 'gray-600',\n flexShrink: 0,\n marginEnd: 'text-to-visual'\n })}>\n {props.prefix}\n </CenterBaseline>\n </Provider>\n ) : null}\n <InputContext.Consumer>\n {ctx => (\n <InputContext.Provider value={{...ctx, 'aria-labelledby': newAriaLabelledby}}>\n {children}\n </InputContext.Provider>\n )}\n </InputContext.Consumer>\n </Group>\n );\n});\n\nexport interface InputProps\n extends Omit<RACInputProps, 'className' | 'style' | 'render'>, StyleProps {}\n\nexport const Input = forwardRef(function Input(\n props: InputProps,\n ref: ForwardedRef<HTMLInputElement>\n) {\n let {UNSAFE_className = '', UNSAFE_style, styles, ...otherProps} = props;\n return (\n <RACInput\n {...otherProps}\n ref={ref}\n style={UNSAFE_style}\n className={\n UNSAFE_className +\n mergeStyles(\n style({\n padding: 0,\n backgroundColor: 'transparent',\n color: {\n default: 'inherit',\n '::placeholder': {\n default: 'gray-600',\n forcedColors: 'GrayText'\n }\n },\n fontFamily: 'inherit',\n fontSize: 'inherit',\n fontWeight: 'inherit',\n flexGrow: 1,\n flexShrink: 1,\n minWidth: 0,\n width: 'full',\n outlineStyle: 'none',\n borderStyle: 'none',\n truncate: true\n }),\n styles\n )\n }\n />\n );\n});\n\ninterface HelpTextProps extends FieldErrorProps {\n size?: 'XS' | 'S' | 'M' | 'L' | 'XL';\n isDisabled?: boolean;\n isInvalid?: boolean; // TODO: export FieldErrorContext from RAC to get this.\n description?: ReactNode;\n showErrorIcon?: boolean;\n styles?: StyleString;\n}\n\nexport const helpTextStyles = style({\n gridArea: 'helptext',\n display: 'flex',\n alignItems: 'baseline',\n gap: 'text-to-visual',\n font: controlFont(),\n color: {\n default: 'neutral-subdued',\n isInvalid: {\n default: 'negative',\n forcedColors: 'Mark'\n },\n isDisabled: {\n default: 'disabled',\n forcedColors: 'GrayText'\n }\n },\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n },\n contain: 'inline-size',\n paddingTop: '--field-gap',\n cursor: {\n default: 'text',\n isDisabled: 'default'\n }\n});\n\nexport function HelpText(\n props: HelpTextProps & {\n descriptionRef?: DOMRef<HTMLDivElement>;\n errorRef?: DOMRef<HTMLDivElement>;\n }\n): ReactNode {\n let domDescriptionRef = useDOMRef(props.descriptionRef || null);\n let domErrorRef = useDOMRef(props.errorRef || null);\n\n if (!props.isInvalid && props.description) {\n return (\n <Text\n slot=\"description\"\n ref={domDescriptionRef}\n className={mergeStyles(\n helpTextStyles({size: props.size || 'M', isDisabled: props.isDisabled}),\n props.styles\n )}>\n {props.description}\n </Text>\n );\n }\n\n if (!props.isInvalid) {\n return null;\n }\n\n return (\n <FieldError\n {...props}\n ref={domErrorRef}\n className={renderProps =>\n mergeStyles(\n helpTextStyles({...renderProps, size: props.size || 'M', isDisabled: props.isDisabled}),\n props.styles\n )\n }>\n {composeRenderProps(props.children, (children, {validationErrors}) => (\n <>\n {props.showErrorIcon && (\n <CenterBaseline>\n <AlertIcon\n // @ts-ignore - ts doesn't know that AlertIcon is an icon and not a raw SVG\n styles={style({\n size: {\n size: {\n XS: 14,\n S: 16,\n M: 20,\n L: 22,\n XL: 26\n }\n }\n })({size: props.size || 'M'})}\n />\n </CenterBaseline>\n )}\n <span>{children || validationErrors.join(' ')}</span>\n </>\n ))}\n </FieldError>\n );\n}\n\nexport function FieldErrorIcon(props: {isDisabled?: boolean}): ReactNode {\n return (\n <Provider\n values={[\n [\n IconContext,\n {\n render: centerBaseline({\n slot: 'icon',\n styles: style({\n order: 0,\n flexShrink: 0,\n '--iconPrimary': {\n type: 'fill',\n value: {\n default: 'negative',\n forcedColors: 'Mark'\n }\n }\n })\n }),\n styles: style({\n size: fontRelative(20),\n marginStart: 'text-to-visual',\n marginEnd: fontRelative(-2),\n flexShrink: 0\n })\n }\n ]\n ]}>\n {!props.isDisabled && <AlertIcon />}\n </Provider>\n );\n}\n"],"names":[],"version":3,"file":"Field.cjs.map"}