@yamada-ui/radio 1.2.8-dev-20240915031944 → 1.2.8-dev-20240917064938

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,172 @@
1
+ "use client"
2
+ import {
3
+ Radio
4
+ } from "./chunk-VT4XEFV3.mjs";
5
+ import {
6
+ RadioGroupProvider
7
+ } from "./chunk-YWRIETVW.mjs";
8
+
9
+ // src/radio-group.tsx
10
+ import { useFormControl } from "@yamada-ui/form-control";
11
+ import { Flex } from "@yamada-ui/layouts";
12
+ import { useControllableState } from "@yamada-ui/use-controllable-state";
13
+ import {
14
+ cx,
15
+ isObject,
16
+ useCallbackRef,
17
+ getValidChildren,
18
+ mergeRefs
19
+ } from "@yamada-ui/utils";
20
+ import { useCallback, useId, useRef, forwardRef } from "react";
21
+ import { jsx } from "react/jsx-runtime";
22
+ var isEvent = (value) => value && isObject(value) && isObject(value.target);
23
+ var useRadioGroup = ({
24
+ id,
25
+ name,
26
+ isNative,
27
+ value: valueProp,
28
+ defaultValue,
29
+ onChange: onChangeProp,
30
+ ...props
31
+ }) => {
32
+ id != null ? id : id = useId();
33
+ name != null ? name : name = `radio-${id}`;
34
+ const onChangeRef = useCallbackRef(onChangeProp);
35
+ const [value, setValue] = useControllableState({
36
+ value: valueProp,
37
+ defaultValue,
38
+ onChange: onChangeRef
39
+ });
40
+ const containerRef = useRef(null);
41
+ const onFocus = useCallback(() => {
42
+ const container = containerRef.current;
43
+ if (!container) return;
44
+ let query = `input:not(:disabled):checked`;
45
+ let firstInput = container.querySelector(query);
46
+ if (firstInput) {
47
+ firstInput.focus();
48
+ } else {
49
+ query = `input:not(:disabled)`;
50
+ firstInput = container.querySelector(query);
51
+ firstInput == null ? void 0 : firstInput.focus();
52
+ }
53
+ }, []);
54
+ const onChange = useCallback(
55
+ (evOrValue) => {
56
+ const nextValue = isEvent(evOrValue) ? evOrValue.target.value : evOrValue;
57
+ setValue(nextValue);
58
+ },
59
+ [setValue]
60
+ );
61
+ const getContainerProps = useCallback(
62
+ (props2 = {}, ref = null) => ({
63
+ role: "radiogroup",
64
+ ...props2,
65
+ ref: mergeRefs(ref, containerRef)
66
+ }),
67
+ []
68
+ );
69
+ const getRadioProps = useCallback(
70
+ (props2 = {}, ref = null) => {
71
+ const isChecked = props2.value === value;
72
+ return {
73
+ ...props2,
74
+ ref,
75
+ name,
76
+ [isNative ? "checked" : "isChecked"]: value != null ? isChecked : void 0,
77
+ "aria-checked": isChecked,
78
+ onChange
79
+ };
80
+ },
81
+ [name, value, onChange, isNative]
82
+ );
83
+ return {
84
+ props,
85
+ id,
86
+ name,
87
+ value,
88
+ setValue,
89
+ onChange,
90
+ onFocus,
91
+ getContainerProps,
92
+ getRadioProps
93
+ };
94
+ };
95
+ var RadioGroup = forwardRef(
96
+ ({
97
+ id: idProp,
98
+ className,
99
+ size,
100
+ variant,
101
+ colorScheme,
102
+ children,
103
+ items = [],
104
+ direction = "column",
105
+ gap,
106
+ ...props
107
+ }, ref) => {
108
+ const {
109
+ labelId,
110
+ isRequired,
111
+ isReadOnly,
112
+ isDisabled,
113
+ isInvalid,
114
+ ...computedProps
115
+ } = useFormControl({
116
+ id: idProp,
117
+ ...props
118
+ });
119
+ const {
120
+ id,
121
+ name,
122
+ value,
123
+ onChange,
124
+ getContainerProps,
125
+ props: rest
126
+ } = useRadioGroup(computedProps);
127
+ const validChildren = getValidChildren(children);
128
+ let computedChildren = [];
129
+ if (!validChildren.length && items.length) {
130
+ computedChildren = items.map(({ label, value: value2, ...props2 }, i) => /* @__PURE__ */ jsx(Radio, { value: value2, ...props2, children: label }, i));
131
+ }
132
+ return /* @__PURE__ */ jsx(
133
+ RadioGroupProvider,
134
+ {
135
+ value: {
136
+ size,
137
+ variant,
138
+ colorScheme,
139
+ isRequired,
140
+ isReadOnly,
141
+ isDisabled,
142
+ isInvalid,
143
+ name,
144
+ value,
145
+ onChange
146
+ },
147
+ children: /* @__PURE__ */ jsx(
148
+ Flex,
149
+ {
150
+ ref,
151
+ className: cx("ui-radio-group", className),
152
+ gap: gap != null ? gap : direction === "row" ? "1rem" : void 0,
153
+ ...getContainerProps({
154
+ id,
155
+ "aria-labelledby": labelId,
156
+ ...rest
157
+ }),
158
+ direction,
159
+ children: children != null ? children : computedChildren
160
+ }
161
+ )
162
+ }
163
+ );
164
+ }
165
+ );
166
+ RadioGroup.displayName = "RadioGroup";
167
+
168
+ export {
169
+ useRadioGroup,
170
+ RadioGroup
171
+ };
172
+ //# sourceMappingURL=chunk-JUEGICB4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/radio-group.tsx"],"sourcesContent":["import type { ComponentArgs, ThemeProps, PropGetter } from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport { useFormControl } from \"@yamada-ui/form-control\"\nimport type { FlexProps } from \"@yamada-ui/layouts\"\nimport { Flex } from \"@yamada-ui/layouts\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport {\n cx,\n isObject,\n useCallbackRef,\n getValidChildren,\n mergeRefs,\n} from \"@yamada-ui/utils\"\nimport type { Dict } from \"@yamada-ui/utils\"\nimport type {\n ChangeEvent,\n ForwardedRef,\n ReactElement,\n RefAttributes,\n} from \"react\"\nimport { useCallback, useId, useRef, forwardRef } from \"react\"\nimport type { RadioProps } from \"./radio\"\nimport { Radio } from \"./radio\"\nimport type { RadioGroupContext } from \"./radio-context\"\nimport { RadioGroupProvider } from \"./radio-context\"\n\nexport type RadioItem<Y extends string | number = string> = RadioProps<Y> & {\n label?: string\n}\n\nconst isEvent = (value: any): value is { target: HTMLInputElement } =>\n value && isObject(value) && isObject(value.target)\n\nexport interface UseRadioGroupProps<Y extends string | number = string> {\n /**\n * The top-level id string that will be applied to the radios.\n * The index of the radio will be appended to this top-level id.\n */\n id?: string\n /**\n * The HTML `name` attribute used for forms.\n */\n name?: string\n /**\n * The value of the radio group.\n */\n value?: Y\n /**\n * The initial value of the radio group.\n */\n defaultValue?: Y\n /**\n * The callback fired when any children radio is checked or unchecked.\n */\n onChange?: (value: Y) => void\n /**\n * If `true`, input elements will receive `checked` attribute instead of `isChecked`.\n *\n * This assumes, you're using native radio inputs.\n *\n * @default false\n */\n isNative?: boolean\n}\n\nexport const useRadioGroup = <\n Y extends string | number,\n M extends Dict = Dict,\n>({\n id,\n name,\n isNative,\n value: valueProp,\n defaultValue,\n onChange: onChangeProp,\n ...props\n}: UseRadioGroupProps<Y> & M) => {\n id ??= useId()\n name ??= `radio-${id}`\n\n const onChangeRef = useCallbackRef(onChangeProp)\n\n const [value, setValue] = useControllableState({\n value: valueProp,\n defaultValue,\n onChange: onChangeRef,\n })\n\n const containerRef = useRef<any>(null)\n\n const onFocus = useCallback(() => {\n const container = containerRef.current\n\n if (!container) return\n\n let query = `input:not(:disabled):checked`\n\n let firstInput = container.querySelector(query) as HTMLElement | undefined\n\n if (firstInput) {\n firstInput.focus()\n } else {\n query = `input:not(:disabled)`\n firstInput = container.querySelector(query) as HTMLElement | undefined\n\n firstInput?.focus()\n }\n }, [])\n\n const onChange = useCallback(\n (evOrValue: ChangeEvent<HTMLInputElement> | Y) => {\n const nextValue = (\n isEvent(evOrValue) ? evOrValue.target.value : evOrValue\n ) as Y\n\n setValue(nextValue)\n },\n [setValue],\n )\n\n const getContainerProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n role: \"radiogroup\",\n ...props,\n ref: mergeRefs(ref, containerRef),\n }),\n [],\n )\n\n const getRadioProps: PropGetter<\n { value?: Y },\n { value?: Y; checked?: boolean; isChecked?: boolean }\n > = useCallback(\n (props = {}, ref = null) => {\n const isChecked = props.value === value\n\n return {\n ...props,\n ref,\n name,\n [isNative ? \"checked\" : \"isChecked\"]:\n value != null ? isChecked : undefined,\n \"aria-checked\": isChecked,\n onChange,\n }\n },\n [name, value, onChange, isNative],\n )\n\n return {\n props,\n id,\n name,\n value,\n setValue,\n onChange,\n onFocus,\n getContainerProps,\n getRadioProps,\n }\n}\n\nexport type UseRadioGroupReturn<Y extends string | number = string> =\n ReturnType<typeof useRadioGroup<Y>>\n\nexport interface RadioGroupProps<Y extends string | number = string>\n extends ThemeProps<\"Radio\">,\n Omit<FlexProps, \"defaultValue\" | \"onChange\">,\n UseRadioGroupProps<Y>,\n FormControlOptions {\n /**\n * If provided, generate radios based on items.\n *\n * @default '[]'\n */\n items?: RadioItem<Y>[]\n}\n\nexport const RadioGroup = forwardRef(\n <Y extends string | number = string>(\n {\n id: idProp,\n className,\n size,\n variant,\n colorScheme,\n children,\n items = [],\n direction = \"column\",\n gap,\n ...props\n }: RadioGroupProps<Y>,\n ref: ForwardedRef<HTMLDivElement>,\n ) => {\n const {\n labelId,\n isRequired,\n isReadOnly,\n isDisabled,\n isInvalid,\n ...computedProps\n } = useFormControl({\n id: idProp,\n ...props,\n })\n const {\n id,\n name,\n value,\n onChange,\n getContainerProps,\n props: rest,\n } = useRadioGroup(computedProps)\n\n const validChildren = getValidChildren(children)\n let computedChildren: ReactElement[] = []\n\n if (!validChildren.length && items.length) {\n computedChildren = items.map(({ label, value, ...props }, i) => (\n <Radio key={i} value={value} {...props}>\n {label}\n </Radio>\n ))\n }\n\n return (\n <RadioGroupProvider\n value={\n {\n size,\n variant,\n colorScheme,\n isRequired,\n isReadOnly,\n isDisabled,\n isInvalid,\n name,\n value,\n onChange,\n } as RadioGroupContext\n }\n >\n <Flex\n ref={ref}\n className={cx(\"ui-radio-group\", className)}\n gap={gap ?? (direction === \"row\" ? \"1rem\" : undefined)}\n {...getContainerProps({\n id,\n \"aria-labelledby\": labelId,\n ...rest,\n })}\n direction={direction}\n >\n {children ?? computedChildren}\n </Flex>\n </RadioGroupProvider>\n )\n },\n) as {\n <Y extends string | number = string>(\n props: RadioGroupProps<Y> & RefAttributes<HTMLDivElement>,\n ): JSX.Element\n} & ComponentArgs\n\nRadioGroup.displayName = \"RadioGroup\"\n"],"mappings":"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","names":["props","value"]}
@@ -1,21 +1,10 @@
1
1
  "use client"
