@octanejs/base-ui 0.1.31 → 0.1.32

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 (201) hide show
  1. package/dist/cjs/accordion.cjs +497 -0
  2. package/dist/cjs/alert-dialog.cjs +65 -0
  3. package/dist/cjs/avatar.cjs +234 -0
  4. package/dist/cjs/button.cjs +54 -0
  5. package/dist/cjs/checkbox-group.cjs +165 -0
  6. package/dist/cjs/checkbox.cjs +475 -0
  7. package/dist/cjs/collapsible.cjs +700 -0
  8. package/dist/cjs/context-menu.cjs +257 -0
  9. package/dist/cjs/csp-provider.cjs +40 -0
  10. package/dist/cjs/dialog.cjs +741 -0
  11. package/dist/cjs/direction-provider.cjs +35 -0
  12. package/dist/cjs/field.cjs +559 -0
  13. package/dist/cjs/fieldset.cjs +101 -0
  14. package/dist/cjs/form.cjs +177 -0
  15. package/dist/cjs/index.cjs +133 -0
  16. package/dist/cjs/input.cjs +32 -0
  17. package/dist/cjs/internal.cjs +51 -0
  18. package/dist/cjs/menu.cjs +2420 -0
  19. package/dist/cjs/menubar.cjs +132 -0
  20. package/dist/cjs/merge-props.cjs +34 -0
  21. package/dist/cjs/meter.cjs +169 -0
  22. package/dist/cjs/number-field.cjs +812 -0
  23. package/dist/cjs/popover.cjs +966 -0
  24. package/dist/cjs/preview-card.cjs +632 -0
  25. package/dist/cjs/progress.cjs +206 -0
  26. package/dist/cjs/radio-group.cjs +264 -0
  27. package/dist/cjs/radio.cjs +327 -0
  28. package/dist/cjs/separator.cjs +44 -0
  29. package/dist/cjs/slider.cjs +1384 -0
  30. package/dist/cjs/switch.cjs +306 -0
  31. package/dist/cjs/tabs.cjs +727 -0
  32. package/dist/cjs/toast.cjs +1766 -0
  33. package/dist/cjs/toggle-group.cjs +118 -0
  34. package/dist/cjs/toggle.cjs +121 -0
  35. package/dist/cjs/tooltip.cjs +835 -0
  36. package/dist/cjs/unstable-use-media-query.cjs +79 -0
  37. package/dist/cjs/use-render.cjs +40 -0
  38. package/dist/cjs/utils/CSPContext.cjs +38 -0
  39. package/dist/cjs/utils/CheckboxGroupContext.cjs +40 -0
  40. package/dist/cjs/utils/CompositeRootContext.cjs +40 -0
  41. package/dist/cjs/utils/ContextMenuRootContext.cjs +42 -0
  42. package/dist/cjs/utils/DirectionContext.cjs +34 -0
  43. package/dist/cjs/utils/FloatingPortalLite.cjs +47 -0
  44. package/dist/cjs/utils/InternalBackdrop.cjs +49 -0
  45. package/dist/cjs/utils/MenubarContext.cjs +40 -0
  46. package/dist/cjs/utils/RadioGroupContext.cjs +34 -0
  47. package/dist/cjs/utils/RequestQueue.cjs +111 -0
  48. package/dist/cjs/utils/TimeoutManager.cjs +50 -0
  49. package/dist/cjs/utils/ToggleGroupContext.cjs +40 -0
  50. package/dist/cjs/utils/adaptiveOriginMiddleware.cjs +94 -0
  51. package/dist/cjs/utils/addEventListener.cjs +33 -0
  52. package/dist/cjs/utils/areArraysEqual.cjs +30 -0
  53. package/dist/cjs/utils/clamp.cjs +30 -0
  54. package/dist/cjs/utils/closePart.cjs +70 -0
  55. package/dist/cjs/utils/collapsibleOpenStateMapping.cjs +42 -0
  56. package/dist/cjs/utils/composeRefs.cjs +68 -0
  57. package/dist/cjs/utils/composite/CompositeItem.cjs +59 -0
  58. package/dist/cjs/utils/composite/CompositeList.cjs +177 -0
  59. package/dist/cjs/utils/composite/CompositeListContext.cjs +43 -0
  60. package/dist/cjs/utils/composite/CompositeRoot.cjs +118 -0
  61. package/dist/cjs/utils/composite/grid-utils.cjs +343 -0
  62. package/dist/cjs/utils/composite/gridNavigation.cjs +92 -0
  63. package/dist/cjs/utils/composite/keys.cjs +174 -0
  64. package/dist/cjs/utils/composite/list-utils.cjs +90 -0
  65. package/dist/cjs/utils/composite/useCompositeItem.cjs +63 -0
  66. package/dist/cjs/utils/composite/useCompositeListItem.cjs +104 -0
  67. package/dist/cjs/utils/composite/useCompositeRoot.cjs +263 -0
  68. package/dist/cjs/utils/constants.cjs +56 -0
  69. package/dist/cjs/utils/contains.cjs +46 -0
  70. package/dist/cjs/utils/createChangeEventDetails.cjs +92 -0
  71. package/dist/cjs/utils/dom.cjs +35 -0
  72. package/dist/cjs/utils/empty.cjs +34 -0
  73. package/dist/cjs/utils/field/FieldItemContext.cjs +34 -0
  74. package/dist/cjs/utils/field/FieldRootContext.cjs +80 -0
  75. package/dist/cjs/utils/field/FormContext.cjs +41 -0
  76. package/dist/cjs/utils/field/LabelableContext.cjs +43 -0
  77. package/dist/cjs/utils/field/LabelableProvider.cjs +115 -0
  78. package/dist/cjs/utils/field/constants.cjs +68 -0
  79. package/dist/cjs/utils/field/getCombinedFieldValidityData.cjs +36 -0
  80. package/dist/cjs/utils/field/useAriaLabelledBy.cjs +87 -0
  81. package/dist/cjs/utils/field/useFieldControlRegistration.cjs +165 -0
  82. package/dist/cjs/utils/field/useFieldValidation.cjs +285 -0
  83. package/dist/cjs/utils/field/useLabel.cjs +99 -0
  84. package/dist/cjs/utils/field/useLabelableId.cjs +105 -0
  85. package/dist/cjs/utils/field/useRegisterFieldControl.cjs +60 -0
  86. package/dist/cjs/utils/findRootOwnerId.cjs +37 -0
  87. package/dist/cjs/utils/floating/FloatingDelayGroup.cjs +219 -0
  88. package/dist/cjs/utils/floating/FloatingFocusManager.cjs +685 -0
  89. package/dist/cjs/utils/floating/FloatingPortal.cjs +230 -0
  90. package/dist/cjs/utils/floating/FloatingRootStore.cjs +87 -0
  91. package/dist/cjs/utils/floating/FloatingTree.cjs +86 -0
  92. package/dist/cjs/utils/floating/FloatingTreeStore.cjs +41 -0
  93. package/dist/cjs/utils/floating/FocusGuard.cjs +54 -0
  94. package/dist/cjs/utils/floating/composite.cjs +42 -0
  95. package/dist/cjs/utils/floating/constants.cjs +34 -0
  96. package/dist/cjs/utils/floating/createAttribute.cjs +30 -0
  97. package/dist/cjs/utils/floating/createEventEmitter.cjs +44 -0
  98. package/dist/cjs/utils/floating/element.cjs +103 -0
  99. package/dist/cjs/utils/floating/enqueueFocus.cjs +51 -0
  100. package/dist/cjs/utils/floating/event.cjs +65 -0
  101. package/dist/cjs/utils/floating/getEmptyRootContext.cjs +42 -0
  102. package/dist/cjs/utils/floating/gridNavigation.cjs +45 -0
  103. package/dist/cjs/utils/floating/markOthers.cjs +181 -0
  104. package/dist/cjs/utils/floating/nodes.cjs +48 -0
  105. package/dist/cjs/utils/floating/safePolygon.cjs +301 -0
  106. package/dist/cjs/utils/floating/tabbable.cjs +242 -0
  107. package/dist/cjs/utils/floating/types.cjs +16 -0
  108. package/dist/cjs/utils/floating/useClick.cjs +153 -0
  109. package/dist/cjs/utils/floating/useClientPoint.cjs +225 -0
  110. package/dist/cjs/utils/floating/useDismiss.cjs +506 -0
  111. package/dist/cjs/utils/floating/useFloating.cjs +186 -0
  112. package/dist/cjs/utils/floating/useFloatingRootContext.cjs +75 -0
  113. package/dist/cjs/utils/floating/useFocus.cjs +184 -0
  114. package/dist/cjs/utils/floating/useHoverFloatingInteraction.cjs +231 -0
  115. package/dist/cjs/utils/floating/useHoverInteractionSharedState.cjs +113 -0
  116. package/dist/cjs/utils/floating/useHoverReferenceInteraction.cjs +380 -0
  117. package/dist/cjs/utils/floating/useHoverShared.cjs +65 -0
  118. package/dist/cjs/utils/floating/useListNavigation.cjs +665 -0
  119. package/dist/cjs/utils/floating/useSyncedFloatingRootContext.cjs +91 -0
  120. package/dist/cjs/utils/floating/useTypeahead.cjs +187 -0
  121. package/dist/cjs/utils/formatNumber.cjs +60 -0
  122. package/dist/cjs/utils/generateId.cjs +32 -0
  123. package/dist/cjs/utils/getCssDimensions.cjs +42 -0
  124. package/dist/cjs/utils/getDefaultFormSubmitter.cjs +42 -0
  125. package/dist/cjs/utils/getDisabledMountTransitionStyles.cjs +32 -0
  126. package/dist/cjs/utils/getElementRef.cjs +35 -0
  127. package/dist/cjs/utils/getPseudoElementBounds.cjs +56 -0
  128. package/dist/cjs/utils/getStateAttributesProps.cjs +46 -0
  129. package/dist/cjs/utils/hideMiddleware.cjs +42 -0
  130. package/dist/cjs/utils/inertValue.cjs +30 -0
  131. package/dist/cjs/utils/matchesFocusVisible.cjs +38 -0
  132. package/dist/cjs/utils/mergeCleanups.cjs +37 -0
  133. package/dist/cjs/utils/mergeObjects.cjs +39 -0
  134. package/dist/cjs/utils/mergeProps.cjs +182 -0
  135. package/dist/cjs/utils/noop.cjs +29 -0
  136. package/dist/cjs/utils/number/constants.cjs +34 -0
  137. package/dist/cjs/utils/number/parse.cjs +258 -0
  138. package/dist/cjs/utils/number/types.cjs +16 -0
  139. package/dist/cjs/utils/number/validate.cjs +104 -0
  140. package/dist/cjs/utils/owner.cjs +35 -0
  141. package/dist/cjs/utils/platform.cjs +83 -0
  142. package/dist/cjs/utils/popupStateMapping.cjs +74 -0
  143. package/dist/cjs/utils/popups/index.cjs +39 -0
  144. package/dist/cjs/utils/popups/inlineRect.cjs +218 -0
  145. package/dist/cjs/utils/popups/popupStoreUtils.cjs +379 -0
  146. package/dist/cjs/utils/popups/popupTriggerMap.cjs +76 -0
  147. package/dist/cjs/utils/popups/store.cjs +118 -0
  148. package/dist/cjs/utils/popups/useTriggerFocusGuards.cjs +72 -0
  149. package/dist/cjs/utils/resolveAriaLabelledBy.cjs +35 -0
  150. package/dist/cjs/utils/resolveClassName.cjs +30 -0
  151. package/dist/cjs/utils/resolveRef.cjs +33 -0
  152. package/dist/cjs/utils/resolveStyle.cjs +30 -0
  153. package/dist/cjs/utils/serializeValue.cjs +40 -0
  154. package/dist/cjs/utils/slider/asc.cjs +30 -0
  155. package/dist/cjs/utils/slider/getMidpoint.cjs +34 -0
  156. package/dist/cjs/utils/slider/getPushedThumbValues.cjs +73 -0
  157. package/dist/cjs/utils/slider/getSliderValue.cjs +42 -0
  158. package/dist/cjs/utils/slider/replaceArrayItemAtIndex.cjs +33 -0
  159. package/dist/cjs/utils/slider/resolveThumbCollision.cjs +155 -0
  160. package/dist/cjs/utils/slider/roundValueToStep.cjs +45 -0
  161. package/dist/cjs/utils/slider/validateMinimumDistance.cjs +40 -0
  162. package/dist/cjs/utils/slider/valueArrayToPercentages.cjs +36 -0
  163. package/dist/cjs/utils/store/ReactStore.cjs +135 -0
  164. package/dist/cjs/utils/store/Store.cjs +83 -0
  165. package/dist/cjs/utils/store/createSelector.cjs +74 -0
  166. package/dist/cjs/utils/store/useStore.cjs +51 -0
  167. package/dist/cjs/utils/stringifyLocale.cjs +36 -0
  168. package/dist/cjs/utils/useAnchorPositioning.cjs +421 -0
  169. package/dist/cjs/utils/useAnchoredPopupScrollLock.cjs +59 -0
  170. package/dist/cjs/utils/useAnimationFrame.cjs +93 -0
  171. package/dist/cjs/utils/useAnimationsFinished.cjs +98 -0
  172. package/dist/cjs/utils/useBaseUiId.cjs +36 -0
  173. package/dist/cjs/utils/useButton.cjs +177 -0
  174. package/dist/cjs/utils/useCheckboxGroupParent.cjs +114 -0
  175. package/dist/cjs/utils/useControlled.cjs +47 -0
  176. package/dist/cjs/utils/useEnhancedClickHandler.cjs +60 -0
  177. package/dist/cjs/utils/useFocusableWhenDisabled.cjs +77 -0
  178. package/dist/cjs/utils/useForcedRerendering.cjs +35 -0
  179. package/dist/cjs/utils/useIsHydrating.cjs +44 -0
  180. package/dist/cjs/utils/useMixedToggleClickHandler.cjs +66 -0
  181. package/dist/cjs/utils/useOnFirstRender.cjs +35 -0
  182. package/dist/cjs/utils/useOnMount.cjs +36 -0
  183. package/dist/cjs/utils/useOpenChangeComplete.cjs +57 -0
  184. package/dist/cjs/utils/useOpenInteractionType.cjs +69 -0
  185. package/dist/cjs/utils/usePopupAutoResize.cjs +191 -0
  186. package/dist/cjs/utils/usePopupViewport.cjs +283 -0
  187. package/dist/cjs/utils/usePositioner.cjs +53 -0
  188. package/dist/cjs/utils/usePressAndHold.cjs +51 -0
  189. package/dist/cjs/utils/usePreviousValue.cjs +47 -0
  190. package/dist/cjs/utils/useRefWithInit.cjs +41 -0
  191. package/dist/cjs/utils/useRegisteredLabelId.cjs +48 -0
  192. package/dist/cjs/utils/useRenderElement.cjs +106 -0
  193. package/dist/cjs/utils/useScrollLock.cjs +232 -0
  194. package/dist/cjs/utils/useStableCallback.cjs +41 -0
  195. package/dist/cjs/utils/useTimeout.cjs +66 -0
  196. package/dist/cjs/utils/useTransitionStatus.cjs +116 -0
  197. package/dist/cjs/utils/useValueAsRef.cjs +43 -0
  198. package/dist/cjs/utils/useValueChanged.cjs +55 -0
  199. package/dist/cjs/utils/valueToPercent.cjs +30 -0
  200. package/dist/cjs/utils/visuallyHidden.cjs +49 -0
  201. package/package.json +20 -8
