@depup/react-aria-components 1.20.0-depup.0 → 1.21.0-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/NavigationTree/package.json +5 -0
  2. package/README.md +2 -2
  3. package/changes.json +1 -1
  4. package/dist/exports/Menu.cjs +1 -0
  5. package/dist/exports/Menu.cjs.map +1 -1
  6. package/dist/exports/Menu.js +2 -2
  7. package/dist/exports/Menu.js.map +1 -1
  8. package/dist/exports/Menu.mjs +2 -2
  9. package/dist/exports/Menu.mjs.map +1 -1
  10. package/dist/exports/NavigationTree.cjs +37 -0
  11. package/dist/exports/NavigationTree.cjs.map +1 -0
  12. package/dist/exports/NavigationTree.js +25 -0
  13. package/dist/exports/NavigationTree.js.map +1 -0
  14. package/dist/exports/NavigationTree.mjs +25 -0
  15. package/dist/exports/NavigationTree.mjs.map +1 -0
  16. package/dist/exports/index.cjs +13 -0
  17. package/dist/exports/index.cjs.map +1 -1
  18. package/dist/exports/index.js +6 -2
  19. package/dist/exports/index.js.map +1 -1
  20. package/dist/exports/index.mjs +6 -2
  21. package/dist/exports/index.mjs.map +1 -1
  22. package/dist/private/Checkbox.cjs.map +1 -1
  23. package/dist/private/Checkbox.js.map +1 -1
  24. package/dist/private/Checkbox.mjs.map +1 -1
  25. package/dist/private/Dialog.cjs +6 -0
  26. package/dist/private/Dialog.cjs.map +1 -1
  27. package/dist/private/Dialog.js +6 -0
  28. package/dist/private/Dialog.js.map +1 -1
  29. package/dist/private/Dialog.mjs +6 -0
  30. package/dist/private/Dialog.mjs.map +1 -1
  31. package/dist/private/GridList.cjs.map +1 -1
  32. package/dist/private/GridList.js.map +1 -1
  33. package/dist/private/GridList.mjs.map +1 -1
  34. package/dist/private/ListBox.cjs.map +1 -1
  35. package/dist/private/ListBox.js.map +1 -1
  36. package/dist/private/ListBox.mjs.map +1 -1
  37. package/dist/private/Menu.cjs +55 -0
  38. package/dist/private/Menu.cjs.map +1 -1
  39. package/dist/private/Menu.js +56 -2
  40. package/dist/private/Menu.js.map +1 -1
  41. package/dist/private/Menu.mjs +56 -2
  42. package/dist/private/Menu.mjs.map +1 -1
  43. package/dist/private/NavigationTree.cjs +272 -0
  44. package/dist/private/NavigationTree.cjs.map +1 -0
  45. package/dist/private/NavigationTree.js +258 -0
  46. package/dist/private/NavigationTree.js.map +1 -0
  47. package/dist/private/NavigationTree.mjs +257 -0
  48. package/dist/private/NavigationTree.mjs.map +1 -0
  49. package/dist/private/RadioGroup.cjs.map +1 -1
  50. package/dist/private/RadioGroup.js.map +1 -1
  51. package/dist/private/RadioGroup.mjs.map +1 -1
  52. package/dist/private/Switch.cjs +8 -2
  53. package/dist/private/Switch.cjs.map +1 -1
  54. package/dist/private/Switch.js +9 -3
  55. package/dist/private/Switch.js.map +1 -1
  56. package/dist/private/Switch.mjs +9 -3
  57. package/dist/private/Switch.mjs.map +1 -1
  58. package/dist/private/Table.cjs.map +1 -1
  59. package/dist/private/Table.js.map +1 -1
  60. package/dist/private/Table.mjs.map +1 -1
  61. package/dist/private/Text.cjs +3 -1
  62. package/dist/private/Text.cjs.map +1 -1
  63. package/dist/private/Text.js +4 -2
  64. package/dist/private/Text.js.map +1 -1
  65. package/dist/private/Text.mjs +4 -2
  66. package/dist/private/Text.mjs.map +1 -1
  67. package/dist/private/TokenField.cjs +30 -2
  68. package/dist/private/TokenField.cjs.map +1 -1
  69. package/dist/private/TokenField.js +30 -2
  70. package/dist/private/TokenField.js.map +1 -1
  71. package/dist/private/TokenField.mjs +30 -2
  72. package/dist/private/TokenField.mjs.map +1 -1
  73. package/dist/private/Tree.cjs.map +1 -1
  74. package/dist/private/Tree.js.map +1 -1
  75. package/dist/private/Tree.mjs.map +1 -1
  76. package/dist/private/TreeDropTargetDelegate.cjs +11 -6
  77. package/dist/private/TreeDropTargetDelegate.cjs.map +1 -1
  78. package/dist/private/TreeDropTargetDelegate.js +11 -6
  79. package/dist/private/TreeDropTargetDelegate.js.map +1 -1
  80. package/dist/private/TreeDropTargetDelegate.mjs +11 -6
  81. package/dist/private/TreeDropTargetDelegate.mjs.map +1 -1
  82. package/dist/types/exports/Menu.d.ts +2 -2
  83. package/dist/types/exports/NavigationTree.d.ts +8 -0
  84. package/dist/types/exports/index.d.ts +7 -3
  85. package/dist/types/src/Breadcrumbs.d.ts +2 -2
  86. package/dist/types/src/Button.d.ts +1 -1
  87. package/dist/types/src/Calendar.d.ts +6 -6
  88. package/dist/types/src/Checkbox.d.ts +8 -8
  89. package/dist/types/src/Collection.d.ts +1 -1
  90. package/dist/types/src/ComboBox.d.ts +2 -2
  91. package/dist/types/src/DateField.d.ts +4 -4
  92. package/dist/types/src/DatePicker.d.ts +2 -2
  93. package/dist/types/src/Dialog.d.ts +2 -2
  94. package/dist/types/src/Disclosure.d.ts +2 -2
  95. package/dist/types/src/GridList.d.ts +6 -6
  96. package/dist/types/src/Group.d.ts +1 -1
  97. package/dist/types/src/Header.d.ts +1 -1
  98. package/dist/types/src/Input.d.ts +1 -1
  99. package/dist/types/src/Label.d.ts +1 -1
  100. package/dist/types/src/Link.d.ts +1 -1
  101. package/dist/types/src/ListBox.d.ts +5 -5
  102. package/dist/types/src/Menu.d.ts +25 -6
  103. package/dist/types/src/Meter.d.ts +1 -1
  104. package/dist/types/src/Modal.d.ts +2 -2
  105. package/dist/types/src/NavigationTree.d.ts +80 -0
  106. package/dist/types/src/NumberField.d.ts +1 -1
  107. package/dist/types/src/OverlayArrow.d.ts +1 -1
  108. package/dist/types/src/Popover.d.ts +1 -1
  109. package/dist/types/src/RadioGroup.d.ts +8 -8
  110. package/dist/types/src/SearchField.d.ts +1 -1
  111. package/dist/types/src/Select.d.ts +2 -2
  112. package/dist/types/src/Separator.d.ts +1 -1
  113. package/dist/types/src/Slider.d.ts +5 -5
  114. package/dist/types/src/Switch.d.ts +7 -7
  115. package/dist/types/src/Table.d.ts +8 -8
  116. package/dist/types/src/Tabs.d.ts +5 -5
  117. package/dist/types/src/TagGroup.d.ts +3 -3
  118. package/dist/types/src/Text.d.ts +1 -1
  119. package/dist/types/src/TextField.d.ts +1 -1
  120. package/dist/types/src/Toast.d.ts +3 -3
  121. package/dist/types/src/ToggleButton.d.ts +1 -1
  122. package/dist/types/src/ToggleButtonGroup.d.ts +1 -1
  123. package/dist/types/src/TokenField.d.ts +2 -2
  124. package/dist/types/src/Toolbar.d.ts +1 -1
  125. package/dist/types/src/Tooltip.d.ts +1 -1
  126. package/dist/types/src/Tree.d.ts +6 -6
  127. package/package.json +8 -7
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria-components/src/RadioGroup.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 {\n AriaRadioGroupProps,\n AriaRadioProps,\n RadioAria,\n useRadio,\n useRadioGroup\n} from 'react-aria/useRadioGroup';\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RACValidation,\n removeDataAttributes,\n RenderProps,\n SlotProps,\n useContextProps,\n useRenderProps,\n useSlot,\n useSlottedContext\n} from './utils';\nimport {FieldErrorContext} from './FieldError';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FormContext} from './Form';\nimport {forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';\nimport {HoverEvents, Orientation} from '@react-types/shared';\nimport {LabelContext} from './Label';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {mergeRefs} from 'react-aria/mergeRefs';\nimport {RadioGroupState, useRadioGroupState} from 'react-stately/useRadioGroupState';\nimport React, {createContext, ForwardedRef, forwardRef, useContext, useMemo} from 'react';\nimport {SelectionIndicatorContext} from './SelectionIndicator';\nimport {SharedElementTransition} from './SharedElementTransition';\nimport {TextContext} from './Text';\nimport {useFocusRing} from 'react-aria/useFocusRing';\nimport {useHover} from 'react-aria/useHover';\nimport {useObjectRef} from 'react-aria/useObjectRef';\nimport {VisuallyHidden} from 'react-aria/VisuallyHidden';\n\nexport interface RadioGroupProps\n extends\n Omit<\n AriaRadioGroupProps,\n | 'children'\n | 'label'\n | 'description'\n | 'errorMessage'\n | 'validationState'\n | 'validationBehavior'\n >,\n RACValidation,\n RenderProps<RadioGroupRenderProps>,\n SlotProps,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioGroup'\n */\n className?: ClassNameOrFunction<RadioGroupRenderProps>;\n}\nexport interface RadioProps\n extends\n Omit<AriaRadioProps, 'children'>,\n HoverEvents,\n RenderProps<RadioRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Radio'\n */\n className?: ClassNameOrFunction<RadioRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: RefObject<HTMLInputElement | null>;\n}\n\nexport interface RadioFieldProps\n extends\n Omit<AriaRadioProps, 'children'>,\n RenderProps<RadioFieldRenderProps>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioField'\n */\n className?: ClassNameOrFunction<RadioFieldRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: RefObject<HTMLInputElement | null>;\n}\n\nexport interface RadioButtonProps\n extends\n HoverEvents,\n RenderProps<RadioButtonRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioButton'\n */\n className?: ClassNameOrFunction<RadioButtonRenderProps>;\n}\n\nexport interface RadioGroupRenderProps {\n /**\n * The orientation of the radio group.\n *\n * @selector [data-orientation=\"horizontal | vertical\"]\n */\n orientation: Orientation;\n /**\n * Whether the radio group is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio group is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio group is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * Whether the radio group is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * State of the radio group.\n */\n state: RadioGroupState;\n}\n\nexport interface RadioRenderProps {\n /**\n * Whether the radio is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the radio is currently hovered with a mouse.\n *\n * @selector [data-hovered]\n */\n isHovered: boolean;\n /**\n * Whether the radio is currently in a pressed state.\n *\n * @selector [data-pressed]\n */\n isPressed: boolean;\n /**\n * Whether the radio is focused, either via a mouse or keyboard.\n *\n * @selector [data-focused]\n */\n isFocused: boolean;\n /**\n * Whether the radio is keyboard focused.\n *\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean;\n /**\n * Whether the radio is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the checkbox is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n}\n\nexport interface RadioFieldRenderProps {\n /**\n * Whether the radio is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the radio is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the checkbox is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n}\n\nexport interface RadioButtonRenderProps extends RadioRenderProps {}\n\nexport const RadioGroupContext = createContext<ContextValue<RadioGroupProps, HTMLDivElement>>(null);\nexport const RadioContext =\n createContext<ContextValue<Partial<RadioProps>, HTMLLabelElement>>(null);\nexport const RadioFieldContext =\n createContext<ContextValue<Partial<RadioFieldProps>, HTMLDivElement>>(null);\nexport const RadioGroupStateContext = createContext<RadioGroupState | null>(null);\n\n/**\n * A radio group allows a user to select a single item from a list of mutually exclusive options.\n */\nexport const RadioGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioGroup(\n props: RadioGroupProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n [props, ref] = useContextProps(props, ref, RadioGroupContext);\n let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};\n let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';\n let state = useRadioGroupState({\n ...props,\n validationBehavior\n });\n\n let [labelRef, label] = useSlot(!props['aria-label'] && !props['aria-labelledby']);\n let {radioGroupProps, labelProps, descriptionProps, errorMessageProps, ...validation} =\n useRadioGroup(\n {\n ...props,\n label,\n validationBehavior\n },\n state\n );\n\n let renderProps = useRenderProps({\n ...props,\n values: {\n orientation: props.orientation || 'vertical',\n isDisabled: state.isDisabled,\n isReadOnly: state.isReadOnly,\n isRequired: state.isRequired,\n isInvalid: state.isInvalid,\n state\n },\n defaultClassName: 'react-aria-RadioGroup'\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps, radioGroupProps)}\n ref={ref}\n slot={props.slot || undefined}\n data-orientation={props.orientation || 'vertical'}\n data-invalid={state.isInvalid || undefined}\n data-disabled={state.isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-required={state.isRequired || undefined}>\n <Provider\n values={[\n [RadioGroupStateContext, state],\n [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }\n ],\n [FieldErrorContext, validation]\n ]}>\n <SharedElementTransition>{renderProps.children}</SharedElementTransition>\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A radio represents an individual option within a radio group.\n *\n * @deprecated Use RadioField + RadioButton instead.\n */\nexport const Radio = /*#__PURE__*/ (forwardRef as forwardRefType)(function Radio(\n props: RadioProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, RadioContext);\n let state = React.useContext(RadioGroupStateContext)!;\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let aria = useRadio(\n {\n ...removeDataAttributes<RadioProps>(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n\n return (\n <InternalRadioContext.Provider\n value={{...aria, inputRef, defaultClassName: 'react-aria-Radio'}}>\n <RadioButton {...props} ref={ref} />\n </InternalRadioContext.Provider>\n );\n});\n\ninterface InternalRadioContextValue extends RadioAria {\n inputRef: RefObject<HTMLInputElement | null>;\n defaultClassName: string;\n}\n\nconst InternalRadioContext = createContext<InternalRadioContextValue | null>(null);\n\n/**\n * A RadioField represents an individual option within a radio group, containing a RadioButton and\n * optional description.\n */\nexport const RadioField = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioField(\n props: RadioFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, RadioFieldContext);\n let state = React.useContext(RadioGroupStateContext)!;\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let aria = useRadio(\n {\n ...removeDataAttributes<RadioFieldProps>(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n let {descriptionProps, isSelected, isDisabled} = aria;\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-RadioField',\n values: {\n isSelected,\n isDisabled,\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps)}\n ref={ref}\n data-selected={isSelected || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-invalid={state.isInvalid || undefined}\n data-required={state.isRequired || undefined}>\n <Provider\n values={[\n [SelectionIndicatorContext, {isSelected}],\n [\n InternalRadioContext,\n {\n ...aria,\n inputRef,\n defaultClassName: 'react-aria-RadioButton'\n }\n ],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps\n }\n }\n ]\n ]}>\n {renderProps.children}\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A RadioButton is the clickable area of a radio, including the indicator and label.\n */\nexport const RadioButton = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioButton(\n props: RadioButtonProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {labelProps, inputProps, isSelected, isDisabled, isPressed, defaultClassName, inputRef} =\n useContext(InternalRadioContext)!;\n let state = React.useContext(RadioGroupStateContext)!;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let interactionDisabled = isDisabled || state.isReadOnly;\n\n let {hoverProps, isHovered} = useHover({\n ...props,\n isDisabled: interactionDisabled\n });\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName,\n values: {\n isSelected,\n isPressed,\n isHovered,\n isFocused,\n isFocusVisible,\n isDisabled,\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.label\n {...mergeProps(DOMProps, labelProps, hoverProps, renderProps)}\n ref={ref}\n data-selected={isSelected || undefined}\n data-pressed={isPressed || undefined}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-invalid={state.isInvalid || undefined}\n data-required={state.isRequired || undefined}>\n <VisuallyHidden elementType=\"span\">\n <input {...mergeProps(inputProps, focusProps)} ref={inputRef} />\n </VisuallyHidden>\n {renderProps.children}\n </dom.label>\n );\n});\n"],"names":[],"version":3,"file":"RadioGroup.cjs.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;;;;;;;;AAuPM,MAAM,0DAAoB,CAAA,GAAA,0BAAY,EAAiD;AACvF,MAAM,0DACX,CAAA,GAAA,0BAAY,EAAuD;AAC9D,MAAM,0DACX,CAAA,GAAA,0BAAY,EAA0D;AACjE,MAAM,0DAAyB,CAAA,GAAA,0BAAY,EAA0B;AAKrE,MAAM,4CAA2B,AAAd,WAAW,GAAI,CAAA,GAAA,uBAAS,EAAqB,SAAS,WAC9E,KAAsB,EACtB,GAAiC;IAEjC,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,OAAO,KAAK;IAC3C,IAAI,EAAC,oBAAoB,sBAAsB,EAAC,GAAG,CAAA,GAAA,2CAAgB,EAAE,CAAA,GAAA,qCAAU,MAAM,CAAC;IACtF,IAAI,qBAAqB,MAAM,kBAAkB,IAAI,0BAA0B;IAC/E,IAAI,QAAQ,CAAA,GAAA,wDAAiB,EAAE;QAC7B,GAAG,KAAK;4BACR;IACF;IAEA,IAAI,CAAC,UAAU,MAAM,GAAG,CAAA,GAAA,iCAAM,EAAE,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,kBAAkB;IACjF,IAAI,mBAAC,eAAe,cAAE,UAAU,oBAAE,gBAAgB,qBAAE,iBAAiB,EAAE,GAAG,YAAW,GACnF,CAAA,GAAA,2CAAY,EACV;QACE,GAAG,KAAK;eACR;4BACA;IACF,GACA;IAGJ,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,QAAQ;YACN,aAAa,MAAM,WAAW,IAAI;YAClC,YAAY,MAAM,UAAU;YAC5B,YAAY,MAAM,UAAU;YAC5B,YAAY,MAAM,UAAU;YAC5B,WAAW,MAAM,SAAS;mBAC1B;QACF;QACA,kBAAkB;IACpB;IAEA,IAAI,WAAW,CAAA,GAAA,6CAAa,EAAE,OAAO;QAAC,QAAQ;IAAI;IAElD,qBACE,0DAAC,CAAA,GAAA,6BAAE,EAAE,GAAG;QACL,GAAG,CAAA,GAAA,qCAAS,EAAE,UAAU,aAAa,gBAAgB;QACtD,KAAK;QACL,MAAM,MAAM,IAAI,IAAI;QACpB,oBAAkB,MAAM,WAAW,IAAI;QACvC,gBAAc,MAAM,SAAS,IAAI;QACjC,iBAAe,MAAM,UAAU,IAAI;QACnC,iBAAe,MAAM,UAAU,IAAI;QACnC,iBAAe,MAAM,UAAU,IAAI;qBACnC,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBAAC;gBAAwB;aAAM;YAC/B;gBAAC,CAAA,GAAA,sCAAW;gBAAG;oBAAC,GAAG,UAAU;oBAAE,KAAK;oBAAU,aAAa;gBAAM;aAAE;YACnE;gBACE,CAAA,GAAA,qCAAU;gBACV;oBACE,OAAO;wBACL,aAAa;wBACb,cAAc;oBAChB;gBACF;aACD;YACD;gBAAC,CAAA,GAAA,2CAAgB;gBAAG;aAAW;SAChC;qBACD,0DAAC,CAAA,GAAA,iDAAsB,SAAG,YAAY,QAAQ;AAItD;AAOO,MAAM,4CAAsB,AAAd,WAAW,GAAI,CAAA,GAAA,uBAAS,EAAqB,SAAS,MACzE,KAAiB,EACjB,GAAmC;IAEnC,IAAI,EAAC,UAAU,uBAAuB,IAAI,EAAE,GAAG,YAAW,GAAG;IAC7D,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,YAAY,KAAK;IAChD,IAAI,QAAQ,CAAA,GAAA,sCAAI,EAAE,UAAU,CAAC;IAC7B,IAAI,WAAW,CAAA,GAAA,yCAAW,EACxB,CAAA,GAAA,oBAAM,EACJ,IAAM,CAAA,GAAA,mCAAQ,EAAE,sBAAsB,MAAM,QAAQ,KAAK,YAAY,MAAM,QAAQ,GAAG,OACtF;QAAC;QAAsB,MAAM,QAAQ;KAAC;IAG1C,IAAI,OAAO,CAAA,GAAA,sCAAO,EAChB;QACE,GAAG,CAAA,GAAA,8CAAmB,EAAc,MAAM;QAC1C,kDAAkD;QAClD,UAAU,OAAO,MAAM,QAAQ,KAAK,aAAa,OAAO,MAAM,QAAQ;IACxE,GACA,OACA;IAGF,qBACE,0DAAC,2CAAqB,QAAQ;QAC5B,OAAO;YAAC,GAAG,IAAI;sBAAE;YAAU,kBAAkB;QAAkB;qBAC/D,0DAAC;QAAa,GAAG,KAAK;QAAE,KAAK;;AAGnC;AAOA,MAAM,2DAAuB,CAAA,GAAA,0BAAY,EAAoC;AAMtE,MAAM,4CAA2B,AAAd,WAAW,GAAI,CAAA,GAAA,uBAAS,EAAqB,SAAS,WAC9E,KAAsB,EACtB,GAAiC;IAEjC,IAAI,EAAC,UAAU,uBAAuB,IAAI,EAAE,GAAG,YAAW,GAAG;IAC7D,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,YAAY,KAAK;IAChD,IAAI,QAAQ,CAAA,GAAA,sCAAI,EAAE,UAAU,CAAC;IAC7B,IAAI,WAAW,CAAA,GAAA,yCAAW,EACxB,CAAA,GAAA,oBAAM,EACJ,IAAM,CAAA,GAAA,mCAAQ,EAAE,sBAAsB,MAAM,QAAQ,KAAK,YAAY,MAAM,QAAQ,GAAG,OACtF;QAAC;QAAsB,MAAM,QAAQ;KAAC;IAG1C,IAAI,OAAO,CAAA,GAAA,sCAAO,EAChB;QACE,GAAG,CAAA,GAAA,8CAAmB,EAAmB,MAAM;QAC/C,kDAAkD;QAClD,UAAU,OAAO,MAAM,QAAQ,KAAK,aAAa,OAAO,MAAM,QAAQ;IACxE,GACA,OACA;IAEF,IAAI,oBAAC,gBAAgB,cAAE,UAAU,cAAE,UAAU,EAAC,GAAG;IAEjD,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;wBACN;wBACA;YACA,YAAY,MAAM,UAAU;YAC5B,WAAW,MAAM,SAAS;YAC1B,YAAY,MAAM,UAAU;QAC9B;IACF;IAEA,IAAI,WAAW,CAAA,GAAA,6CAAa,EAAE,OAAO;QAAC,QAAQ;IAAI;IAClD,OAAO,SAAS,EAAE;IAClB,OAAO,SAAS,OAAO;IAEvB,qBACE,0DAAC,CAAA,GAAA,6BAAE,EAAE,GAAG;QACL,GAAG,CAAA,GAAA,qCAAS,EAAE,UAAU,YAAY;QACrC,KAAK;QACL,iBAAe,cAAc;QAC7B,iBAAe,cAAc;QAC7B,iBAAe,MAAM,UAAU,IAAI;QACnC,gBAAc,MAAM,SAAS,IAAI;QACjC,iBAAe,MAAM,UAAU,IAAI;qBACnC,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBAAC,CAAA,GAAA,mDAAwB;gBAAG;gCAAC;gBAAU;aAAE;YACzC;gBACE;gBACA;oBACE,GAAG,IAAI;8BACP;oBACA,kBAAkB;gBACpB;aACD;YACD;gBACE,CAAA,GAAA,qCAAU;gBACV;oBACE,OAAO;wBACL,aAAa;oBACf;gBACF;aACD;SACF;OACA,YAAY,QAAQ;AAI7B;AAKO,MAAM,4CAA4B,AAAd,WAAW,GAAI,CAAA,GAAA,uBAAS,EAAqB,SAAS,YAC/E,KAAuB,EACvB,GAAmC;IAEnC,IAAI,cAAC,UAAU,cAAE,UAAU,cAAE,UAAU,cAAE,UAAU,aAAE,SAAS,oBAAE,gBAAgB,YAAE,QAAQ,EAAC,GACzF,CAAA,GAAA,uBAAS,EAAE;IACb,IAAI,QAAQ,CAAA,GAAA,sCAAI,EAAE,UAAU,CAAC;IAC7B,IAAI,aAAC,SAAS,kBAAE,cAAc,cAAE,UAAU,EAAC,GAAG,CAAA,GAAA,yCAAW;IACzD,IAAI,sBAAsB,cAAc,MAAM,UAAU;IAExD,IAAI,cAAC,UAAU,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,iCAAO,EAAE;QACrC,GAAG,KAAK;QACR,YAAY;IACd;IAEA,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,KAAK;0BACR;QACA,QAAQ;wBACN;uBACA;uBACA;uBACA;4BACA;wBACA;YACA,YAAY,MAAM,UAAU;YAC5B,WAAW,MAAM,SAAS;YAC1B,YAAY,MAAM,UAAU;QAC9B;IACF;IAEA,IAAI,WAAW,CAAA,GAAA,6CAAa,EAAE,OAAO;QAAC,QAAQ;IAAI;IAClD,OAAO,SAAS,EAAE;IAClB,OAAO,SAAS,OAAO;IAEvB,qBACE,0DAAC,CAAA,GAAA,6BAAE,EAAE,KAAK;QACP,GAAG,CAAA,GAAA,qCAAS,EAAE,UAAU,YAAY,YAAY,YAAY;QAC7D,KAAK;QACL,iBAAe,cAAc;QAC7B,gBAAc,aAAa;QAC3B,gBAAc,aAAa;QAC3B,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;QACtC,iBAAe,cAAc;QAC7B,iBAAe,MAAM,UAAU,IAAI;QACnC,gBAAc,MAAM,SAAS,IAAI;QACjC,iBAAe,MAAM,UAAU,IAAI;qBACnC,0DAAC,CAAA,GAAA,6CAAa;QAAE,aAAY;qBAC1B,0DAAC;QAAO,GAAG,CAAA,GAAA,qCAAS,EAAE,YAAY,WAAW;QAAE,KAAK;SAErD,YAAY,QAAQ;AAG3B","sources":["packages/react-aria-components/src/RadioGroup.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 {\n AriaRadioGroupProps,\n AriaRadioProps,\n RadioAria,\n useRadio,\n useRadioGroup\n} from 'react-aria/useRadioGroup';\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RACValidation,\n removeDataAttributes,\n RenderProps,\n SlotProps,\n useContextProps,\n useRenderProps,\n useSlot,\n useSlottedContext\n} from './utils';\nimport {FieldErrorContext} from './FieldError';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FormContext} from './Form';\nimport {forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';\nimport {HoverEvents, Orientation} from '@react-types/shared';\nimport {LabelContext} from './Label';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {mergeRefs} from 'react-aria/mergeRefs';\nimport {RadioGroupState, useRadioGroupState} from 'react-stately/useRadioGroupState';\nimport React, {createContext, ForwardedRef, forwardRef, Ref, useContext, useMemo} from 'react';\nimport {SelectionIndicatorContext} from './SelectionIndicator';\nimport {SharedElementTransition} from './SharedElementTransition';\nimport {TextContext} from './Text';\nimport {useFocusRing} from 'react-aria/useFocusRing';\nimport {useHover} from 'react-aria/useHover';\nimport {useObjectRef} from 'react-aria/useObjectRef';\nimport {VisuallyHidden} from 'react-aria/VisuallyHidden';\n\nexport interface RadioGroupProps\n extends\n Omit<\n AriaRadioGroupProps,\n | 'children'\n | 'label'\n | 'description'\n | 'errorMessage'\n | 'validationState'\n | 'validationBehavior'\n >,\n RACValidation,\n RenderProps<RadioGroupRenderProps>,\n SlotProps,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioGroup'\n */\n className?: ClassNameOrFunction<RadioGroupRenderProps>;\n}\nexport interface RadioProps\n extends\n Omit<AriaRadioProps, 'children'>,\n HoverEvents,\n RenderProps<RadioRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Radio'\n */\n className?: ClassNameOrFunction<RadioRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: Ref<HTMLInputElement | null>;\n}\n\nexport interface RadioFieldProps\n extends\n Omit<AriaRadioProps, 'children'>,\n RenderProps<RadioFieldRenderProps>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioField'\n */\n className?: ClassNameOrFunction<RadioFieldRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: Ref<HTMLInputElement | null>;\n}\n\nexport interface RadioButtonProps\n extends\n HoverEvents,\n RenderProps<RadioButtonRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioButton'\n */\n className?: ClassNameOrFunction<RadioButtonRenderProps>;\n}\n\nexport interface RadioGroupRenderProps {\n /**\n * The orientation of the radio group.\n *\n * @selector [data-orientation=\"horizontal | vertical\"]\n */\n orientation: Orientation;\n /**\n * Whether the radio group is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio group is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio group is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * Whether the radio group is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * State of the radio group.\n */\n state: RadioGroupState;\n}\n\nexport interface RadioRenderProps {\n /**\n * Whether the radio is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the radio is currently hovered with a mouse.\n *\n * @selector [data-hovered]\n */\n isHovered: boolean;\n /**\n * Whether the radio is currently in a pressed state.\n *\n * @selector [data-pressed]\n */\n isPressed: boolean;\n /**\n * Whether the radio is focused, either via a mouse or keyboard.\n *\n * @selector [data-focused]\n */\n isFocused: boolean;\n /**\n * Whether the radio is keyboard focused.\n *\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean;\n /**\n * Whether the radio is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the checkbox is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n}\n\nexport interface RadioFieldRenderProps {\n /**\n * Whether the radio is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the radio is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the checkbox is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n}\n\nexport interface RadioButtonRenderProps extends RadioRenderProps {}\n\nexport const RadioGroupContext = createContext<ContextValue<RadioGroupProps, HTMLDivElement>>(null);\nexport const RadioContext =\n createContext<ContextValue<Partial<RadioProps>, HTMLLabelElement>>(null);\nexport const RadioFieldContext =\n createContext<ContextValue<Partial<RadioFieldProps>, HTMLDivElement>>(null);\nexport const RadioGroupStateContext = createContext<RadioGroupState | null>(null);\n\n/**\n * A radio group allows a user to select a single item from a list of mutually exclusive options.\n */\nexport const RadioGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioGroup(\n props: RadioGroupProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n [props, ref] = useContextProps(props, ref, RadioGroupContext);\n let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};\n let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';\n let state = useRadioGroupState({\n ...props,\n validationBehavior\n });\n\n let [labelRef, label] = useSlot(!props['aria-label'] && !props['aria-labelledby']);\n let {radioGroupProps, labelProps, descriptionProps, errorMessageProps, ...validation} =\n useRadioGroup(\n {\n ...props,\n label,\n validationBehavior\n },\n state\n );\n\n let renderProps = useRenderProps({\n ...props,\n values: {\n orientation: props.orientation || 'vertical',\n isDisabled: state.isDisabled,\n isReadOnly: state.isReadOnly,\n isRequired: state.isRequired,\n isInvalid: state.isInvalid,\n state\n },\n defaultClassName: 'react-aria-RadioGroup'\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps, radioGroupProps)}\n ref={ref}\n slot={props.slot || undefined}\n data-orientation={props.orientation || 'vertical'}\n data-invalid={state.isInvalid || undefined}\n data-disabled={state.isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-required={state.isRequired || undefined}>\n <Provider\n values={[\n [RadioGroupStateContext, state],\n [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }\n ],\n [FieldErrorContext, validation]\n ]}>\n <SharedElementTransition>{renderProps.children}</SharedElementTransition>\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A radio represents an individual option within a radio group.\n *\n * @deprecated Use RadioField + RadioButton instead.\n */\nexport const Radio = /*#__PURE__*/ (forwardRef as forwardRefType)(function Radio(\n props: RadioProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, RadioContext);\n let state = React.useContext(RadioGroupStateContext)!;\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let aria = useRadio(\n {\n ...removeDataAttributes<RadioProps>(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n\n return (\n <InternalRadioContext.Provider\n value={{...aria, inputRef, defaultClassName: 'react-aria-Radio'}}>\n <RadioButton {...props} ref={ref} />\n </InternalRadioContext.Provider>\n );\n});\n\ninterface InternalRadioContextValue extends RadioAria {\n inputRef: RefObject<HTMLInputElement | null>;\n defaultClassName: string;\n}\n\nconst InternalRadioContext = createContext<InternalRadioContextValue | null>(null);\n\n/**\n * A RadioField represents an individual option within a radio group, containing a RadioButton and\n * optional description.\n */\nexport const RadioField = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioField(\n props: RadioFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, RadioFieldContext);\n let state = React.useContext(RadioGroupStateContext)!;\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let aria = useRadio(\n {\n ...removeDataAttributes<RadioFieldProps>(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n let {descriptionProps, isSelected, isDisabled} = aria;\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-RadioField',\n values: {\n isSelected,\n isDisabled,\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps)}\n ref={ref}\n data-selected={isSelected || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-invalid={state.isInvalid || undefined}\n data-required={state.isRequired || undefined}>\n <Provider\n values={[\n [SelectionIndicatorContext, {isSelected}],\n [\n InternalRadioContext,\n {\n ...aria,\n inputRef,\n defaultClassName: 'react-aria-RadioButton'\n }\n ],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps\n }\n }\n ]\n ]}>\n {renderProps.children}\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A RadioButton is the clickable area of a radio, including the indicator and label.\n */\nexport const RadioButton = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioButton(\n props: RadioButtonProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {labelProps, inputProps, isSelected, isDisabled, isPressed, defaultClassName, inputRef} =\n useContext(InternalRadioContext)!;\n let state = React.useContext(RadioGroupStateContext)!;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let interactionDisabled = isDisabled || state.isReadOnly;\n\n let {hoverProps, isHovered} = useHover({\n ...props,\n isDisabled: interactionDisabled\n });\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName,\n values: {\n isSelected,\n isPressed,\n isHovered,\n isFocused,\n isFocusVisible,\n isDisabled,\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.label\n {...mergeProps(DOMProps, labelProps, hoverProps, renderProps)}\n ref={ref}\n data-selected={isSelected || undefined}\n data-pressed={isPressed || undefined}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-invalid={state.isInvalid || undefined}\n data-required={state.isRequired || undefined}>\n <VisuallyHidden elementType=\"span\">\n <input {...mergeProps(inputProps, focusProps)} ref={inputRef} />\n </VisuallyHidden>\n {renderProps.children}\n </dom.label>\n );\n});\n"],"names":[],"version":3,"file":"RadioGroup.cjs.map"}
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria-components/src/RadioGroup.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 {\n AriaRadioGroupProps,\n AriaRadioProps,\n RadioAria,\n useRadio,\n useRadioGroup\n} from 'react-aria/useRadioGroup';\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RACValidation,\n removeDataAttributes,\n RenderProps,\n SlotProps,\n useContextProps,\n useRenderProps,\n useSlot,\n useSlottedContext\n} from './utils';\nimport {FieldErrorContext} from './FieldError';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FormContext} from './Form';\nimport {forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';\nimport {HoverEvents, Orientation} from '@react-types/shared';\nimport {LabelContext} from './Label';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {mergeRefs} from 'react-aria/mergeRefs';\nimport {RadioGroupState, useRadioGroupState} from 'react-stately/useRadioGroupState';\nimport React, {createContext, ForwardedRef, forwardRef, useContext, useMemo} from 'react';\nimport {SelectionIndicatorContext} from './SelectionIndicator';\nimport {SharedElementTransition} from './SharedElementTransition';\nimport {TextContext} from './Text';\nimport {useFocusRing} from 'react-aria/useFocusRing';\nimport {useHover} from 'react-aria/useHover';\nimport {useObjectRef} from 'react-aria/useObjectRef';\nimport {VisuallyHidden} from 'react-aria/VisuallyHidden';\n\nexport interface RadioGroupProps\n extends\n Omit<\n AriaRadioGroupProps,\n | 'children'\n | 'label'\n | 'description'\n | 'errorMessage'\n | 'validationState'\n | 'validationBehavior'\n >,\n RACValidation,\n RenderProps<RadioGroupRenderProps>,\n SlotProps,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioGroup'\n */\n className?: ClassNameOrFunction<RadioGroupRenderProps>;\n}\nexport interface RadioProps\n extends\n Omit<AriaRadioProps, 'children'>,\n HoverEvents,\n RenderProps<RadioRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Radio'\n */\n className?: ClassNameOrFunction<RadioRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: RefObject<HTMLInputElement | null>;\n}\n\nexport interface RadioFieldProps\n extends\n Omit<AriaRadioProps, 'children'>,\n RenderProps<RadioFieldRenderProps>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioField'\n */\n className?: ClassNameOrFunction<RadioFieldRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: RefObject<HTMLInputElement | null>;\n}\n\nexport interface RadioButtonProps\n extends\n HoverEvents,\n RenderProps<RadioButtonRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioButton'\n */\n className?: ClassNameOrFunction<RadioButtonRenderProps>;\n}\n\nexport interface RadioGroupRenderProps {\n /**\n * The orientation of the radio group.\n *\n * @selector [data-orientation=\"horizontal | vertical\"]\n */\n orientation: Orientation;\n /**\n * Whether the radio group is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio group is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio group is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * Whether the radio group is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * State of the radio group.\n */\n state: RadioGroupState;\n}\n\nexport interface RadioRenderProps {\n /**\n * Whether the radio is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the radio is currently hovered with a mouse.\n *\n * @selector [data-hovered]\n */\n isHovered: boolean;\n /**\n * Whether the radio is currently in a pressed state.\n *\n * @selector [data-pressed]\n */\n isPressed: boolean;\n /**\n * Whether the radio is focused, either via a mouse or keyboard.\n *\n * @selector [data-focused]\n */\n isFocused: boolean;\n /**\n * Whether the radio is keyboard focused.\n *\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean;\n /**\n * Whether the radio is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the checkbox is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n}\n\nexport interface RadioFieldRenderProps {\n /**\n * Whether the radio is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the radio is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the checkbox is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n}\n\nexport interface RadioButtonRenderProps extends RadioRenderProps {}\n\nexport const RadioGroupContext = createContext<ContextValue<RadioGroupProps, HTMLDivElement>>(null);\nexport const RadioContext =\n createContext<ContextValue<Partial<RadioProps>, HTMLLabelElement>>(null);\nexport const RadioFieldContext =\n createContext<ContextValue<Partial<RadioFieldProps>, HTMLDivElement>>(null);\nexport const RadioGroupStateContext = createContext<RadioGroupState | null>(null);\n\n/**\n * A radio group allows a user to select a single item from a list of mutually exclusive options.\n */\nexport const RadioGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioGroup(\n props: RadioGroupProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n [props, ref] = useContextProps(props, ref, RadioGroupContext);\n let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};\n let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';\n let state = useRadioGroupState({\n ...props,\n validationBehavior\n });\n\n let [labelRef, label] = useSlot(!props['aria-label'] && !props['aria-labelledby']);\n let {radioGroupProps, labelProps, descriptionProps, errorMessageProps, ...validation} =\n useRadioGroup(\n {\n ...props,\n label,\n validationBehavior\n },\n state\n );\n\n let renderProps = useRenderProps({\n ...props,\n values: {\n orientation: props.orientation || 'vertical',\n isDisabled: state.isDisabled,\n isReadOnly: state.isReadOnly,\n isRequired: state.isRequired,\n isInvalid: state.isInvalid,\n state\n },\n defaultClassName: 'react-aria-RadioGroup'\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps, radioGroupProps)}\n ref={ref}\n slot={props.slot || undefined}\n data-orientation={props.orientation || 'vertical'}\n data-invalid={state.isInvalid || undefined}\n data-disabled={state.isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-required={state.isRequired || undefined}>\n <Provider\n values={[\n [RadioGroupStateContext, state],\n [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }\n ],\n [FieldErrorContext, validation]\n ]}>\n <SharedElementTransition>{renderProps.children}</SharedElementTransition>\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A radio represents an individual option within a radio group.\n *\n * @deprecated Use RadioField + RadioButton instead.\n */\nexport const Radio = /*#__PURE__*/ (forwardRef as forwardRefType)(function Radio(\n props: RadioProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, RadioContext);\n let state = React.useContext(RadioGroupStateContext)!;\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let aria = useRadio(\n {\n ...removeDataAttributes<RadioProps>(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n\n return (\n <InternalRadioContext.Provider\n value={{...aria, inputRef, defaultClassName: 'react-aria-Radio'}}>\n <RadioButton {...props} ref={ref} />\n </InternalRadioContext.Provider>\n );\n});\n\ninterface InternalRadioContextValue extends RadioAria {\n inputRef: RefObject<HTMLInputElement | null>;\n defaultClassName: string;\n}\n\nconst InternalRadioContext = createContext<InternalRadioContextValue | null>(null);\n\n/**\n * A RadioField represents an individual option within a radio group, containing a RadioButton and\n * optional description.\n */\nexport const RadioField = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioField(\n props: RadioFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, RadioFieldContext);\n let state = React.useContext(RadioGroupStateContext)!;\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let aria = useRadio(\n {\n ...removeDataAttributes<RadioFieldProps>(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n let {descriptionProps, isSelected, isDisabled} = aria;\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-RadioField',\n values: {\n isSelected,\n isDisabled,\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps)}\n ref={ref}\n data-selected={isSelected || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-invalid={state.isInvalid || undefined}\n data-required={state.isRequired || undefined}>\n <Provider\n values={[\n [SelectionIndicatorContext, {isSelected}],\n [\n InternalRadioContext,\n {\n ...aria,\n inputRef,\n defaultClassName: 'react-aria-RadioButton'\n }\n ],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps\n }\n }\n ]\n ]}>\n {renderProps.children}\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A RadioButton is the clickable area of a radio, including the indicator and label.\n */\nexport const RadioButton = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioButton(\n props: RadioButtonProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {labelProps, inputProps, isSelected, isDisabled, isPressed, defaultClassName, inputRef} =\n useContext(InternalRadioContext)!;\n let state = React.useContext(RadioGroupStateContext)!;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let interactionDisabled = isDisabled || state.isReadOnly;\n\n let {hoverProps, isHovered} = useHover({\n ...props,\n isDisabled: interactionDisabled\n });\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName,\n values: {\n isSelected,\n isPressed,\n isHovered,\n isFocused,\n isFocusVisible,\n isDisabled,\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.label\n {...mergeProps(DOMProps, labelProps, hoverProps, renderProps)}\n ref={ref}\n data-selected={isSelected || undefined}\n data-pressed={isPressed || undefined}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-invalid={state.isInvalid || undefined}\n data-required={state.isRequired || undefined}>\n <VisuallyHidden elementType=\"span\">\n <input {...mergeProps(inputProps, focusProps)} ref={inputRef} />\n </VisuallyHidden>\n {renderProps.children}\n </dom.label>\n );\n});\n"],"names":[],"version":3,"file":"RadioGroup.js.map"}
1
+ {"mappings":"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","sources":["packages/react-aria-components/src/RadioGroup.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 {\n AriaRadioGroupProps,\n AriaRadioProps,\n RadioAria,\n useRadio,\n useRadioGroup\n} from 'react-aria/useRadioGroup';\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RACValidation,\n removeDataAttributes,\n RenderProps,\n SlotProps,\n useContextProps,\n useRenderProps,\n useSlot,\n useSlottedContext\n} from './utils';\nimport {FieldErrorContext} from './FieldError';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FormContext} from './Form';\nimport {forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';\nimport {HoverEvents, Orientation} from '@react-types/shared';\nimport {LabelContext} from './Label';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {mergeRefs} from 'react-aria/mergeRefs';\nimport {RadioGroupState, useRadioGroupState} from 'react-stately/useRadioGroupState';\nimport React, {createContext, ForwardedRef, forwardRef, Ref, useContext, useMemo} from 'react';\nimport {SelectionIndicatorContext} from './SelectionIndicator';\nimport {SharedElementTransition} from './SharedElementTransition';\nimport {TextContext} from './Text';\nimport {useFocusRing} from 'react-aria/useFocusRing';\nimport {useHover} from 'react-aria/useHover';\nimport {useObjectRef} from 'react-aria/useObjectRef';\nimport {VisuallyHidden} from 'react-aria/VisuallyHidden';\n\nexport interface RadioGroupProps\n extends\n Omit<\n AriaRadioGroupProps,\n | 'children'\n | 'label'\n | 'description'\n | 'errorMessage'\n | 'validationState'\n | 'validationBehavior'\n >,\n RACValidation,\n RenderProps<RadioGroupRenderProps>,\n SlotProps,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioGroup'\n */\n className?: ClassNameOrFunction<RadioGroupRenderProps>;\n}\nexport interface RadioProps\n extends\n Omit<AriaRadioProps, 'children'>,\n HoverEvents,\n RenderProps<RadioRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Radio'\n */\n className?: ClassNameOrFunction<RadioRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: Ref<HTMLInputElement | null>;\n}\n\nexport interface RadioFieldProps\n extends\n Omit<AriaRadioProps, 'children'>,\n RenderProps<RadioFieldRenderProps>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioField'\n */\n className?: ClassNameOrFunction<RadioFieldRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: Ref<HTMLInputElement | null>;\n}\n\nexport interface RadioButtonProps\n extends\n HoverEvents,\n RenderProps<RadioButtonRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioButton'\n */\n className?: ClassNameOrFunction<RadioButtonRenderProps>;\n}\n\nexport interface RadioGroupRenderProps {\n /**\n * The orientation of the radio group.\n *\n * @selector [data-orientation=\"horizontal | vertical\"]\n */\n orientation: Orientation;\n /**\n * Whether the radio group is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio group is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio group is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * Whether the radio group is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * State of the radio group.\n */\n state: RadioGroupState;\n}\n\nexport interface RadioRenderProps {\n /**\n * Whether the radio is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the radio is currently hovered with a mouse.\n *\n * @selector [data-hovered]\n */\n isHovered: boolean;\n /**\n * Whether the radio is currently in a pressed state.\n *\n * @selector [data-pressed]\n */\n isPressed: boolean;\n /**\n * Whether the radio is focused, either via a mouse or keyboard.\n *\n * @selector [data-focused]\n */\n isFocused: boolean;\n /**\n * Whether the radio is keyboard focused.\n *\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean;\n /**\n * Whether the radio is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the checkbox is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n}\n\nexport interface RadioFieldRenderProps {\n /**\n * Whether the radio is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the radio is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the checkbox is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n}\n\nexport interface RadioButtonRenderProps extends RadioRenderProps {}\n\nexport const RadioGroupContext = createContext<ContextValue<RadioGroupProps, HTMLDivElement>>(null);\nexport const RadioContext =\n createContext<ContextValue<Partial<RadioProps>, HTMLLabelElement>>(null);\nexport const RadioFieldContext =\n createContext<ContextValue<Partial<RadioFieldProps>, HTMLDivElement>>(null);\nexport const RadioGroupStateContext = createContext<RadioGroupState | null>(null);\n\n/**\n * A radio group allows a user to select a single item from a list of mutually exclusive options.\n */\nexport const RadioGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioGroup(\n props: RadioGroupProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n [props, ref] = useContextProps(props, ref, RadioGroupContext);\n let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};\n let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';\n let state = useRadioGroupState({\n ...props,\n validationBehavior\n });\n\n let [labelRef, label] = useSlot(!props['aria-label'] && !props['aria-labelledby']);\n let {radioGroupProps, labelProps, descriptionProps, errorMessageProps, ...validation} =\n useRadioGroup(\n {\n ...props,\n label,\n validationBehavior\n },\n state\n );\n\n let renderProps = useRenderProps({\n ...props,\n values: {\n orientation: props.orientation || 'vertical',\n isDisabled: state.isDisabled,\n isReadOnly: state.isReadOnly,\n isRequired: state.isRequired,\n isInvalid: state.isInvalid,\n state\n },\n defaultClassName: 'react-aria-RadioGroup'\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps, radioGroupProps)}\n ref={ref}\n slot={props.slot || undefined}\n data-orientation={props.orientation || 'vertical'}\n data-invalid={state.isInvalid || undefined}\n data-disabled={state.isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-required={state.isRequired || undefined}>\n <Provider\n values={[\n [RadioGroupStateContext, state],\n [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }\n ],\n [FieldErrorContext, validation]\n ]}>\n <SharedElementTransition>{renderProps.children}</SharedElementTransition>\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A radio represents an individual option within a radio group.\n *\n * @deprecated Use RadioField + RadioButton instead.\n */\nexport const Radio = /*#__PURE__*/ (forwardRef as forwardRefType)(function Radio(\n props: RadioProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, RadioContext);\n let state = React.useContext(RadioGroupStateContext)!;\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let aria = useRadio(\n {\n ...removeDataAttributes<RadioProps>(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n\n return (\n <InternalRadioContext.Provider\n value={{...aria, inputRef, defaultClassName: 'react-aria-Radio'}}>\n <RadioButton {...props} ref={ref} />\n </InternalRadioContext.Provider>\n );\n});\n\ninterface InternalRadioContextValue extends RadioAria {\n inputRef: RefObject<HTMLInputElement | null>;\n defaultClassName: string;\n}\n\nconst InternalRadioContext = createContext<InternalRadioContextValue | null>(null);\n\n/**\n * A RadioField represents an individual option within a radio group, containing a RadioButton and\n * optional description.\n */\nexport const RadioField = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioField(\n props: RadioFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, RadioFieldContext);\n let state = React.useContext(RadioGroupStateContext)!;\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let aria = useRadio(\n {\n ...removeDataAttributes<RadioFieldProps>(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n let {descriptionProps, isSelected, isDisabled} = aria;\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-RadioField',\n values: {\n isSelected,\n isDisabled,\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps)}\n ref={ref}\n data-selected={isSelected || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-invalid={state.isInvalid || undefined}\n data-required={state.isRequired || undefined}>\n <Provider\n values={[\n [SelectionIndicatorContext, {isSelected}],\n [\n InternalRadioContext,\n {\n ...aria,\n inputRef,\n defaultClassName: 'react-aria-RadioButton'\n }\n ],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps\n }\n }\n ]\n ]}>\n {renderProps.children}\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A RadioButton is the clickable area of a radio, including the indicator and label.\n */\nexport const RadioButton = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioButton(\n props: RadioButtonProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {labelProps, inputProps, isSelected, isDisabled, isPressed, defaultClassName, inputRef} =\n useContext(InternalRadioContext)!;\n let state = React.useContext(RadioGroupStateContext)!;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let interactionDisabled = isDisabled || state.isReadOnly;\n\n let {hoverProps, isHovered} = useHover({\n ...props,\n isDisabled: interactionDisabled\n });\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName,\n values: {\n isSelected,\n isPressed,\n isHovered,\n isFocused,\n isFocusVisible,\n isDisabled,\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.label\n {...mergeProps(DOMProps, labelProps, hoverProps, renderProps)}\n ref={ref}\n data-selected={isSelected || undefined}\n data-pressed={isPressed || undefined}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-invalid={state.isInvalid || undefined}\n data-required={state.isRequired || undefined}>\n <VisuallyHidden elementType=\"span\">\n <input {...mergeProps(inputProps, focusProps)} ref={inputRef} />\n </VisuallyHidden>\n {renderProps.children}\n </dom.label>\n );\n});\n"],"names":[],"version":3,"file":"RadioGroup.js.map"}
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria-components/src/RadioGroup.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 {\n AriaRadioGroupProps,\n AriaRadioProps,\n RadioAria,\n useRadio,\n useRadioGroup\n} from 'react-aria/useRadioGroup';\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RACValidation,\n removeDataAttributes,\n RenderProps,\n SlotProps,\n useContextProps,\n useRenderProps,\n useSlot,\n useSlottedContext\n} from './utils';\nimport {FieldErrorContext} from './FieldError';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FormContext} from './Form';\nimport {forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';\nimport {HoverEvents, Orientation} from '@react-types/shared';\nimport {LabelContext} from './Label';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {mergeRefs} from 'react-aria/mergeRefs';\nimport {RadioGroupState, useRadioGroupState} from 'react-stately/useRadioGroupState';\nimport React, {createContext, ForwardedRef, forwardRef, useContext, useMemo} from 'react';\nimport {SelectionIndicatorContext} from './SelectionIndicator';\nimport {SharedElementTransition} from './SharedElementTransition';\nimport {TextContext} from './Text';\nimport {useFocusRing} from 'react-aria/useFocusRing';\nimport {useHover} from 'react-aria/useHover';\nimport {useObjectRef} from 'react-aria/useObjectRef';\nimport {VisuallyHidden} from 'react-aria/VisuallyHidden';\n\nexport interface RadioGroupProps\n extends\n Omit<\n AriaRadioGroupProps,\n | 'children'\n | 'label'\n | 'description'\n | 'errorMessage'\n | 'validationState'\n | 'validationBehavior'\n >,\n RACValidation,\n RenderProps<RadioGroupRenderProps>,\n SlotProps,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioGroup'\n */\n className?: ClassNameOrFunction<RadioGroupRenderProps>;\n}\nexport interface RadioProps\n extends\n Omit<AriaRadioProps, 'children'>,\n HoverEvents,\n RenderProps<RadioRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Radio'\n */\n className?: ClassNameOrFunction<RadioRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: RefObject<HTMLInputElement | null>;\n}\n\nexport interface RadioFieldProps\n extends\n Omit<AriaRadioProps, 'children'>,\n RenderProps<RadioFieldRenderProps>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioField'\n */\n className?: ClassNameOrFunction<RadioFieldRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: RefObject<HTMLInputElement | null>;\n}\n\nexport interface RadioButtonProps\n extends\n HoverEvents,\n RenderProps<RadioButtonRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioButton'\n */\n className?: ClassNameOrFunction<RadioButtonRenderProps>;\n}\n\nexport interface RadioGroupRenderProps {\n /**\n * The orientation of the radio group.\n *\n * @selector [data-orientation=\"horizontal | vertical\"]\n */\n orientation: Orientation;\n /**\n * Whether the radio group is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio group is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio group is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * Whether the radio group is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * State of the radio group.\n */\n state: RadioGroupState;\n}\n\nexport interface RadioRenderProps {\n /**\n * Whether the radio is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the radio is currently hovered with a mouse.\n *\n * @selector [data-hovered]\n */\n isHovered: boolean;\n /**\n * Whether the radio is currently in a pressed state.\n *\n * @selector [data-pressed]\n */\n isPressed: boolean;\n /**\n * Whether the radio is focused, either via a mouse or keyboard.\n *\n * @selector [data-focused]\n */\n isFocused: boolean;\n /**\n * Whether the radio is keyboard focused.\n *\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean;\n /**\n * Whether the radio is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the checkbox is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n}\n\nexport interface RadioFieldRenderProps {\n /**\n * Whether the radio is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the radio is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the checkbox is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n}\n\nexport interface RadioButtonRenderProps extends RadioRenderProps {}\n\nexport const RadioGroupContext = createContext<ContextValue<RadioGroupProps, HTMLDivElement>>(null);\nexport const RadioContext =\n createContext<ContextValue<Partial<RadioProps>, HTMLLabelElement>>(null);\nexport const RadioFieldContext =\n createContext<ContextValue<Partial<RadioFieldProps>, HTMLDivElement>>(null);\nexport const RadioGroupStateContext = createContext<RadioGroupState | null>(null);\n\n/**\n * A radio group allows a user to select a single item from a list of mutually exclusive options.\n */\nexport const RadioGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioGroup(\n props: RadioGroupProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n [props, ref] = useContextProps(props, ref, RadioGroupContext);\n let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};\n let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';\n let state = useRadioGroupState({\n ...props,\n validationBehavior\n });\n\n let [labelRef, label] = useSlot(!props['aria-label'] && !props['aria-labelledby']);\n let {radioGroupProps, labelProps, descriptionProps, errorMessageProps, ...validation} =\n useRadioGroup(\n {\n ...props,\n label,\n validationBehavior\n },\n state\n );\n\n let renderProps = useRenderProps({\n ...props,\n values: {\n orientation: props.orientation || 'vertical',\n isDisabled: state.isDisabled,\n isReadOnly: state.isReadOnly,\n isRequired: state.isRequired,\n isInvalid: state.isInvalid,\n state\n },\n defaultClassName: 'react-aria-RadioGroup'\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps, radioGroupProps)}\n ref={ref}\n slot={props.slot || undefined}\n data-orientation={props.orientation || 'vertical'}\n data-invalid={state.isInvalid || undefined}\n data-disabled={state.isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-required={state.isRequired || undefined}>\n <Provider\n values={[\n [RadioGroupStateContext, state],\n [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }\n ],\n [FieldErrorContext, validation]\n ]}>\n <SharedElementTransition>{renderProps.children}</SharedElementTransition>\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A radio represents an individual option within a radio group.\n *\n * @deprecated Use RadioField + RadioButton instead.\n */\nexport const Radio = /*#__PURE__*/ (forwardRef as forwardRefType)(function Radio(\n props: RadioProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, RadioContext);\n let state = React.useContext(RadioGroupStateContext)!;\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let aria = useRadio(\n {\n ...removeDataAttributes<RadioProps>(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n\n return (\n <InternalRadioContext.Provider\n value={{...aria, inputRef, defaultClassName: 'react-aria-Radio'}}>\n <RadioButton {...props} ref={ref} />\n </InternalRadioContext.Provider>\n );\n});\n\ninterface InternalRadioContextValue extends RadioAria {\n inputRef: RefObject<HTMLInputElement | null>;\n defaultClassName: string;\n}\n\nconst InternalRadioContext = createContext<InternalRadioContextValue | null>(null);\n\n/**\n * A RadioField represents an individual option within a radio group, containing a RadioButton and\n * optional description.\n */\nexport const RadioField = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioField(\n props: RadioFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, RadioFieldContext);\n let state = React.useContext(RadioGroupStateContext)!;\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let aria = useRadio(\n {\n ...removeDataAttributes<RadioFieldProps>(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n let {descriptionProps, isSelected, isDisabled} = aria;\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-RadioField',\n values: {\n isSelected,\n isDisabled,\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps)}\n ref={ref}\n data-selected={isSelected || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-invalid={state.isInvalid || undefined}\n data-required={state.isRequired || undefined}>\n <Provider\n values={[\n [SelectionIndicatorContext, {isSelected}],\n [\n InternalRadioContext,\n {\n ...aria,\n inputRef,\n defaultClassName: 'react-aria-RadioButton'\n }\n ],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps\n }\n }\n ]\n ]}>\n {renderProps.children}\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A RadioButton is the clickable area of a radio, including the indicator and label.\n */\nexport const RadioButton = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioButton(\n props: RadioButtonProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {labelProps, inputProps, isSelected, isDisabled, isPressed, defaultClassName, inputRef} =\n useContext(InternalRadioContext)!;\n let state = React.useContext(RadioGroupStateContext)!;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let interactionDisabled = isDisabled || state.isReadOnly;\n\n let {hoverProps, isHovered} = useHover({\n ...props,\n isDisabled: interactionDisabled\n });\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName,\n values: {\n isSelected,\n isPressed,\n isHovered,\n isFocused,\n isFocusVisible,\n isDisabled,\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.label\n {...mergeProps(DOMProps, labelProps, hoverProps, renderProps)}\n ref={ref}\n data-selected={isSelected || undefined}\n data-pressed={isPressed || undefined}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-invalid={state.isInvalid || undefined}\n data-required={state.isRequired || undefined}>\n <VisuallyHidden elementType=\"span\">\n <input {...mergeProps(inputProps, focusProps)} ref={inputRef} />\n </VisuallyHidden>\n {renderProps.children}\n </dom.label>\n );\n});\n"],"names":[],"version":3,"file":"RadioGroup.mjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria-components/src/RadioGroup.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 {\n AriaRadioGroupProps,\n AriaRadioProps,\n RadioAria,\n useRadio,\n useRadioGroup\n} from 'react-aria/useRadioGroup';\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RACValidation,\n removeDataAttributes,\n RenderProps,\n SlotProps,\n useContextProps,\n useRenderProps,\n useSlot,\n useSlottedContext\n} from './utils';\nimport {FieldErrorContext} from './FieldError';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FormContext} from './Form';\nimport {forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';\nimport {HoverEvents, Orientation} from '@react-types/shared';\nimport {LabelContext} from './Label';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {mergeRefs} from 'react-aria/mergeRefs';\nimport {RadioGroupState, useRadioGroupState} from 'react-stately/useRadioGroupState';\nimport React, {createContext, ForwardedRef, forwardRef, Ref, useContext, useMemo} from 'react';\nimport {SelectionIndicatorContext} from './SelectionIndicator';\nimport {SharedElementTransition} from './SharedElementTransition';\nimport {TextContext} from './Text';\nimport {useFocusRing} from 'react-aria/useFocusRing';\nimport {useHover} from 'react-aria/useHover';\nimport {useObjectRef} from 'react-aria/useObjectRef';\nimport {VisuallyHidden} from 'react-aria/VisuallyHidden';\n\nexport interface RadioGroupProps\n extends\n Omit<\n AriaRadioGroupProps,\n | 'children'\n | 'label'\n | 'description'\n | 'errorMessage'\n | 'validationState'\n | 'validationBehavior'\n >,\n RACValidation,\n RenderProps<RadioGroupRenderProps>,\n SlotProps,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioGroup'\n */\n className?: ClassNameOrFunction<RadioGroupRenderProps>;\n}\nexport interface RadioProps\n extends\n Omit<AriaRadioProps, 'children'>,\n HoverEvents,\n RenderProps<RadioRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Radio'\n */\n className?: ClassNameOrFunction<RadioRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: Ref<HTMLInputElement | null>;\n}\n\nexport interface RadioFieldProps\n extends\n Omit<AriaRadioProps, 'children'>,\n RenderProps<RadioFieldRenderProps>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioField'\n */\n className?: ClassNameOrFunction<RadioFieldRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: Ref<HTMLInputElement | null>;\n}\n\nexport interface RadioButtonProps\n extends\n HoverEvents,\n RenderProps<RadioButtonRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-RadioButton'\n */\n className?: ClassNameOrFunction<RadioButtonRenderProps>;\n}\n\nexport interface RadioGroupRenderProps {\n /**\n * The orientation of the radio group.\n *\n * @selector [data-orientation=\"horizontal | vertical\"]\n */\n orientation: Orientation;\n /**\n * Whether the radio group is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio group is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio group is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * Whether the radio group is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * State of the radio group.\n */\n state: RadioGroupState;\n}\n\nexport interface RadioRenderProps {\n /**\n * Whether the radio is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the radio is currently hovered with a mouse.\n *\n * @selector [data-hovered]\n */\n isHovered: boolean;\n /**\n * Whether the radio is currently in a pressed state.\n *\n * @selector [data-pressed]\n */\n isPressed: boolean;\n /**\n * Whether the radio is focused, either via a mouse or keyboard.\n *\n * @selector [data-focused]\n */\n isFocused: boolean;\n /**\n * Whether the radio is keyboard focused.\n *\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean;\n /**\n * Whether the radio is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the checkbox is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n}\n\nexport interface RadioFieldRenderProps {\n /**\n * Whether the radio is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the radio is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the radio is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the radio is invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the checkbox is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n}\n\nexport interface RadioButtonRenderProps extends RadioRenderProps {}\n\nexport const RadioGroupContext = createContext<ContextValue<RadioGroupProps, HTMLDivElement>>(null);\nexport const RadioContext =\n createContext<ContextValue<Partial<RadioProps>, HTMLLabelElement>>(null);\nexport const RadioFieldContext =\n createContext<ContextValue<Partial<RadioFieldProps>, HTMLDivElement>>(null);\nexport const RadioGroupStateContext = createContext<RadioGroupState | null>(null);\n\n/**\n * A radio group allows a user to select a single item from a list of mutually exclusive options.\n */\nexport const RadioGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioGroup(\n props: RadioGroupProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n [props, ref] = useContextProps(props, ref, RadioGroupContext);\n let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};\n let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';\n let state = useRadioGroupState({\n ...props,\n validationBehavior\n });\n\n let [labelRef, label] = useSlot(!props['aria-label'] && !props['aria-labelledby']);\n let {radioGroupProps, labelProps, descriptionProps, errorMessageProps, ...validation} =\n useRadioGroup(\n {\n ...props,\n label,\n validationBehavior\n },\n state\n );\n\n let renderProps = useRenderProps({\n ...props,\n values: {\n orientation: props.orientation || 'vertical',\n isDisabled: state.isDisabled,\n isReadOnly: state.isReadOnly,\n isRequired: state.isRequired,\n isInvalid: state.isInvalid,\n state\n },\n defaultClassName: 'react-aria-RadioGroup'\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps, radioGroupProps)}\n ref={ref}\n slot={props.slot || undefined}\n data-orientation={props.orientation || 'vertical'}\n data-invalid={state.isInvalid || undefined}\n data-disabled={state.isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-required={state.isRequired || undefined}>\n <Provider\n values={[\n [RadioGroupStateContext, state],\n [LabelContext, {...labelProps, ref: labelRef, elementType: 'span'}],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }\n ],\n [FieldErrorContext, validation]\n ]}>\n <SharedElementTransition>{renderProps.children}</SharedElementTransition>\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A radio represents an individual option within a radio group.\n *\n * @deprecated Use RadioField + RadioButton instead.\n */\nexport const Radio = /*#__PURE__*/ (forwardRef as forwardRefType)(function Radio(\n props: RadioProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, RadioContext);\n let state = React.useContext(RadioGroupStateContext)!;\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let aria = useRadio(\n {\n ...removeDataAttributes<RadioProps>(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n\n return (\n <InternalRadioContext.Provider\n value={{...aria, inputRef, defaultClassName: 'react-aria-Radio'}}>\n <RadioButton {...props} ref={ref} />\n </InternalRadioContext.Provider>\n );\n});\n\ninterface InternalRadioContextValue extends RadioAria {\n inputRef: RefObject<HTMLInputElement | null>;\n defaultClassName: string;\n}\n\nconst InternalRadioContext = createContext<InternalRadioContextValue | null>(null);\n\n/**\n * A RadioField represents an individual option within a radio group, containing a RadioButton and\n * optional description.\n */\nexport const RadioField = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioField(\n props: RadioFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, RadioFieldContext);\n let state = React.useContext(RadioGroupStateContext)!;\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let aria = useRadio(\n {\n ...removeDataAttributes<RadioFieldProps>(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n let {descriptionProps, isSelected, isDisabled} = aria;\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-RadioField',\n values: {\n isSelected,\n isDisabled,\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps)}\n ref={ref}\n data-selected={isSelected || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-invalid={state.isInvalid || undefined}\n data-required={state.isRequired || undefined}>\n <Provider\n values={[\n [SelectionIndicatorContext, {isSelected}],\n [\n InternalRadioContext,\n {\n ...aria,\n inputRef,\n defaultClassName: 'react-aria-RadioButton'\n }\n ],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps\n }\n }\n ]\n ]}>\n {renderProps.children}\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A RadioButton is the clickable area of a radio, including the indicator and label.\n */\nexport const RadioButton = /*#__PURE__*/ (forwardRef as forwardRefType)(function RadioButton(\n props: RadioButtonProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {labelProps, inputProps, isSelected, isDisabled, isPressed, defaultClassName, inputRef} =\n useContext(InternalRadioContext)!;\n let state = React.useContext(RadioGroupStateContext)!;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let interactionDisabled = isDisabled || state.isReadOnly;\n\n let {hoverProps, isHovered} = useHover({\n ...props,\n isDisabled: interactionDisabled\n });\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName,\n values: {\n isSelected,\n isPressed,\n isHovered,\n isFocused,\n isFocusVisible,\n isDisabled,\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.label\n {...mergeProps(DOMProps, labelProps, hoverProps, renderProps)}\n ref={ref}\n data-selected={isSelected || undefined}\n data-pressed={isPressed || undefined}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-invalid={state.isInvalid || undefined}\n data-required={state.isRequired || undefined}>\n <VisuallyHidden elementType=\"span\">\n <input {...mergeProps(inputProps, focusProps)} ref={inputRef} />\n </VisuallyHidden>\n {renderProps.children}\n </dom.label>\n );\n});\n"],"names":[],"version":3,"file":"RadioGroup.mjs.map"}
@@ -57,7 +57,10 @@ const $f78e777132fa7bc2$export$5cc1518e1ec171c = /*#__PURE__*/ (0, $goUg1$react.
57
57
  const $f78e777132fa7bc2$export$b5d5cf8927ab7262 = /*#__PURE__*/ (0, $goUg1$react.forwardRef)(function Switch(props, ref) {
58
58
  let { inputRef: userProvidedInputRef = null, ...otherProps } = props;
59
59
  [props, ref] = (0, $048d76b84370f141$exports.useContextProps)(otherProps, ref, $f78e777132fa7bc2$export$8699e3b644d5a28a);
60
- let inputRef = (0, $goUg1$reactariauseObjectRef.useObjectRef)((0, $goUg1$reactariamergeRefs.mergeRefs)(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null));
60
+ let inputRef = (0, $goUg1$reactariauseObjectRef.useObjectRef)((0, $goUg1$react.useMemo)(()=>(0, $goUg1$reactariamergeRefs.mergeRefs)(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null), [
61
+ userProvidedInputRef,
62
+ props.inputRef
63
+ ]));
61
64
  let state = (0, $goUg1$reactstatelyuseToggleState.useToggleState)(props);
62
65
  let aria = (0, $goUg1$reactariauseSwitch.useSwitch)({
63
66
  ...(0, $048d76b84370f141$exports.removeDataAttributes)(props),
@@ -90,7 +93,10 @@ const $f78e777132fa7bc2$export$208c2e617baf9fc3 = /*#__PURE__*/ (0, $goUg1$react
90
93
  [props, ref] = (0, $048d76b84370f141$exports.useContextProps)(otherProps, ref, $f78e777132fa7bc2$export$3e1405298f0cafda);
91
94
  let { validationBehavior: formValidationBehavior } = (0, $048d76b84370f141$exports.useSlottedContext)((0, $5adc12e2ce73be8f$exports.FormContext)) || {};
92
95
  let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';
93
- let inputRef = (0, $goUg1$reactariauseObjectRef.useObjectRef)((0, $goUg1$reactariamergeRefs.mergeRefs)(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null));
96
+ let inputRef = (0, $goUg1$reactariauseObjectRef.useObjectRef)((0, $goUg1$react.useMemo)(()=>(0, $goUg1$reactariamergeRefs.mergeRefs)(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null), [
97
+ userProvidedInputRef,
98
+ props.inputRef
99
+ ]));
94
100
  let state = (0, $goUg1$reactstatelyuseToggleState.useToggleState)(props);
95
101
  let aria = (0, $goUg1$reactariauseSwitch.useSwitch)({
96
102
  ...(0, $048d76b84370f141$exports.removeDataAttributes)(props),
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria-components/src/Switch.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 {AriaSwitchProps, SwitchAria, useSwitch} from 'react-aria/useSwitch';\n\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RACValidation,\n removeDataAttributes,\n RenderProps,\n SlotProps,\n useContextProps,\n useRenderProps,\n useSlottedContext\n} from './utils';\nimport {FieldErrorContext} from './FieldError';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FormContext} from './Form';\nimport {forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';\nimport {HoverEvents} from '@react-types/shared';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {mergeRefs} from 'react-aria/mergeRefs';\nimport React, {createContext, ForwardedRef, forwardRef, useContext} from 'react';\nimport {TextContext} from './Text';\nimport {ToggleState, useToggleState} from 'react-stately/useToggleState';\nimport {useFocusRing} from 'react-aria/useFocusRing';\nimport {useHover} from 'react-aria/useHover';\nimport {useObjectRef} from 'react-aria/useObjectRef';\nimport {VisuallyHidden} from 'react-aria/VisuallyHidden';\n\nexport interface SwitchProps\n extends\n Omit<\n AriaSwitchProps,\n | 'children'\n | 'validationState'\n | 'validationBehavior'\n | 'isRequired'\n | 'isInvalid'\n | 'validate'\n >,\n HoverEvents,\n RenderProps<SwitchRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Switch'\n */\n className?: ClassNameOrFunction<SwitchRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: RefObject<HTMLInputElement | null>;\n}\n\nexport interface SwitchFieldProps\n extends\n Omit<AriaSwitchProps, 'children' | 'validationState' | 'validationBehavior'>,\n RACValidation,\n RenderProps<SwitchFieldRenderProps>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-SwitchField'\n */\n className?: ClassNameOrFunction<SwitchFieldRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: RefObject<HTMLInputElement | null>;\n}\n\nexport interface SwitchButtonProps\n extends\n HoverEvents,\n RenderProps<SwitchButtonRenderProps, 'label'>,\n SlotProps,\n GlobalDOMAttributes<HTMLLabelElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-SwitchButton'\n */\n className?: ClassNameOrFunction<SwitchButtonRenderProps>;\n}\n\nexport interface SwitchRenderProps {\n /**\n * Whether the switch is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the switch is currently hovered with a mouse.\n *\n * @selector [data-hovered]\n */\n isHovered: boolean;\n /**\n * Whether the switch is currently in a pressed state.\n *\n * @selector [data-pressed]\n */\n isPressed: boolean;\n /**\n * Whether the switch is focused, either via a mouse or keyboard.\n *\n * @selector [data-focused]\n */\n isFocused: boolean;\n /**\n * Whether the switch is keyboard focused.\n *\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean;\n /**\n * Whether the switch is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the switch is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * State of the switch.\n */\n state: ToggleState;\n}\n\nexport interface SwitchFieldRenderProps {\n /**\n * Whether the switch is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the switch is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the switch is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the switch invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the switch is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * State of the switch.\n */\n state: ToggleState;\n}\n\nexport interface SwitchButtonRenderProps extends SwitchRenderProps {\n /**\n * Whether the switch invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the switch is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * State of the switch.\n */\n state: ToggleState;\n}\n\nexport const SwitchContext = createContext<ContextValue<SwitchProps, HTMLLabelElement>>(null);\nexport const SwitchFieldContext =\n createContext<ContextValue<SwitchFieldProps, HTMLDivElement>>(null);\nexport const ToggleStateContext = createContext<ToggleState | null>(null);\n\n/**\n * A switch allows a user to turn a setting on or off.\n *\n * @deprecated Use SwitchField + SwitchButton instead.\n */\nexport const Switch = /*#__PURE__*/ (forwardRef as forwardRefType)(function Switch(\n props: SwitchProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, SwitchContext);\n let inputRef = useObjectRef(\n mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null)\n );\n let state = useToggleState(props);\n let aria = useSwitch(\n {\n ...removeDataAttributes(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n\n return (\n <Provider\n values={[\n [ToggleStateContext, state],\n [\n InternalSwitchContext,\n {\n ...aria,\n inputRef,\n defaultClassName: 'react-aria-Switch'\n }\n ]\n ]}>\n <SwitchButton {...props} ref={ref} />\n </Provider>\n );\n});\n\ninterface InternalSwitchContextValue extends SwitchAria {\n inputRef: RefObject<HTMLInputElement | null>;\n defaultClassName: string;\n isRequired?: boolean;\n}\n\nconst InternalSwitchContext = createContext<InternalSwitchContextValue | null>(null);\n\n/**\n * A switch allows a user to turn a setting on or off, with support for validation and help text.\n */\nexport const SwitchField = /*#__PURE__*/ (forwardRef as forwardRefType)(function Switch(\n props: SwitchFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, SwitchFieldContext);\n let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};\n let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';\n let inputRef = useObjectRef(\n mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null)\n );\n let state = useToggleState(props);\n let aria = useSwitch(\n {\n ...removeDataAttributes(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children,\n validationBehavior\n },\n state,\n inputRef\n );\n let {\n descriptionProps,\n errorMessageProps,\n isSelected,\n isDisabled,\n isReadOnly,\n isInvalid,\n validationDetails,\n validationErrors\n } = aria;\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-SwitchField',\n values: {\n isSelected,\n isDisabled,\n isReadOnly,\n isInvalid,\n isRequired: props.isRequired || false,\n state\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps)}\n ref={ref}\n slot={props.slot || undefined}\n data-selected={isSelected || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={isReadOnly || undefined}\n data-invalid={isInvalid || undefined}\n data-required={props.isRequired || undefined}>\n <Provider\n values={[\n [ToggleStateContext, state],\n [\n InternalSwitchContext,\n {\n ...aria,\n inputRef,\n defaultClassName: 'react-aria-SwitchButton',\n isRequired: props.isRequired\n }\n ],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }\n ],\n [FieldErrorContext, {isInvalid, validationDetails, validationErrors}]\n ]}>\n {renderProps.children}\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A switch button is the clickable area of a switch, including the indicator and label.\n */\nexport const SwitchButton = /*#__PURE__*/ (forwardRef as forwardRefType)(function SwitchButton(\n props: SwitchButtonProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {\n labelProps,\n inputProps,\n isSelected,\n isDisabled,\n isReadOnly,\n isPressed,\n isInvalid,\n inputRef,\n defaultClassName,\n isRequired\n } = useContext(InternalSwitchContext)!;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let isInteractionDisabled = isDisabled || isReadOnly;\n let state = useContext(ToggleStateContext)!;\n\n let {hoverProps, isHovered} = useHover({\n ...props,\n isDisabled: isInteractionDisabled\n });\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName,\n values: {\n isSelected,\n isPressed,\n isHovered,\n isFocused,\n isFocusVisible,\n isDisabled,\n isReadOnly,\n isInvalid,\n isRequired: isRequired || false,\n state\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.label\n {...mergeProps(DOMProps, labelProps, hoverProps, renderProps)}\n ref={ref}\n slot={props.slot || undefined}\n data-selected={isSelected || undefined}\n data-pressed={isPressed || undefined}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={isReadOnly || undefined}\n data-invalid={isInvalid || undefined}\n data-required={isRequired || undefined}>\n <VisuallyHidden elementType=\"span\">\n <input {...mergeProps(inputProps, focusProps)} ref={inputRef} />\n </VisuallyHidden>\n {renderProps.children}\n </dom.label>\n );\n});\n"],"names":[],"version":3,"file":"Switch.cjs.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;;;;;AAwMM,MAAM,0DAAgB,CAAA,GAAA,0BAAY,EAA+C;AACjF,MAAM,0DACX,CAAA,GAAA,0BAAY,EAAkD;AACzD,MAAM,yDAAqB,CAAA,GAAA,0BAAY,EAAsB;AAO7D,MAAM,4CAAuB,AAAd,WAAW,GAAI,CAAA,GAAA,uBAAS,EAAqB,SAAS,OAC1E,KAAkB,EAClB,GAAmC;IAEnC,IAAI,EAAC,UAAU,uBAAuB,IAAI,EAAE,GAAG,YAAW,GAAG;IAC7D,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,YAAY,KAAK;IAChD,IAAI,WAAW,CAAA,GAAA,yCAAW,EACxB,CAAA,GAAA,oBAAM,EACJ,IAAM,CAAA,GAAA,mCAAQ,EAAE,sBAAsB,MAAM,QAAQ,KAAK,YAAY,MAAM,QAAQ,GAAG,OACtF;QAAC;QAAsB,MAAM,QAAQ;KAAC;IAG1C,IAAI,QAAQ,CAAA,GAAA,gDAAa,EAAE;IAC3B,IAAI,OAAO,CAAA,GAAA,mCAAQ,EACjB;QACE,GAAG,CAAA,GAAA,8CAAmB,EAAE,MAAM;QAC9B,kDAAkD;QAClD,UAAU,OAAO,MAAM,QAAQ,KAAK,aAAa,OAAO,MAAM,QAAQ;IACxE,GACA,OACA;IAGF,qBACE,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBAAC;gBAAoB;aAAM;YAC3B;gBACE;gBACA;oBACE,GAAG,IAAI;8BACP;oBACA,kBAAkB;gBACpB;aACD;SACF;qBACD,0DAAC;QAAc,GAAG,KAAK;QAAE,KAAK;;AAGpC;AAQA,MAAM,4DAAwB,CAAA,GAAA,0BAAY,EAAqC;AAKxE,MAAM,4CAA4B,AAAd,WAAW,GAAI,CAAA,GAAA,uBAAS,EAAqB,SAAS,OAC/E,KAAuB,EACvB,GAAiC;IAEjC,IAAI,EAAC,UAAU,uBAAuB,IAAI,EAAE,GAAG,YAAW,GAAG;IAC7D,CAAC,OAAO,IAAI,GAAG,CAAA,GAAA,yCAAc,EAAE,YAAY,KAAK;IAChD,IAAI,EAAC,oBAAoB,sBAAsB,EAAC,GAAG,CAAA,GAAA,2CAAgB,EAAE,CAAA,GAAA,qCAAU,MAAM,CAAC;IACtF,IAAI,qBAAqB,MAAM,kBAAkB,IAAI,0BAA0B;IAC/E,IAAI,WAAW,CAAA,GAAA,yCAAW,EACxB,CAAA,GAAA,oBAAM,EACJ,IAAM,CAAA,GAAA,mCAAQ,EAAE,sBAAsB,MAAM,QAAQ,KAAK,YAAY,MAAM,QAAQ,GAAG,OACtF;QAAC;QAAsB,MAAM,QAAQ;KAAC;IAG1C,IAAI,QAAQ,CAAA,GAAA,gDAAa,EAAE;IAC3B,IAAI,OAAO,CAAA,GAAA,mCAAQ,EACjB;QACE,GAAG,CAAA,GAAA,8CAAmB,EAAE,MAAM;QAC9B,kDAAkD;QAClD,UAAU,OAAO,MAAM,QAAQ,KAAK,aAAa,OAAO,MAAM,QAAQ;4BACtE;IACF,GACA,OACA;IAEF,IAAI,oBACF,gBAAgB,qBAChB,iBAAiB,cACjB,UAAU,cACV,UAAU,cACV,UAAU,aACV,SAAS,qBACT,iBAAiB,oBACjB,gBAAgB,EACjB,GAAG;IAEJ,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,KAAK;QACR,kBAAkB;QAClB,QAAQ;wBACN;wBACA;wBACA;uBACA;YACA,YAAY,MAAM,UAAU,IAAI;mBAChC;QACF;IACF;IAEA,IAAI,WAAW,CAAA,GAAA,6CAAa,EAAE,OAAO;QAAC,QAAQ;IAAI;IAClD,OAAO,SAAS,EAAE;IAClB,OAAO,SAAS,OAAO;IAEvB,qBACE,0DAAC,CAAA,GAAA,6BAAE,EAAE,GAAG;QACL,GAAG,CAAA,GAAA,qCAAS,EAAE,UAAU,YAAY;QACrC,KAAK;QACL,MAAM,MAAM,IAAI,IAAI;QACpB,iBAAe,cAAc;QAC7B,iBAAe,cAAc;QAC7B,iBAAe,cAAc;QAC7B,gBAAc,aAAa;QAC3B,iBAAe,MAAM,UAAU,IAAI;qBACnC,0DAAC,CAAA,GAAA,kCAAO;QACN,QAAQ;YACN;gBAAC;gBAAoB;aAAM;YAC3B;gBACE;gBACA;oBACE,GAAG,IAAI;8BACP;oBACA,kBAAkB;oBAClB,YAAY,MAAM,UAAU;gBAC9B;aACD;YACD;gBACE,CAAA,GAAA,qCAAU;gBACV;oBACE,OAAO;wBACL,aAAa;wBACb,cAAc;oBAChB;gBACF;aACD;YACD;gBAAC,CAAA,GAAA,2CAAgB;gBAAG;+BAAC;uCAAW;sCAAmB;gBAAgB;aAAE;SACtE;OACA,YAAY,QAAQ;AAI7B;AAKO,MAAM,4CAA6B,AAAd,WAAW,GAAI,CAAA,GAAA,uBAAS,EAAqB,SAAS,aAChF,KAAwB,EACxB,GAAmC;IAEnC,IAAI,cACF,UAAU,cACV,UAAU,cACV,UAAU,cACV,UAAU,cACV,UAAU,aACV,SAAS,aACT,SAAS,YACT,QAAQ,oBACR,gBAAgB,cAChB,UAAU,EACX,GAAG,CAAA,GAAA,uBAAS,EAAE;IACf,IAAI,aAAC,SAAS,kBAAE,cAAc,cAAE,UAAU,EAAC,GAAG,CAAA,GAAA,yCAAW;IACzD,IAAI,wBAAwB,cAAc;IAC1C,IAAI,QAAQ,CAAA,GAAA,uBAAS,EAAE;IAEvB,IAAI,cAAC,UAAU,aAAE,SAAS,EAAC,GAAG,CAAA,GAAA,iCAAO,EAAE;QACrC,GAAG,KAAK;QACR,YAAY;IACd;IAEA,IAAI,cAAc,CAAA,GAAA,wCAAa,EAAE;QAC/B,GAAG,KAAK;0BACR;QACA,QAAQ;wBACN;uBACA;uBACA;uBACA;4BACA;wBACA;wBACA;uBACA;YACA,YAAY,cAAc;mBAC1B;QACF;IACF;IAEA,IAAI,WAAW,CAAA,GAAA,6CAAa,EAAE,OAAO;QAAC,QAAQ;IAAI;IAClD,OAAO,SAAS,EAAE;IAClB,OAAO,SAAS,OAAO;IAEvB,qBACE,0DAAC,CAAA,GAAA,6BAAE,EAAE,KAAK;QACP,GAAG,CAAA,GAAA,qCAAS,EAAE,UAAU,YAAY,YAAY,YAAY;QAC7D,KAAK;QACL,MAAM,MAAM,IAAI,IAAI;QACpB,iBAAe,cAAc;QAC7B,gBAAc,aAAa;QAC3B,gBAAc,aAAa;QAC3B,gBAAc,aAAa;QAC3B,sBAAoB,kBAAkB;QACtC,iBAAe,cAAc;QAC7B,iBAAe,cAAc;QAC7B,gBAAc,aAAa;QAC3B,iBAAe,cAAc;qBAC7B,0DAAC,CAAA,GAAA,6CAAa;QAAE,aAAY;qBAC1B,0DAAC;QAAO,GAAG,CAAA,GAAA,qCAAS,EAAE,YAAY,WAAW;QAAE,KAAK;SAErD,YAAY,QAAQ;AAG3B","sources":["packages/react-aria-components/src/Switch.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 {AriaSwitchProps, SwitchAria, useSwitch} from 'react-aria/useSwitch';\n\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RACValidation,\n removeDataAttributes,\n RenderProps,\n SlotProps,\n useContextProps,\n useRenderProps,\n useSlottedContext\n} from './utils';\nimport {FieldErrorContext} from './FieldError';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FormContext} from './Form';\nimport {forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';\nimport {HoverEvents} from '@react-types/shared';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {mergeRefs} from 'react-aria/mergeRefs';\nimport React, {createContext, ForwardedRef, forwardRef, Ref, useContext, useMemo} from 'react';\nimport {TextContext} from './Text';\nimport {ToggleState, useToggleState} from 'react-stately/useToggleState';\nimport {useFocusRing} from 'react-aria/useFocusRing';\nimport {useHover} from 'react-aria/useHover';\nimport {useObjectRef} from 'react-aria/useObjectRef';\nimport {VisuallyHidden} from 'react-aria/VisuallyHidden';\n\nexport interface SwitchProps\n extends\n Omit<\n AriaSwitchProps,\n | 'children'\n | 'validationState'\n | 'validationBehavior'\n | 'isRequired'\n | 'isInvalid'\n | 'validate'\n >,\n HoverEvents,\n RenderProps<SwitchRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Switch'\n */\n className?: ClassNameOrFunction<SwitchRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: Ref<HTMLInputElement | null>;\n}\n\nexport interface SwitchFieldProps\n extends\n Omit<AriaSwitchProps, 'children' | 'validationState' | 'validationBehavior'>,\n RACValidation,\n RenderProps<SwitchFieldRenderProps>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-SwitchField'\n */\n className?: ClassNameOrFunction<SwitchFieldRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: Ref<HTMLInputElement | null>;\n}\n\nexport interface SwitchButtonProps\n extends\n HoverEvents,\n RenderProps<SwitchButtonRenderProps, 'label'>,\n SlotProps,\n GlobalDOMAttributes<HTMLLabelElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-SwitchButton'\n */\n className?: ClassNameOrFunction<SwitchButtonRenderProps>;\n}\n\nexport interface SwitchRenderProps {\n /**\n * Whether the switch is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the switch is currently hovered with a mouse.\n *\n * @selector [data-hovered]\n */\n isHovered: boolean;\n /**\n * Whether the switch is currently in a pressed state.\n *\n * @selector [data-pressed]\n */\n isPressed: boolean;\n /**\n * Whether the switch is focused, either via a mouse or keyboard.\n *\n * @selector [data-focused]\n */\n isFocused: boolean;\n /**\n * Whether the switch is keyboard focused.\n *\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean;\n /**\n * Whether the switch is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the switch is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * State of the switch.\n */\n state: ToggleState;\n}\n\nexport interface SwitchFieldRenderProps {\n /**\n * Whether the switch is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the switch is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the switch is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the switch invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the switch is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * State of the switch.\n */\n state: ToggleState;\n}\n\nexport interface SwitchButtonRenderProps extends SwitchRenderProps {\n /**\n * Whether the switch invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the switch is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * State of the switch.\n */\n state: ToggleState;\n}\n\nexport const SwitchContext = createContext<ContextValue<SwitchProps, HTMLLabelElement>>(null);\nexport const SwitchFieldContext =\n createContext<ContextValue<SwitchFieldProps, HTMLDivElement>>(null);\nexport const ToggleStateContext = createContext<ToggleState | null>(null);\n\n/**\n * A switch allows a user to turn a setting on or off.\n *\n * @deprecated Use SwitchField + SwitchButton instead.\n */\nexport const Switch = /*#__PURE__*/ (forwardRef as forwardRefType)(function Switch(\n props: SwitchProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, SwitchContext);\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let state = useToggleState(props);\n let aria = useSwitch(\n {\n ...removeDataAttributes(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n\n return (\n <Provider\n values={[\n [ToggleStateContext, state],\n [\n InternalSwitchContext,\n {\n ...aria,\n inputRef,\n defaultClassName: 'react-aria-Switch'\n }\n ]\n ]}>\n <SwitchButton {...props} ref={ref} />\n </Provider>\n );\n});\n\ninterface InternalSwitchContextValue extends SwitchAria {\n inputRef: RefObject<HTMLInputElement | null>;\n defaultClassName: string;\n isRequired?: boolean;\n}\n\nconst InternalSwitchContext = createContext<InternalSwitchContextValue | null>(null);\n\n/**\n * A switch allows a user to turn a setting on or off, with support for validation and help text.\n */\nexport const SwitchField = /*#__PURE__*/ (forwardRef as forwardRefType)(function Switch(\n props: SwitchFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, SwitchFieldContext);\n let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};\n let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let state = useToggleState(props);\n let aria = useSwitch(\n {\n ...removeDataAttributes(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children,\n validationBehavior\n },\n state,\n inputRef\n );\n let {\n descriptionProps,\n errorMessageProps,\n isSelected,\n isDisabled,\n isReadOnly,\n isInvalid,\n validationDetails,\n validationErrors\n } = aria;\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-SwitchField',\n values: {\n isSelected,\n isDisabled,\n isReadOnly,\n isInvalid,\n isRequired: props.isRequired || false,\n state\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps)}\n ref={ref}\n slot={props.slot || undefined}\n data-selected={isSelected || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={isReadOnly || undefined}\n data-invalid={isInvalid || undefined}\n data-required={props.isRequired || undefined}>\n <Provider\n values={[\n [ToggleStateContext, state],\n [\n InternalSwitchContext,\n {\n ...aria,\n inputRef,\n defaultClassName: 'react-aria-SwitchButton',\n isRequired: props.isRequired\n }\n ],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }\n ],\n [FieldErrorContext, {isInvalid, validationDetails, validationErrors}]\n ]}>\n {renderProps.children}\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A switch button is the clickable area of a switch, including the indicator and label.\n */\nexport const SwitchButton = /*#__PURE__*/ (forwardRef as forwardRefType)(function SwitchButton(\n props: SwitchButtonProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {\n labelProps,\n inputProps,\n isSelected,\n isDisabled,\n isReadOnly,\n isPressed,\n isInvalid,\n inputRef,\n defaultClassName,\n isRequired\n } = useContext(InternalSwitchContext)!;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let isInteractionDisabled = isDisabled || isReadOnly;\n let state = useContext(ToggleStateContext)!;\n\n let {hoverProps, isHovered} = useHover({\n ...props,\n isDisabled: isInteractionDisabled\n });\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName,\n values: {\n isSelected,\n isPressed,\n isHovered,\n isFocused,\n isFocusVisible,\n isDisabled,\n isReadOnly,\n isInvalid,\n isRequired: isRequired || false,\n state\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.label\n {...mergeProps(DOMProps, labelProps, hoverProps, renderProps)}\n ref={ref}\n slot={props.slot || undefined}\n data-selected={isSelected || undefined}\n data-pressed={isPressed || undefined}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={isReadOnly || undefined}\n data-invalid={isInvalid || undefined}\n data-required={isRequired || undefined}>\n <VisuallyHidden elementType=\"span\">\n <input {...mergeProps(inputProps, focusProps)} ref={inputRef} />\n </VisuallyHidden>\n {renderProps.children}\n </dom.label>\n );\n});\n"],"names":[],"version":3,"file":"Switch.cjs.map"}
@@ -6,7 +6,7 @@ import {useSwitch as $aLaER$useSwitch} from "react-aria/useSwitch";
6
6
  import {filterDOMProps as $aLaER$filterDOMProps} from "react-aria/filterDOMProps";
7
7
  import {mergeProps as $aLaER$mergeProps} from "react-aria/mergeProps";
8
8
  import {mergeRefs as $aLaER$mergeRefs} from "react-aria/mergeRefs";
9
- import $aLaER$react, {createContext as $aLaER$createContext, forwardRef as $aLaER$forwardRef, useContext as $aLaER$useContext} from "react";
9
+ import $aLaER$react, {createContext as $aLaER$createContext, forwardRef as $aLaER$forwardRef, useMemo as $aLaER$useMemo, useContext as $aLaER$useContext} from "react";
10
10
  import {useToggleState as $aLaER$useToggleState} from "react-stately/useToggleState";
11
11
  import {useFocusRing as $aLaER$useFocusRing} from "react-aria/useFocusRing";
12
12
  import {useHover as $aLaER$useHover} from "react-aria/useHover";
@@ -43,7 +43,10 @@ const $7a050e53d1672c98$export$5cc1518e1ec171c = /*#__PURE__*/ (0, $aLaER$create
43
43
  const $7a050e53d1672c98$export$b5d5cf8927ab7262 = /*#__PURE__*/ (0, $aLaER$forwardRef)(function Switch(props, ref) {
44
44
  let { inputRef: userProvidedInputRef = null, ...otherProps } = props;
45
45
  [props, ref] = (0, $b7b7a92703138c9b$export$29f1550f4b0d4415)(otherProps, ref, $7a050e53d1672c98$export$8699e3b644d5a28a);
46
- let inputRef = (0, $aLaER$useObjectRef)((0, $aLaER$mergeRefs)(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null));
46
+ let inputRef = (0, $aLaER$useObjectRef)((0, $aLaER$useMemo)(()=>(0, $aLaER$mergeRefs)(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null), [
47
+ userProvidedInputRef,
48
+ props.inputRef
49
+ ]));
47
50
  let state = (0, $aLaER$useToggleState)(props);
48
51
  let aria = (0, $aLaER$useSwitch)({
49
52
  ...(0, $b7b7a92703138c9b$export$ef03459518577ad4)(props),
@@ -77,7 +80,10 @@ const $7a050e53d1672c98$export$208c2e617baf9fc3 = /*#__PURE__*/ (0, $aLaER$forwa
77
80
  let { validationBehavior: formValidationBehavior } = (0, $b7b7a92703138c9b$export$fabf2dc03a41866e)((0, $c7332d4a2d191cd2$export$c24727297075ec6a)) || {};
78
81
  var _props_validationBehavior, _ref;
79
82
  let validationBehavior = (_ref = (_props_validationBehavior = props.validationBehavior) !== null && _props_validationBehavior !== void 0 ? _props_validationBehavior : formValidationBehavior) !== null && _ref !== void 0 ? _ref : 'native';
80
- let inputRef = (0, $aLaER$useObjectRef)((0, $aLaER$mergeRefs)(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null));
83
+ let inputRef = (0, $aLaER$useObjectRef)((0, $aLaER$useMemo)(()=>(0, $aLaER$mergeRefs)(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null), [
84
+ userProvidedInputRef,
85
+ props.inputRef
86
+ ]));
81
87
  let state = (0, $aLaER$useToggleState)(props);
82
88
  let aria = (0, $aLaER$useSwitch)({
83
89
  ...(0, $b7b7a92703138c9b$export$ef03459518577ad4)(props),
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria-components/src/Switch.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 {AriaSwitchProps, SwitchAria, useSwitch} from 'react-aria/useSwitch';\n\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RACValidation,\n removeDataAttributes,\n RenderProps,\n SlotProps,\n useContextProps,\n useRenderProps,\n useSlottedContext\n} from './utils';\nimport {FieldErrorContext} from './FieldError';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FormContext} from './Form';\nimport {forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';\nimport {HoverEvents} from '@react-types/shared';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {mergeRefs} from 'react-aria/mergeRefs';\nimport React, {createContext, ForwardedRef, forwardRef, useContext} from 'react';\nimport {TextContext} from './Text';\nimport {ToggleState, useToggleState} from 'react-stately/useToggleState';\nimport {useFocusRing} from 'react-aria/useFocusRing';\nimport {useHover} from 'react-aria/useHover';\nimport {useObjectRef} from 'react-aria/useObjectRef';\nimport {VisuallyHidden} from 'react-aria/VisuallyHidden';\n\nexport interface SwitchProps\n extends\n Omit<\n AriaSwitchProps,\n | 'children'\n | 'validationState'\n | 'validationBehavior'\n | 'isRequired'\n | 'isInvalid'\n | 'validate'\n >,\n HoverEvents,\n RenderProps<SwitchRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Switch'\n */\n className?: ClassNameOrFunction<SwitchRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: RefObject<HTMLInputElement | null>;\n}\n\nexport interface SwitchFieldProps\n extends\n Omit<AriaSwitchProps, 'children' | 'validationState' | 'validationBehavior'>,\n RACValidation,\n RenderProps<SwitchFieldRenderProps>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-SwitchField'\n */\n className?: ClassNameOrFunction<SwitchFieldRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: RefObject<HTMLInputElement | null>;\n}\n\nexport interface SwitchButtonProps\n extends\n HoverEvents,\n RenderProps<SwitchButtonRenderProps, 'label'>,\n SlotProps,\n GlobalDOMAttributes<HTMLLabelElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-SwitchButton'\n */\n className?: ClassNameOrFunction<SwitchButtonRenderProps>;\n}\n\nexport interface SwitchRenderProps {\n /**\n * Whether the switch is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the switch is currently hovered with a mouse.\n *\n * @selector [data-hovered]\n */\n isHovered: boolean;\n /**\n * Whether the switch is currently in a pressed state.\n *\n * @selector [data-pressed]\n */\n isPressed: boolean;\n /**\n * Whether the switch is focused, either via a mouse or keyboard.\n *\n * @selector [data-focused]\n */\n isFocused: boolean;\n /**\n * Whether the switch is keyboard focused.\n *\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean;\n /**\n * Whether the switch is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the switch is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * State of the switch.\n */\n state: ToggleState;\n}\n\nexport interface SwitchFieldRenderProps {\n /**\n * Whether the switch is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the switch is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the switch is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the switch invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the switch is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * State of the switch.\n */\n state: ToggleState;\n}\n\nexport interface SwitchButtonRenderProps extends SwitchRenderProps {\n /**\n * Whether the switch invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the switch is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * State of the switch.\n */\n state: ToggleState;\n}\n\nexport const SwitchContext = createContext<ContextValue<SwitchProps, HTMLLabelElement>>(null);\nexport const SwitchFieldContext =\n createContext<ContextValue<SwitchFieldProps, HTMLDivElement>>(null);\nexport const ToggleStateContext = createContext<ToggleState | null>(null);\n\n/**\n * A switch allows a user to turn a setting on or off.\n *\n * @deprecated Use SwitchField + SwitchButton instead.\n */\nexport const Switch = /*#__PURE__*/ (forwardRef as forwardRefType)(function Switch(\n props: SwitchProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, SwitchContext);\n let inputRef = useObjectRef(\n mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null)\n );\n let state = useToggleState(props);\n let aria = useSwitch(\n {\n ...removeDataAttributes(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n\n return (\n <Provider\n values={[\n [ToggleStateContext, state],\n [\n InternalSwitchContext,\n {\n ...aria,\n inputRef,\n defaultClassName: 'react-aria-Switch'\n }\n ]\n ]}>\n <SwitchButton {...props} ref={ref} />\n </Provider>\n );\n});\n\ninterface InternalSwitchContextValue extends SwitchAria {\n inputRef: RefObject<HTMLInputElement | null>;\n defaultClassName: string;\n isRequired?: boolean;\n}\n\nconst InternalSwitchContext = createContext<InternalSwitchContextValue | null>(null);\n\n/**\n * A switch allows a user to turn a setting on or off, with support for validation and help text.\n */\nexport const SwitchField = /*#__PURE__*/ (forwardRef as forwardRefType)(function Switch(\n props: SwitchFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, SwitchFieldContext);\n let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};\n let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';\n let inputRef = useObjectRef(\n mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null)\n );\n let state = useToggleState(props);\n let aria = useSwitch(\n {\n ...removeDataAttributes(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children,\n validationBehavior\n },\n state,\n inputRef\n );\n let {\n descriptionProps,\n errorMessageProps,\n isSelected,\n isDisabled,\n isReadOnly,\n isInvalid,\n validationDetails,\n validationErrors\n } = aria;\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-SwitchField',\n values: {\n isSelected,\n isDisabled,\n isReadOnly,\n isInvalid,\n isRequired: props.isRequired || false,\n state\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps)}\n ref={ref}\n slot={props.slot || undefined}\n data-selected={isSelected || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={isReadOnly || undefined}\n data-invalid={isInvalid || undefined}\n data-required={props.isRequired || undefined}>\n <Provider\n values={[\n [ToggleStateContext, state],\n [\n InternalSwitchContext,\n {\n ...aria,\n inputRef,\n defaultClassName: 'react-aria-SwitchButton',\n isRequired: props.isRequired\n }\n ],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }\n ],\n [FieldErrorContext, {isInvalid, validationDetails, validationErrors}]\n ]}>\n {renderProps.children}\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A switch button is the clickable area of a switch, including the indicator and label.\n */\nexport const SwitchButton = /*#__PURE__*/ (forwardRef as forwardRefType)(function SwitchButton(\n props: SwitchButtonProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {\n labelProps,\n inputProps,\n isSelected,\n isDisabled,\n isReadOnly,\n isPressed,\n isInvalid,\n inputRef,\n defaultClassName,\n isRequired\n } = useContext(InternalSwitchContext)!;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let isInteractionDisabled = isDisabled || isReadOnly;\n let state = useContext(ToggleStateContext)!;\n\n let {hoverProps, isHovered} = useHover({\n ...props,\n isDisabled: isInteractionDisabled\n });\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName,\n values: {\n isSelected,\n isPressed,\n isHovered,\n isFocused,\n isFocusVisible,\n isDisabled,\n isReadOnly,\n isInvalid,\n isRequired: isRequired || false,\n state\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.label\n {...mergeProps(DOMProps, labelProps, hoverProps, renderProps)}\n ref={ref}\n slot={props.slot || undefined}\n data-selected={isSelected || undefined}\n data-pressed={isPressed || undefined}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={isReadOnly || undefined}\n data-invalid={isInvalid || undefined}\n data-required={isRequired || undefined}>\n <VisuallyHidden elementType=\"span\">\n <input {...mergeProps(inputProps, focusProps)} ref={inputRef} />\n </VisuallyHidden>\n {renderProps.children}\n </dom.label>\n );\n});\n"],"names":[],"version":3,"file":"Switch.js.map"}
1
+ {"mappings":"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","sources":["packages/react-aria-components/src/Switch.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 {AriaSwitchProps, SwitchAria, useSwitch} from 'react-aria/useSwitch';\n\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RACValidation,\n removeDataAttributes,\n RenderProps,\n SlotProps,\n useContextProps,\n useRenderProps,\n useSlottedContext\n} from './utils';\nimport {FieldErrorContext} from './FieldError';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FormContext} from './Form';\nimport {forwardRefType, GlobalDOMAttributes, RefObject} from '@react-types/shared';\nimport {HoverEvents} from '@react-types/shared';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {mergeRefs} from 'react-aria/mergeRefs';\nimport React, {createContext, ForwardedRef, forwardRef, Ref, useContext, useMemo} from 'react';\nimport {TextContext} from './Text';\nimport {ToggleState, useToggleState} from 'react-stately/useToggleState';\nimport {useFocusRing} from 'react-aria/useFocusRing';\nimport {useHover} from 'react-aria/useHover';\nimport {useObjectRef} from 'react-aria/useObjectRef';\nimport {VisuallyHidden} from 'react-aria/VisuallyHidden';\n\nexport interface SwitchProps\n extends\n Omit<\n AriaSwitchProps,\n | 'children'\n | 'validationState'\n | 'validationBehavior'\n | 'isRequired'\n | 'isInvalid'\n | 'validate'\n >,\n HoverEvents,\n RenderProps<SwitchRenderProps, 'label'>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLLabelElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Switch'\n */\n className?: ClassNameOrFunction<SwitchRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: Ref<HTMLInputElement | null>;\n}\n\nexport interface SwitchFieldProps\n extends\n Omit<AriaSwitchProps, 'children' | 'validationState' | 'validationBehavior'>,\n RACValidation,\n RenderProps<SwitchFieldRenderProps>,\n SlotProps,\n Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-SwitchField'\n */\n className?: ClassNameOrFunction<SwitchFieldRenderProps>;\n /**\n * A ref for the HTML input element.\n */\n inputRef?: Ref<HTMLInputElement | null>;\n}\n\nexport interface SwitchButtonProps\n extends\n HoverEvents,\n RenderProps<SwitchButtonRenderProps, 'label'>,\n SlotProps,\n GlobalDOMAttributes<HTMLLabelElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-SwitchButton'\n */\n className?: ClassNameOrFunction<SwitchButtonRenderProps>;\n}\n\nexport interface SwitchRenderProps {\n /**\n * Whether the switch is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the switch is currently hovered with a mouse.\n *\n * @selector [data-hovered]\n */\n isHovered: boolean;\n /**\n * Whether the switch is currently in a pressed state.\n *\n * @selector [data-pressed]\n */\n isPressed: boolean;\n /**\n * Whether the switch is focused, either via a mouse or keyboard.\n *\n * @selector [data-focused]\n */\n isFocused: boolean;\n /**\n * Whether the switch is keyboard focused.\n *\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean;\n /**\n * Whether the switch is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the switch is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * State of the switch.\n */\n state: ToggleState;\n}\n\nexport interface SwitchFieldRenderProps {\n /**\n * Whether the switch is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the switch is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the switch is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n /**\n * Whether the switch invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the switch is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * State of the switch.\n */\n state: ToggleState;\n}\n\nexport interface SwitchButtonRenderProps extends SwitchRenderProps {\n /**\n * Whether the switch invalid.\n *\n * @selector [data-invalid]\n */\n isInvalid: boolean;\n /**\n * Whether the switch is required.\n *\n * @selector [data-required]\n */\n isRequired: boolean;\n /**\n * State of the switch.\n */\n state: ToggleState;\n}\n\nexport const SwitchContext = createContext<ContextValue<SwitchProps, HTMLLabelElement>>(null);\nexport const SwitchFieldContext =\n createContext<ContextValue<SwitchFieldProps, HTMLDivElement>>(null);\nexport const ToggleStateContext = createContext<ToggleState | null>(null);\n\n/**\n * A switch allows a user to turn a setting on or off.\n *\n * @deprecated Use SwitchField + SwitchButton instead.\n */\nexport const Switch = /*#__PURE__*/ (forwardRef as forwardRefType)(function Switch(\n props: SwitchProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, SwitchContext);\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let state = useToggleState(props);\n let aria = useSwitch(\n {\n ...removeDataAttributes(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children\n },\n state,\n inputRef\n );\n\n return (\n <Provider\n values={[\n [ToggleStateContext, state],\n [\n InternalSwitchContext,\n {\n ...aria,\n inputRef,\n defaultClassName: 'react-aria-Switch'\n }\n ]\n ]}>\n <SwitchButton {...props} ref={ref} />\n </Provider>\n );\n});\n\ninterface InternalSwitchContextValue extends SwitchAria {\n inputRef: RefObject<HTMLInputElement | null>;\n defaultClassName: string;\n isRequired?: boolean;\n}\n\nconst InternalSwitchContext = createContext<InternalSwitchContextValue | null>(null);\n\n/**\n * A switch allows a user to turn a setting on or off, with support for validation and help text.\n */\nexport const SwitchField = /*#__PURE__*/ (forwardRef as forwardRefType)(function Switch(\n props: SwitchFieldProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n let {inputRef: userProvidedInputRef = null, ...otherProps} = props;\n [props, ref] = useContextProps(otherProps, ref, SwitchFieldContext);\n let {validationBehavior: formValidationBehavior} = useSlottedContext(FormContext) || {};\n let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';\n let inputRef = useObjectRef(\n useMemo(\n () => mergeRefs(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null),\n [userProvidedInputRef, props.inputRef]\n )\n );\n let state = useToggleState(props);\n let aria = useSwitch(\n {\n ...removeDataAttributes(props),\n // ReactNode type doesn't allow function children.\n children: typeof props.children === 'function' ? true : props.children,\n validationBehavior\n },\n state,\n inputRef\n );\n let {\n descriptionProps,\n errorMessageProps,\n isSelected,\n isDisabled,\n isReadOnly,\n isInvalid,\n validationDetails,\n validationErrors\n } = aria;\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-SwitchField',\n values: {\n isSelected,\n isDisabled,\n isReadOnly,\n isInvalid,\n isRequired: props.isRequired || false,\n state\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps)}\n ref={ref}\n slot={props.slot || undefined}\n data-selected={isSelected || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={isReadOnly || undefined}\n data-invalid={isInvalid || undefined}\n data-required={props.isRequired || undefined}>\n <Provider\n values={[\n [ToggleStateContext, state],\n [\n InternalSwitchContext,\n {\n ...aria,\n inputRef,\n defaultClassName: 'react-aria-SwitchButton',\n isRequired: props.isRequired\n }\n ],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps,\n errorMessage: errorMessageProps\n }\n }\n ],\n [FieldErrorContext, {isInvalid, validationDetails, validationErrors}]\n ]}>\n {renderProps.children}\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A switch button is the clickable area of a switch, including the indicator and label.\n */\nexport const SwitchButton = /*#__PURE__*/ (forwardRef as forwardRefType)(function SwitchButton(\n props: SwitchButtonProps,\n ref: ForwardedRef<HTMLLabelElement>\n) {\n let {\n labelProps,\n inputProps,\n isSelected,\n isDisabled,\n isReadOnly,\n isPressed,\n isInvalid,\n inputRef,\n defaultClassName,\n isRequired\n } = useContext(InternalSwitchContext)!;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let isInteractionDisabled = isDisabled || isReadOnly;\n let state = useContext(ToggleStateContext)!;\n\n let {hoverProps, isHovered} = useHover({\n ...props,\n isDisabled: isInteractionDisabled\n });\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName,\n values: {\n isSelected,\n isPressed,\n isHovered,\n isFocused,\n isFocusVisible,\n isDisabled,\n isReadOnly,\n isInvalid,\n isRequired: isRequired || false,\n state\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <dom.label\n {...mergeProps(DOMProps, labelProps, hoverProps, renderProps)}\n ref={ref}\n slot={props.slot || undefined}\n data-selected={isSelected || undefined}\n data-pressed={isPressed || undefined}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={isReadOnly || undefined}\n data-invalid={isInvalid || undefined}\n data-required={isRequired || undefined}>\n <VisuallyHidden elementType=\"span\">\n <input {...mergeProps(inputProps, focusProps)} ref={inputRef} />\n </VisuallyHidden>\n {renderProps.children}\n </dom.label>\n );\n});\n"],"names":[],"version":3,"file":"Switch.js.map"}
@@ -6,7 +6,7 @@ import {useSwitch as $kf3DM$useSwitch} from "react-aria/useSwitch";
6
6
  import {filterDOMProps as $kf3DM$filterDOMProps} from "react-aria/filterDOMProps";
7
7
  import {mergeProps as $kf3DM$mergeProps} from "react-aria/mergeProps";
8
8
  import {mergeRefs as $kf3DM$mergeRefs} from "react-aria/mergeRefs";
9
- import $kf3DM$react, {createContext as $kf3DM$createContext, forwardRef as $kf3DM$forwardRef, useContext as $kf3DM$useContext} from "react";
9
+ import $kf3DM$react, {createContext as $kf3DM$createContext, forwardRef as $kf3DM$forwardRef, useMemo as $kf3DM$useMemo, useContext as $kf3DM$useContext} from "react";
10
10
  import {useToggleState as $kf3DM$useToggleState} from "react-stately/useToggleState";
11
11
  import {useFocusRing as $kf3DM$useFocusRing} from "react-aria/useFocusRing";
12
12
  import {useHover as $kf3DM$useHover} from "react-aria/useHover";
@@ -43,7 +43,10 @@ const $24585aa46d6ffdff$export$5cc1518e1ec171c = /*#__PURE__*/ (0, $kf3DM$create
43
43
  const $24585aa46d6ffdff$export$b5d5cf8927ab7262 = /*#__PURE__*/ (0, $kf3DM$forwardRef)(function Switch(props, ref) {
44
44
  let { inputRef: userProvidedInputRef = null, ...otherProps } = props;
45
45
  [props, ref] = (0, $7230ffa83bc0c2cf$export$29f1550f4b0d4415)(otherProps, ref, $24585aa46d6ffdff$export$8699e3b644d5a28a);
46
- let inputRef = (0, $kf3DM$useObjectRef)((0, $kf3DM$mergeRefs)(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null));
46
+ let inputRef = (0, $kf3DM$useObjectRef)((0, $kf3DM$useMemo)(()=>(0, $kf3DM$mergeRefs)(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null), [
47
+ userProvidedInputRef,
48
+ props.inputRef
49
+ ]));
47
50
  let state = (0, $kf3DM$useToggleState)(props);
48
51
  let aria = (0, $kf3DM$useSwitch)({
49
52
  ...(0, $7230ffa83bc0c2cf$export$ef03459518577ad4)(props),
@@ -76,7 +79,10 @@ const $24585aa46d6ffdff$export$208c2e617baf9fc3 = /*#__PURE__*/ (0, $kf3DM$forwa
76
79
  [props, ref] = (0, $7230ffa83bc0c2cf$export$29f1550f4b0d4415)(otherProps, ref, $24585aa46d6ffdff$export$3e1405298f0cafda);
77
80
  let { validationBehavior: formValidationBehavior } = (0, $7230ffa83bc0c2cf$export$fabf2dc03a41866e)((0, $cdaed739b1139372$export$c24727297075ec6a)) || {};
78
81
  let validationBehavior = props.validationBehavior ?? formValidationBehavior ?? 'native';
79
- let inputRef = (0, $kf3DM$useObjectRef)((0, $kf3DM$mergeRefs)(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null));
82
+ let inputRef = (0, $kf3DM$useObjectRef)((0, $kf3DM$useMemo)(()=>(0, $kf3DM$mergeRefs)(userProvidedInputRef, props.inputRef !== undefined ? props.inputRef : null), [
83
+ userProvidedInputRef,
84
+ props.inputRef
85
+ ]));
80
86
  let state = (0, $kf3DM$useToggleState)(props);
81
87
  let aria = (0, $kf3DM$useSwitch)({
82
88
  ...(0, $7230ffa83bc0c2cf$export$ef03459518577ad4)(props),