2
-
3
- // src/radio-group.tsx
4
- import { useFormControl as useFormControl2 } from "@yamada-ui/form-control";
5
- import { Flex } from "@yamada-ui/layouts";
6
- import { useControllableState } from "@yamada-ui/use-controllable-state";
7
2
  import {
8
- createContext,
9
- cx as cx2,
10
- isObject,
11
- mergeRefs,
12
- useCallbackRef as useCallbackRef2,
13
- getValidChildren
14
- } from "@yamada-ui/utils";
15
- import { useCallback as useCallback2, useId as useId2, useRef, forwardRef as forwardRef2 } from "react";
3
+ useRadioGroupContext
4
+ } from "./chunk-YWRIETVW.mjs";
16
5
 
17
6
  // src/radio.tsx
18
- import { ui, useMultiComponentStyle, omitThemeProps } from "@yamada-ui/core";
7
+ import { ui, useComponentMultiStyle, omitThemeProps } from "@yamada-ui/core";
19
8
  import {
20
9
  useFormControl,
21
10
  useFormControlProps,
@@ -113,10 +102,10 @@ var useRadio = ({
113
102
  "data-focus": dataAttr(isFocused),
114
103
  "data-focus-visible": dataAttr(isFocused && isFocusVisible),
115
104
  "aria-hidden": true,
116
- onMouseDown: handlerAll(props2.onMouseDown, () => setActive(true)),
117
- onMouseUp: handlerAll(props2.onMouseUp, () => setActive(false)),
118
- onMouseEnter: handlerAll(props2.onMouseEnter, () => setHovered(true)),
119
- onMouseLeave: handlerAll(props2.onMouseLeave, () => setHovered(false))
105
+ onMouseDown: handlerAll(props2 == null ? void 0 : props2.onMouseDown, () => setActive(true)),
106
+ onMouseUp: handlerAll(props2 == null ? void 0 : props2.onMouseUp, () => setActive(false)),
107
+ onMouseEnter: handlerAll(props2 == null ? void 0 : props2.onMouseEnter, () => setHovered(true)),
108
+ onMouseLeave: handlerAll(props2 == null ? void 0 : props2.onMouseLeave, () => setHovered(false))
120
109
  }),
121
110
  [checked, isActive, isFocused, isFocusVisible, isHovered, formControlProps]
122
111
  );