@@ -0,0 +1,327 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var radio_exports = {};
20
+ __export(radio_exports, {
21
+ Radio: () => Radio
22
+ });
23
+ module.exports = __toCommonJS(radio_exports);
24
+ var import_octane = require("octane");
25
+ var import_internal = require("./internal.cjs");
26
+ var import_useRenderElement = require("./utils/useRenderElement.cjs");
27
+ var import_useBaseUiId = require("./utils/useBaseUiId.cjs");
28
+ var import_useButton = require("./utils/useButton.cjs");
29
+ var import_composeRefs = require("./utils/composeRefs.cjs");
30
+ var import_useStableCallback = require("./utils/useStableCallback.cjs");
31
+ var import_visuallyHidden = require("./utils/visuallyHidden.cjs");
32
+ var import_owner = require("./utils/owner.cjs");
33
+ var import_noop = require("./utils/noop.cjs");
34
+ var import_serializeValue = require("./utils/serializeValue.cjs");
35
+ var import_createChangeEventDetails = require("./utils/createChangeEventDetails.cjs");
36
+ var import_constants = require("./utils/field/constants.cjs");
37
+ var import_FieldRootContext = require("./utils/field/FieldRootContext.cjs");
38
+ var import_FieldItemContext = require("./utils/field/FieldItemContext.cjs");
39
+ var import_LabelableContext = require("./utils/field/LabelableContext.cjs");
40
+ var import_useAriaLabelledBy = require("./utils/field/useAriaLabelledBy.cjs");
41
+ var import_useLabelableId = require("./utils/field/useLabelableId.cjs");
42
+ var import_RadioGroupContext = require("./utils/RadioGroupContext.cjs");
43
+ var import_keys = require("./utils/composite/keys.cjs");
44
+ var import_CompositeItem = require("./utils/composite/CompositeItem.cjs");
45
+ var import_useTransitionStatus = require("./utils/useTransitionStatus.cjs");
46
+ var import_useOpenChangeComplete = require("./utils/useOpenChangeComplete.cjs");
47
+ const stateAttributesMapping = {
48
+ checked(value) {
49
+ if (value) {
50
+ return { "data-checked": "" };
51
+ }
52
+ return { "data-unchecked": "" };
53
+ },
54
+ ...import_useTransitionStatus.transitionStatusMapping,
55
+ ...import_constants.fieldValidityMapping
56
+ };
57
+ const RadioRootContext = (0, import_octane.createContext)(void 0);
58
+ function useRadioRootContext() {
59
+ const value = (0, import_octane.useContext)(RadioRootContext);
60
+ if (value === void 0) {
61
+ throw new Error(
62
+ "Base UI: RadioRootContext is missing. Radio parts must be placed within <Radio.Root>."
63
+ );
64
+ }
65
+ return value;
66
+ }
67
+ function RadioRoot(props) {
68
+ const slot = (0, import_internal.S)("RadioRoot");
69
+ const {
70
+ render,
71
+ className,
72
+ disabled: disabledProp = false,
73
+ readOnly: readOnlyProp = false,
74
+ required: requiredProp = false,
75
+ "aria-labelledby": ariaLabelledByProp,
76
+ value,
77
+ inputRef: inputRefProp,
78
+ nativeButton = false,
79
+ id: idProp,
80
+ style,
81
+ ref,
82
+ ...elementProps
83
+ } = props;
84
+ const groupContext = (0, import_RadioGroupContext.useRadioGroupContext)();
85
+ const {
86
+ disabled: disabledGroup,
87
+ readOnly: readOnlyGroup,
88
+ required: requiredGroup,
89
+ form: formGroup,
90
+ checkedValue,
91
+ touched = false,
92
+ validation,
93
+ name
94
+ } = groupContext ?? {};
95
+ const setCheckedValue = groupContext?.setCheckedValue ?? import_noop.NOOP;
96
+ const setTouched = groupContext?.setTouched ?? import_noop.NOOP;
97
+ const registerControlRef = groupContext?.registerControlRef ?? import_noop.NOOP;
98
+ const registerInputRef = groupContext?.registerInputRef ?? import_noop.NOOP;
99
+ const {
100
+ setTouched: setFieldTouched,
101
+ setFilled,
102
+ state: fieldState,
103
+ disabled: fieldDisabled
104
+ } = (0, import_FieldRootContext.useFieldRootContext)();
105
+ const fieldItemContext = (0, import_FieldItemContext.useFieldItemContext)();
106
+ const { labelId, getDescriptionProps } = (0, import_LabelableContext.useLabelableContext)();
107
+ const disabled = fieldDisabled || fieldItemContext.disabled || disabledGroup || disabledProp;
108
+ const readOnly = readOnlyGroup || readOnlyProp;
109
+ const required = requiredGroup || requiredProp;
110
+ const form = formGroup;
111
+ const checked = groupContext ? checkedValue === value : value === "";
112
+ const radioRef = (0, import_octane.useRef)(null, (0, import_internal.subSlot)(slot, "radioRef"));
113
+ const inputRef = (0, import_octane.useRef)(null, (0, import_internal.subSlot)(slot, "inputRef"));
114
+ const handleControlRef = (0, import_useStableCallback.useStableCallback)(
115
+ (element2) => {
116
+ if (!element2) {
117
+ return;
118
+ }
119
+ registerControlRef(element2, disabled);
120
+ },
121
+ (0, import_internal.subSlot)(slot, "handleControlRef")
122
+ );
123
+ const mergedInputRef = (0, import_composeRefs.useComposedRefs)(
124
+ inputRefProp,
125
+ inputRef,
126
+ registerInputRef,
127
+ (0, import_internal.subSlot)(slot, "mergedInputRef")
128
+ );
129
+ (0, import_octane.useLayoutEffect)(
130
+ () => {
131
+ if (inputRef.current?.checked) {
132
+ setFilled(true);
133
+ }
134
+ },
135
+ [setFilled],
136
+ (0, import_internal.subSlot)(slot, "e:filled")
137
+ );
138
+ (0, import_octane.useLayoutEffect)(
139
+ () => {
140
+ if (!inputRef.current) {
141
+ return;
142
+ }
143
+ if (disabled && checked) {
144
+ registerInputRef(null);
145
+ return;
146
+ }
147
+ if (radioRef.current) {
148
+ registerControlRef(radioRef.current, disabled);
149
+ }
150
+ registerInputRef(inputRef.current);
151
+ },
152
+ [checked, disabled, registerControlRef, registerInputRef],
153
+ (0, import_internal.subSlot)(slot, "e:registerInput")
154
+ );
155
+ const id = (0, import_useBaseUiId.useBaseUiId)(void 0, (0, import_internal.subSlot)(slot, "id"));
156
+ const inputId = (0, import_useLabelableId.useLabelableId)(
157
+ { id: idProp, implicit: false, controlRef: radioRef },
158
+ (0, import_internal.subSlot)(slot, "inputId")
159
+ );
160
+ const hiddenInputId = nativeButton ? void 0 : inputId;
161
+ const ariaLabelledBy = (0, import_useAriaLabelledBy.useAriaLabelledBy)(
162
+ ariaLabelledByProp,
163
+ labelId,
164
+ inputRef,
165
+ !nativeButton,
166
+ hiddenInputId,
167
+ (0, import_internal.subSlot)(slot, "ariaLabelledBy")
168
+ );
169
+ const rootProps = {
170
+ role: "radio",
171
+ "aria-checked": checked,
172
+ "aria-required": required || void 0,
173
+ "aria-readonly": readOnly || void 0,
174
+ "aria-labelledby": ariaLabelledBy,
175
+ [import_keys.ACTIVE_COMPOSITE_ITEM]: checked ? "" : void 0,
176
+ id: nativeButton ? inputId : id,
177
+ onKeyDown(event) {
178
+ if (event.key === "Enter") {
179
+ event.preventDefault();
180
+ }
181
+ },
182
+ onClick(event) {
183
+ if (event.defaultPrevented || disabled || readOnly) {
184
+ return;
185
+ }
186
+ event.preventDefault();
187
+ const input = inputRef.current;
188
+ if (!input) {
189
+ return;
190
+ }
191
+ input.dispatchEvent(
192
+ new ((0, import_owner.ownerWindow)(input)).PointerEvent("click", {
193
+ bubbles: true,
194
+ shiftKey: event.shiftKey,
195
+ ctrlKey: event.ctrlKey,
196
+ altKey: event.altKey,
197
+ metaKey: event.metaKey
198
+ })
199
+ );
200
+ },
201
+ onFocus(event) {
202
+ if (event.defaultPrevented || disabled || readOnly || !touched) {
203
+ return;
204
+ }
205
+ inputRef.current?.click();
206
+ setTouched(false);
207
+ }
208
+ };
209
+ const { getButtonProps, buttonRef } = (0, import_useButton.useButton)(
210
+ { disabled, native: nativeButton, composite: false },
211
+ (0, import_internal.subSlot)(slot, "button")
212
+ );
213
+ const inputProps = {
214
+ type: "radio",
215
+ ref: mergedInputRef,
216
+ form,
217
+ id: hiddenInputId,
218
+ name,
219
+ tabIndex: -1,
220
+ style: name ? import_visuallyHidden.visuallyHiddenInput : import_visuallyHidden.visuallyHidden,
221
+ "aria-hidden": true,
222
+ ...value !== void 0 ? { value: (0, import_serializeValue.serializeValue)(value) } : {},
223
+ disabled,
224
+ checked,
225
+ required,
226
+ readOnly,
227
+ onChange(event) {
228
+ if (event.defaultPrevented) {
229
+ return;
230
+ }
231
+ if (disabled || readOnly || value === void 0) {
232
+ return;
233
+ }
234
+ const details = (0, import_createChangeEventDetails.createChangeEventDetails)(import_createChangeEventDetails.REASONS.none, event);
235
+ setCheckedValue(value, details);
236
+ if (details.isCanceled) {
237
+ return;
238
+ }
239
+ setFieldTouched(true);
240
+ },
241
+ onFocus() {
242
+ radioRef.current?.focus();
243
+ }
244
+ };
245
+ const state = (0, import_octane.useMemo)(
246
+ () => ({ ...fieldState, required, disabled, readOnly, checked }),
247
+ [fieldState, disabled, readOnly, checked, required],
248
+ (0, import_internal.subSlot)(slot, "state")
249
+ );
250
+ const isRadioGroup = groupContext !== void 0;
251
+ const refs = [ref, radioRef, buttonRef, handleControlRef];
252
+ const renderProps = [
253
+ rootProps,
254
+ elementProps,
255
+ getButtonProps,
256
+ getDescriptionProps,
257
+ validation ? (validationProps) => validation.getValidationProps(disabled, validationProps) : {}
258
+ ];
259
+ const element = (0, import_useRenderElement.useRenderElement)(
260
+ "span",
261
+ { render, className, style },
262
+ { enabled: !isRadioGroup, state, ref: refs, props: renderProps, stateAttributesMapping },
263
+ (0, import_internal.subSlot)(slot, "re")
264
+ );
265
+ const rendered = isRadioGroup ? (0, import_octane.createElement)(import_CompositeItem.CompositeItem, {
266
+ tag: "span",
267
+ render,
268
+ className,
269
+ style,
270
+ state,
271
+ refs,
272
+ props: renderProps,
273
+ stateAttributesMapping
274
+ }) : element;
275
+ return (0, import_octane.createElement)(RadioRootContext.Provider, {
276
+ value: state,
277
+ // Octane reconciles an ARRAY child as a keyed list, so each slot carries a stable key;
278
+ // values that cannot be keyed in place go through a keyed Fragment.
279
+ children: [
280
+ (0, import_octane.createElement)(import_octane.Fragment, { key: "rendered", children: rendered }),
281
+ (0, import_octane.createElement)("input", { key: "input", ...inputProps })
282
+ ]
283
+ });
284
+ }
285
+ function RadioIndicator(props) {
286
+ const slot = (0, import_internal.S)("RadioIndicator");
287
+ const { render, className, style, keepMounted = false, ref, ...elementProps } = props;
288
+ const rootState = useRadioRootContext();
289
+ const rendered = rootState.checked;
290
+ const { mounted, transitionStatus, setMounted } = (0, import_useTransitionStatus.useTransitionStatus)(
291
+ rendered,
292
+ (0, import_internal.subSlot)(slot, "ts")
293
+ );
294
+ const state = { ...rootState, transitionStatus };
295
+ const indicatorRef = (0, import_octane.useRef)(null, (0, import_internal.subSlot)(slot, "indRef"));
296
+ const shouldRender = keepMounted || mounted;
297
+ const element = (0, import_useRenderElement.useRenderElement)(
298
+ "span",
299
+ { render, className, style },
300
+ { ref: [ref, indicatorRef], state, props: elementProps, stateAttributesMapping },
301
+ (0, import_internal.subSlot)(slot, "re")
302
+ );
303
+ (0, import_useOpenChangeComplete.useOpenChangeComplete)(
304
+ {
305
+ open: rendered,
306
+ ref: indicatorRef,
307
+ onComplete() {
308
+ if (!rendered) {
309
+ setMounted(false);
310
+ }
311
+ }
312
+ },
313
+ (0, import_internal.subSlot)(slot, "occ")
314
+ );
315
+ if (!shouldRender) {
316
+ return null;
317
+ }
318
+ return element;
319
+ }
320
+ const Radio = {
321
+ Root: RadioRoot,
322
+ Indicator: RadioIndicator
323
+ };
324
+ // Annotate the CommonJS export names for ESM import in node:
325
+ 0 && (module.exports = {
326
+ Radio
327
+ });
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var separator_exports = {};
20
+ __export(separator_exports, {
21
+ Separator: () => Separator
22
+ });
23
+ module.exports = __toCommonJS(separator_exports);
24
+ var import_internal = require("./internal.cjs");
25
+ var import_useRenderElement = require("./utils/useRenderElement.cjs");
26
+ function Separator(props) {
27
+ const slot = (0, import_internal.S)("Separator");
28
+ const { className, render, orientation = "horizontal", style, ref, ...elementProps } = props;
29
+ const state = { orientation };
30
+ return (0, import_useRenderElement.useRenderElement)(
31
+ "div",
32
+ { className, render, style },
33
+ {
34
+ state,
35
+ ref,
36
+ props: [{ role: "separator", "aria-orientation": orientation }, elementProps]
37
+ },
38
+ (0, import_internal.subSlot)(slot, "re")
39
+ );
40
+ }
41
+ // Annotate the CommonJS export names for ESM import in node:
42
+ 0 && (module.exports = {
43
+ Separator
44
+ });