@@ -145,11 +134,11 @@ var useRadio = ({
145
134
  whiteSpace: "nowrap",
146
135
  position: "absolute"
147
136
  },
148
- onChange: handlerAll(props2.onChange, onChange),
149
- onBlur: handlerAll(props2.onBlur, onBlur, () => setFocused(false)),
150
- onFocus: handlerAll(props2.onFocus, onFocus, () => setFocused(true)),
151
- onKeyDown: handlerAll(props2.onKeyDown, onKeyDown),
152
- onKeyUp: handlerAll(props2.onKeyUp, onKeyUp)
137
+ onChange: handlerAll(props2 == null ? void 0 : props2.onChange, onChange),
138
+ onBlur: handlerAll(props2 == null ? void 0 : props2.onBlur, onBlur, () => setFocused(false)),
139
+ onFocus: handlerAll(props2 == null ? void 0 : props2.onFocus, onFocus, () => setFocused(true)),
140
+ onKeyDown: handlerAll(props2 == null ? void 0 : props2.onKeyDown, onKeyDown),
141
+ onKeyUp: handlerAll(props2 == null ? void 0 : props2.onKeyUp, onKeyUp)
153
142
  }),
154
143
  [
155
144
  formControlProps,
@@ -172,11 +161,11 @@ var useRadio = ({
172
161
  ...formControlProps,
173
162
  ...props2,
174
163
  ref,
175
- onMouseDown: handlerAll(props2.onMouseDown, (ev) => {
164
+ onMouseDown: handlerAll(props2 == null ? void 0 : props2.onMouseDown, (ev) => {
176
165
  ev.preventDefault();
177
166
  ev.stopPropagation();
178
167
  }),
179
- onTouchStart: handlerAll(props2.onTouchStart, (ev) => {
168
+ onTouchStart: handlerAll(props2 == null ? void 0 : props2.onTouchStart, (ev) => {
180
169
  ev.preventDefault();
181
170
  ev.stopPropagation();
182
171
  }),
@@ -203,7 +192,7 @@ var Radio = forwardRef(
203
192
  const group = useRadioGroupContext();
204
193
  const { value: groupValue, ...groupProps } = { ...group };
205
194
  const control = useFormControl(props);
206
- const [styles, mergedProps] = useMultiComponentStyle("Radio", {
195
+ const [styles, mergedProps] = useComponentMultiStyle("Radio", {
207
196
  ...groupProps,
208
197
  ...props
209
198
  });
@@ -296,163 +285,8 @@ var Radio = forwardRef(
296
285
  );
297
286
  Radio.displayName = "Radio";
298
287
 
299
- // src/radio-group.tsx
300
- import { jsx as jsx2 } from "react/jsx-runtime";
301
- var isEvent = (value) => value && isObject(value) && isObject(value.target);
302
- var useRadioGroup = ({
303
- id,
304
- name,
305
- isNative,
306
- value: valueProp,
307
- defaultValue,
308
- onChange: onChangeProp,
309
- ...props
310
- }) => {
311
- id != null ? id : id = useId2();
312
- name != null ? name : name = `radio-${id}`;
313
- const onChangeRef = useCallbackRef2(onChangeProp);
314
- const [value, setValue] = useControllableState({
315
- value: valueProp,
316
- defaultValue,
317
- onChange: onChangeRef
318
- });
319
- const containerRef = useRef(null);
320
- const onFocus = useCallback2(() => {
321
- const container = containerRef.current;
322
- if (!container) return;
323
- let query = `input:not(:disabled):checked`;
324
- let firstInput = container.querySelector(query);
325
- if (firstInput) {
326
- firstInput.focus();
327
- } else {
328
- query = `input:not(:disabled)`;
329
- firstInput = container.querySelector(query);
330
- firstInput == null ? void 0 : firstInput.focus();
331
- }
332
- }, []);
333
- const onChange = useCallback2(
334
- (evOrValue) => {
335
- const nextValue = isEvent(evOrValue) ? evOrValue.target.value : evOrValue;
336
- setValue(nextValue);
337
- },
338
- [setValue]
339
- );
340
- const getContainerProps = useCallback2(
341
- (props2 = {}, ref = null) => ({
342
- role: "radiogroup",
343
- ...props2,
344
- ref: mergeRefs(ref, containerRef)
345
- }),
346
- []
347
- );
348
- const getRadioProps = useCallback2(
349
- (props2 = {}, ref = null) => {
350
- const isChecked = props2.value === value;
351
- return {
352
- ...props2,
353
- ref,
354
- name,
355
- [isNative ? "checked" : "isChecked"]: value != null ? isChecked : void 0,
356
- "aria-checked": isChecked,
357
- onChange
358
- };
359
- },
360
- [name, value, onChange, isNative]
361
- );
362
- return {
363
- props,
364
- id,
365
- name,
366
- value,
367
- setValue,
368
- onChange,
369
- onFocus,
370
- getContainerProps,
371
- getRadioProps
372
- };
373
- };
374
- var [RadioGroupProvider, useRadioGroupContext] = createContext({
375
- strict: false,
376
- name: "RadioGroupContext"
377
- });
378
- var RadioGroup = forwardRef2(
379
- ({
380
- id: idProp,
381
- className,
382
- size,
383
- variant,
384
- colorScheme,
385
- children,
386
- items = [],
387
- direction = "column",
388
- gap,
389
- ...props
390
- }, ref) => {
391
- const {
392
- labelId,
393
- isRequired,
394
- isReadOnly,
395
- isDisabled,
396
- isInvalid,
397
- ...computedProps
398
- } = useFormControl2({
399
- id: idProp,
400
- ...props
401
- });
402
- const {
403
- id,
404
- name,
405
- value,
406
- onChange,
407
- getContainerProps,
408
- props: rest
409
- } = useRadioGroup(computedProps);
410
- const validChildren = getValidChildren(children);
411
- let computedChildren = [];
412
- if (!validChildren.length && items.length) {
413
- computedChildren = items.map(({ label, value: value2, ...props2 }, i) => /* @__PURE__ */ jsx2(Radio, { value: value2, ...props2, children: label }, i));
414
- }
415
- return /* @__PURE__ */ jsx2(
416
- RadioGroupProvider,
417
- {
418
- value: {
419
- size,
420
- variant,
421
- colorScheme,
422
- isRequired,
423
- isReadOnly,
424
- isDisabled,
425
- isInvalid,
426
- name,
427
- value,
428
- onChange
429
- },
430
- children: /* @__PURE__ */ jsx2(
431
- Flex,
432
- {
433
- ref,
434
- className: cx2("ui-radio-group", className),
435
- gap: gap != null ? gap : direction === "row" ? "1rem" : void 0,
436
- ...getContainerProps({
437
- id,
438
- "aria-labelledby": labelId,
439
- ...rest
440
- }),
441
- direction,
442
- children: children != null ? children : computedChildren
443
- }
444
- )
445
- }
446
- );
447
- }
448
- );
449
- RadioGroup.displayName = "RadioGroup";
450
-
451
288
  export {
452
- useRadioGroup,
453
- useRadioGroupContext,
454
- RadioGroup,
455
289
  useRadio,
456
290
  Radio
457
291
  };
458
- //# sourceMappingURL=chunk-Q2UUIUFI.mjs.map
292
+ //# sourceMappingURL=chunk-VT4XEFV3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/radio.tsx"],"sourcesContent":["import type {\n HTMLUIProps,\n ThemeProps,\n ComponentArgs,\n PropGetter,\n} from \"@yamada-ui/core\"\nimport { ui, useComponentMultiStyle, omitThemeProps } from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport {\n useFormControl,\n useFormControlProps,\n formControlProperties,\n} from \"@yamada-ui/form-control\"\nimport { trackFocusVisible } from \"@yamada-ui/use-focus-visible\"\nimport type { Dict } from \"@yamada-ui/utils\"\nimport {\n cx,\n useCallbackRef,\n funcAll,\n handlerAll,\n dataAttr,\n splitObject,\n} from \"@yamada-ui/utils\"\nimport type {\n ForwardedRef,\n ChangeEvent,\n ChangeEventHandler,\n InputHTMLAttributes,\n KeyboardEvent,\n SyntheticEvent,\n RefAttributes,\n} from \"react\"\nimport { forwardRef, useCallback, useEffect, useId, useState } from \"react\"\nimport { useRadioGroupContext } from \"./radio-context\"\n\nexport interface UseRadioProps<Y extends string | number = string>\n extends FormControlOptions {\n /**\n * id assigned to input.\n */\n id?: string\n /**\n * The name of the input field in a radio.\n */\n name?: string\n /**\n * The value to be used in the radio button.\n */\n value?: Y\n /**\n * If `true`, the radio will be initially checked.\n *\n * @default false\n */\n defaultIsChecked?: boolean\n /**\n * If `true`, the radio will be checked.\n *\n * @default false\n */\n isChecked?: boolean\n /**\n * The callback invoked when the checked state changes.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>\n}\n\nexport const useRadio = <\n Y extends string | number = string,\n M extends Dict = Dict,\n>({\n id,\n ...props\n}: UseRadioProps<Y> & M) => {\n id ??= useId()\n const {\n id: _id,\n name,\n value,\n isChecked: isCheckedProp,\n defaultIsChecked,\n onChange: onChangeProp,\n ...computedProps\n } = useFormControlProps({ id, ...props })\n const [\n {\n \"aria-readonly\": _ariaReadonly,\n required,\n disabled,\n readOnly,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n ...formControlProps\n },\n rest,\n ] = splitObject(computedProps, formControlProperties)\n\n const [isFocusVisible, setIsFocusVisible] = useState<boolean>(false)\n const [isFocused, setFocused] = useState<boolean>(false)\n const [isHovered, setHovered] = useState<boolean>(false)\n const [isActive, setActive] = useState<boolean>(false)\n\n const [isChecked, setIsChecked] = useState<boolean>(!!defaultIsChecked)\n\n const isControlled = isCheckedProp !== undefined\n const checked = isControlled ? (isCheckedProp as boolean) : isChecked\n\n useEffect(() => {\n return trackFocusVisible(setIsFocusVisible)\n }, [])\n\n const onChange = useCallbackRef(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (readOnly || disabled) {\n ev.preventDefault()\n\n return\n }\n\n if (!isControlled) setIsChecked(ev.target.checked)\n\n onChangeProp?.(ev)\n },\n [readOnly, disabled, isControlled],\n )\n const onFocus = useCallbackRef(onFocusProp)\n const onBlur = useCallbackRef(onBlurProp)\n\n const onKeyDown = useCallback(\n ({ key }: KeyboardEvent) => {\n if (key === \" \") setActive(true)\n },\n [setActive],\n )\n\n const onKeyUp = useCallback(\n ({ key }: KeyboardEvent) => {\n if (key === \" \") setActive(false)\n },\n [setActive],\n )\n\n const getContainerProps: PropGetter<\"label\"> = useCallback(\n (props = {}, ref = null) => ({\n ...formControlProps,\n ...props,\n ref,\n \"data-checked\": dataAttr(checked),\n }),\n [checked, formControlProps],\n )\n\n const getIconProps: PropGetter<\"span\"> = useCallback(\n (props = {}, ref = null) => ({\n ...formControlProps,\n ...props,\n ref,\n \"data-active\": dataAttr(isActive),\n \"data-hover\": dataAttr(isHovered),\n \"data-checked\": dataAttr(checked),\n \"data-focus\": dataAttr(isFocused),\n \"data-focus-visible\": dataAttr(isFocused && isFocusVisible),\n \"aria-hidden\": true,\n onMouseDown: handlerAll(props?.onMouseDown, () => setActive(true)),\n onMouseUp: handlerAll(props?.onMouseUp, () => setActive(false)),\n onMouseEnter: handlerAll(props?.onMouseEnter, () => setHovered(true)),\n onMouseLeave: handlerAll(props?.onMouseLeave, () => setHovered(false)),\n }),\n [checked, isActive, isFocused, isFocusVisible, isHovered, formControlProps],\n )\n\n const getInputProps: PropGetter<\"input\"> = useCallback(\n (props = {}, ref = null) => ({\n ...formControlProps,\n ...props,\n ref,\n id,\n type: \"radio\",\n name,\n value,\n required,\n disabled,\n readOnly,\n checked,\n \"aria-checked\": checked,\n style: {\n border: \"0px\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n height: \"1px\",\n width: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\",\n },\n onChange: handlerAll(props?.onChange, onChange),\n onBlur: handlerAll(props?.onBlur, onBlur, () => setFocused(false)),\n onFocus: handlerAll(props?.onFocus, onFocus, () => setFocused(true)),\n onKeyDown: handlerAll(props?.onKeyDown, onKeyDown),\n onKeyUp: handlerAll(props?.onKeyUp, onKeyUp),\n }),\n [\n formControlProps,\n id,\n name,\n value,\n required,\n disabled,\n readOnly,\n checked,\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n onKeyUp,\n ],\n )\n\n const getLabelProps: PropGetter<\"span\"> = useCallback(\n (props = {}, ref = null) => ({\n ...formControlProps,\n ...props,\n ref,\n onMouseDown: handlerAll(props?.onMouseDown, (ev: SyntheticEvent) => {\n ev.preventDefault()\n ev.stopPropagation()\n }),\n onTouchStart: handlerAll(props?.onTouchStart, (ev: SyntheticEvent) => {\n ev.preventDefault()\n ev.stopPropagation()\n }),\n \"data-checked\": dataAttr(checked),\n }),\n [checked, formControlProps],\n )\n\n return {\n props: rest,\n isFocusVisible,\n isFocused,\n isHovered,\n isActive,\n isChecked: checked,\n getContainerProps,\n getInputProps,\n getIconProps,\n getLabelProps,\n }\n}\n\nexport type UseRadioReturn = ReturnType<typeof useRadio>\n\ninterface RadioOptions {\n iconProps?: HTMLUIProps<\"span\">\n inputProps?: InputHTMLAttributes<HTMLInputElement>\n labelProps?: HTMLUIProps<\"span\">\n}\n\nexport interface RadioProps<Y extends string | number = string>\n extends Omit<HTMLUIProps<\"label\">, keyof UseRadioProps>,\n ThemeProps<\"Radio\">,\n UseRadioProps<Y>,\n RadioOptions {}\n\n/**\n * `Radio` is a component used for allowing users to select one option from multiple choices.\n *\n * @see Docs https://yamada-ui.com/components/forms/radio\n */\nexport const Radio = forwardRef(\n <Y extends string | number = string>(\n props: RadioProps<Y>,\n ref: ForwardedRef<HTMLInputElement>,\n ) => {\n const group = useRadioGroupContext()\n const { value: groupValue, ...groupProps } = { ...group }\n const control = useFormControl(props)\n const [styles, mergedProps] = useComponentMultiStyle(\"Radio\", {\n ...groupProps,\n ...props,\n })\n const {\n className,\n gap = \"0.5rem\",\n isRequired = groupProps.isRequired ?? control.isRequired,\n isReadOnly = groupProps.isReadOnly ?? control.isReadOnly,\n isDisabled = groupProps.isDisabled ?? control.isDisabled,\n isInvalid = groupProps.isInvalid ?? control.isInvalid,\n iconProps,\n inputProps,\n labelProps,\n children,\n ...computedProps\n } = omitThemeProps(mergedProps)\n\n const isCheckedProp =\n groupValue && computedProps.value\n ? groupValue === computedProps.value\n : computedProps.isChecked\n\n const onChange =\n groupProps.onChange && computedProps.value\n ? funcAll(groupProps.onChange, computedProps.onChange)\n : computedProps.onChange\n\n const {\n isChecked,\n getContainerProps,\n getInputProps,\n getIconProps,\n getLabelProps,\n props: rest,\n } = useRadio({\n ...computedProps,\n isRequired,\n isReadOnly,\n isDisabled,\n isInvalid,\n isChecked: isCheckedProp,\n onChange,\n })\n\n const tabIndex = !groupValue ? 0 : isChecked ? 0 : -1\n\n return (\n <ui.label\n className={cx(\"ui-radio\", className)}\n {...getContainerProps(rest)}\n __css={{\n cursor: \"pointer\",\n position: \"relative\",\n display: \"inline-flex\",\n alignItems: \"center\",\n verticalAlign: \"top\",\n gap,\n ...styles.container,\n }}\n >\n <ui.input\n className=\"ui-radio__input\"\n {...getInputProps(\n {\n ...inputProps,\n tabIndex,\n },\n ref,\n )}\n />\n\n <ui.span\n className=\"ui-radio__icon\"\n {...getIconProps(iconProps)}\n __css={{\n position: \"relative\",\n display: \"inline-block\",\n userSelect: \"none\",\n ...styles.icon,\n }}\n />\n\n <ui.span\n className=\"ui-radio__label\"\n {...getLabelProps(labelProps)}\n __css={{ ...styles.label }}\n >\n {children}\n </ui.span>\n </ui.label>\n )\n },\n) as {\n <Y extends string | number = string>(\n props: RadioProps<Y> & RefAttributes<HTMLInputElement>,\n ): JSX.Element\n} & ComponentArgs\n\nRadio.displayName = \"Radio\"\n"],"mappings":";;;;;;AAMA,SAAS,IAAI,wBAAwB,sBAAsB;AAE3D;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,yBAAyB;AAElC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAUP,SAAS,YAAY,aAAa,WAAW,OAAO,gBAAgB;AAsS9D,SAaE,KAbF;AAnQC,IAAM,WAAW,CAGtB;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA4B;AAC1B,yBAAO,MAAM;AACb,QAAM;AAAA,IACJ,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,UAAU;AAAA,IACV,GAAG;AAAA,EACL,IAAI,oBAAoB,EAAE,IAAI,GAAG,MAAM,CAAC;AACxC,QAAM;AAAA,IACJ;AAAA,MACE,iBAAiB;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,GAAG;AAAA,IACL;AAAA,IACA;AAAA,EACF,IAAI,YAAY,eAAe,qBAAqB;AAEpD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAkB,KAAK;AACnE,QAAM,CAAC,WAAW,UAAU,IAAI,SAAkB,KAAK;AACvD,QAAM,CAAC,WAAW,UAAU,IAAI,SAAkB,KAAK;AACvD,QAAM,CAAC,UAAU,SAAS,IAAI,SAAkB,KAAK;AAErD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAkB,CAAC,CAAC,gBAAgB;AAEtE,QAAM,eAAe,kBAAkB;AACvC,QAAM,UAAU,eAAgB,gBAA4B;AAE5D,YAAU,MAAM;AACd,WAAO,kBAAkB,iBAAiB;AAAA,EAC5C,GAAG,CAAC,CAAC;AAEL,QAAM,WAAW;AAAA,IACf,CAAC,OAAsC;AACrC,UAAI,YAAY,UAAU;AACxB,WAAG,eAAe;AAElB;AAAA,MACF;AAEA,UAAI,CAAC,aAAc,cAAa,GAAG,OAAO,OAAO;AAEjD,mDAAe;AAAA,IACjB;AAAA,IACA,CAAC,UAAU,UAAU,YAAY;AAAA,EACnC;AACA,QAAM,UAAU,eAAe,WAAW;AAC1C,QAAM,SAAS,eAAe,UAAU;AAExC,QAAM,YAAY;AAAA,IAChB,CAAC,EAAE,IAAI,MAAqB;AAC1B,UAAI,QAAQ,IAAK,WAAU,IAAI;AAAA,IACjC;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAEA,QAAM,UAAU;AAAA,IACd,CAAC,EAAE,IAAI,MAAqB;AAC1B,UAAI,QAAQ,IAAK,WAAU,KAAK;AAAA,IAClC;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAEA,QAAM,oBAAyC;AAAA,IAC7C,CAACA,SAAQ,CAAC,GAAG,MAAM,UAAU;AAAA,MAC3B,GAAG;AAAA,MACH,GAAGA;AAAA,MACH;AAAA,MACA,gBAAgB,SAAS,OAAO;AAAA,IAClC;AAAA,IACA,CAAC,SAAS,gBAAgB;AAAA,EAC5B;AAEA,QAAM,eAAmC;AAAA,IACvC,CAACA,SAAQ,CAAC,GAAG,MAAM,UAAU;AAAA,MAC3B,GAAG;AAAA,MACH,GAAGA;AAAA,MACH;AAAA,MACA,eAAe,SAAS,QAAQ;AAAA,MAChC,cAAc,SAAS,SAAS;AAAA,MAChC,gBAAgB,SAAS,OAAO;AAAA,MAChC,cAAc,SAAS,SAAS;AAAA,MAChC,sBAAsB,SAAS,aAAa,cAAc;AAAA,MAC1D,eAAe;AAAA,MACf,aAAa,WAAWA,UAAA,gBAAAA,OAAO,aAAa,MAAM,UAAU,IAAI,CAAC;AAAA,MACjE,WAAW,WAAWA,UAAA,gBAAAA,OAAO,WAAW,MAAM,UAAU,KAAK,CAAC;AAAA,MAC9D,cAAc,WAAWA,UAAA,gBAAAA,OAAO,cAAc,MAAM,WAAW,IAAI,CAAC;AAAA,MACpE,cAAc,WAAWA,UAAA,gBAAAA,OAAO,cAAc,MAAM,WAAW,KAAK,CAAC;AAAA,IACvE;AAAA,IACA,CAAC,SAAS,UAAU,WAAW,gBAAgB,WAAW,gBAAgB;AAAA,EAC5E;AAEA,QAAM,gBAAqC;AAAA,IACzC,CAACA,SAAQ,CAAC,GAAG,MAAM,UAAU;AAAA,MAC3B,GAAG;AAAA,MACH,GAAGA;AAAA,MACH;AAAA,MACA;AAAA,MACA,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,MAChB,OAAO;AAAA,QACL,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,UAAU;AAAA,MACZ;AAAA,MACA,UAAU,WAAWA,UAAA,gBAAAA,OAAO,UAAU,QAAQ;AAAA,MAC9C,QAAQ,WAAWA,UAAA,gBAAAA,OAAO,QAAQ,QAAQ,MAAM,WAAW,KAAK,CAAC;AAAA,MACjE,SAAS,WAAWA,UAAA,gBAAAA,OAAO,SAAS,SAAS,MAAM,WAAW,IAAI,CAAC;AAAA,MACnE,WAAW,WAAWA,UAAA,gBAAAA,OAAO,WAAW,SAAS;AAAA,MACjD,SAAS,WAAWA,UAAA,gBAAAA,OAAO,SAAS,OAAO;AAAA,IAC7C;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,QAAM,gBAAoC;AAAA,IACxC,CAACA,SAAQ,CAAC,GAAG,MAAM,UAAU;AAAA,MAC3B,GAAG;AAAA,MACH,GAAGA;AAAA,MACH;AAAA,MACA,aAAa,WAAWA,UAAA,gBAAAA,OAAO,aAAa,CAAC,OAAuB;AAClE,WAAG,eAAe;AAClB,WAAG,gBAAgB;AAAA,MACrB,CAAC;AAAA,MACD,cAAc,WAAWA,UAAA,gBAAAA,OAAO,cAAc,CAAC,OAAuB;AACpE,WAAG,eAAe;AAClB,WAAG,gBAAgB;AAAA,MACrB,CAAC;AAAA,MACD,gBAAgB,SAAS,OAAO;AAAA,IAClC;AAAA,IACA,CAAC,SAAS,gBAAgB;AAAA,EAC5B;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAqBO,IAAM,QAAQ;AAAA,EACnB,CACE,OACA,QACG;AAlRP;AAmRI,UAAM,QAAQ,qBAAqB;AACnC,UAAM,EAAE,OAAO,YAAY,GAAG,WAAW,IAAI,EAAE,GAAG,MAAM;AACxD,UAAM,UAAU,eAAe,KAAK;AACpC,UAAM,CAAC,QAAQ,WAAW,IAAI,uBAAuB,SAAS;AAAA,MAC5D,GAAG;AAAA,MACH,GAAG;AAAA,IACL,CAAC;AACD,UAAM;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,MACN,cAAa,gBAAW,eAAX,YAAyB,QAAQ;AAAA,MAC9C,cAAa,gBAAW,eAAX,YAAyB,QAAQ;AAAA,MAC9C,cAAa,gBAAW,eAAX,YAAyB,QAAQ;AAAA,MAC9C,aAAY,gBAAW,cAAX,YAAwB,QAAQ;AAAA,MAC5C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI,eAAe,WAAW;AAE9B,UAAM,gBACJ,cAAc,cAAc,QACxB,eAAe,cAAc,QAC7B,cAAc;AAEpB,UAAM,WACJ,WAAW,YAAY,cAAc,QACjC,QAAQ,WAAW,UAAU,cAAc,QAAQ,IACnD,cAAc;AAEpB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,IACT,IAAI,SAAS;AAAA,MACX,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX;AAAA,IACF,CAAC;AAED,UAAM,WAAW,CAAC,aAAa,IAAI,YAAY,IAAI;AAEnD,WACE;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC,WAAW,GAAG,YAAY,SAAS;AAAA,QAClC,GAAG,kBAAkB,IAAI;AAAA,QAC1B,OAAO;AAAA,UACL,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,eAAe;AAAA,UACf;AAAA,UACA,GAAG,OAAO;AAAA,QACZ;AAAA,QAEA;AAAA;AAAA,YAAC,GAAG;AAAA,YAAH;AAAA,cACC,WAAU;AAAA,cACT,GAAG;AAAA,gBACF;AAAA,kBACE,GAAG;AAAA,kBACH;AAAA,gBACF;AAAA,gBACA;AAAA,cACF;AAAA;AAAA,UACF;AAAA,UAEA;AAAA,YAAC,GAAG;AAAA,YAAH;AAAA,cACC,WAAU;AAAA,cACT,GAAG,aAAa,SAAS;AAAA,cAC1B,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,SAAS;AAAA,gBACT,YAAY;AAAA,gBACZ,GAAG,OAAO;AAAA,cACZ;AAAA;AAAA,UACF;AAAA,UAEA;AAAA,YAAC,GAAG;AAAA,YAAH;AAAA,cACC,WAAU;AAAA,cACT,GAAG,cAAc,UAAU;AAAA,cAC5B,OAAO,EAAE,GAAG,OAAO,MAAM;AAAA,cAExB;AAAA;AAAA,UACH;AAAA;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAMA,MAAM,cAAc;","names":["props"]}
@@ -0,0 +1,14 @@
1
+ "use client"
2
+
3
+ // src/radio-context.ts
4
+ import { createContext } from "@yamada-ui/utils";
5
+ var [RadioGroupProvider, useRadioGroupContext] = createContext({
6
+ strict: false,
7
+ name: "RadioGroupContext"
8
+ });
9
+
10
+ export {
11
+ RadioGroupProvider,
12
+ useRadioGroupContext
13
+ };
14
+ //# sourceMappingURL=chunk-YWRIETVW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/radio-context.ts"],"sourcesContent":["import type { ThemeProps } from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport { createContext } from \"@yamada-ui/utils\"\nimport type { ChangeEvent } from \"react\"\n\nexport interface RadioGroupContext\n extends ThemeProps<\"Radio\">,\n FormControlOptions {\n name: string\n value: string | number\n onChange: (evOrValue: ChangeEvent<HTMLInputElement> | string | number) => void\n}\n\nexport const [RadioGroupProvider, useRadioGroupContext] = createContext<\n RadioGroupContext | undefined\n>({\n strict: false,\n name: \"RadioGroupContext\",\n})\n"],"mappings":";;;AAEA,SAAS,qBAAqB;AAWvB,IAAM,CAAC,oBAAoB,oBAAoB,IAAI,cAExD;AAAA,EACA,QAAQ;AAAA,EACR,MAAM;AACR,CAAC;","names":[]}
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { Radio, RadioProps, UseRadioProps, UseRadioReturn, useRadio } from './radio.mjs';
2
2
  export { RadioGroup, RadioGroupProps, RadioItem, UseRadioGroupProps, UseRadioGroupReturn, useRadioGroup } from './radio-group.mjs';
3
+ import '@yamada-ui/form-control';
3
4
  import 'react';
4
5
  import '@yamada-ui/core';
5
- import '@yamada-ui/form-control';
6
6
  import '@yamada-ui/utils';
7
7
  import '@yamada-ui/layouts';
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { Radio, RadioProps, UseRadioProps, UseRadioReturn, useRadio } from './radio.js';
2
2
  export { RadioGroup, RadioGroupProps, RadioItem, UseRadioGroupProps, UseRadioGroupReturn, useRadioGroup } from './radio-group.js';
3
+ import '@yamada-ui/form-control';
3
4
  import 'react';
4
5
  import '@yamada-ui/core';
5
- import '@yamada-ui/form-control';
6
6
  import '@yamada-ui/utils';
7
7
  import '@yamada-ui/layouts';