UNPKG

ivt

Version:

Ivt Components Library

1 lines 15.6 kB
{"version":3,"file":"index.mjs","sources":["../../node_modules/@radix-ui/react-radio-group/dist/index.mjs","../../src/components/ui/radio-group/radio-group.tsx"],"sourcesContent":["\"use client\";\n\n// src/radio-group.tsx\nimport * as React2 from \"react\";\nimport { composeEventHandlers as composeEventHandlers2 } from \"@radix-ui/primitive\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { Primitive as Primitive2 } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\n\n// src/radio.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar RADIO_NAME = \"Radio\";\nvar [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\nvar [RadioProvider, useRadioContext] = createRadioContext(RADIO_NAME);\nvar Radio = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = \"on\",\n onCheck,\n form,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n return /* @__PURE__ */ jsxs(RadioProvider, { scope: __scopeRadio, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"radio\",\n \"aria-checked\": checked,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...radioProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n RadioBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nRadio.displayName = RADIO_NAME;\nvar INDICATOR_NAME = \"RadioIndicator\";\nvar RadioIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.checked, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nRadioIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar RadioBubbleInput = React.forwardRef(\n ({\n __scopeRadio,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"radio\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nRadioBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n\n// src/radio-group.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar RADIO_GROUP_NAME = \"RadioGroup\";\nvar [createRadioGroupContext, createRadioGroupScope] = createContextScope2(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar useRadioScope = createRadioScope();\nvar [RadioGroupProvider, useRadioGroupContext] = createRadioGroupContext(RADIO_GROUP_NAME);\nvar RadioGroup = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? null,\n onChange: onValueChange,\n caller: RADIO_GROUP_NAME\n });\n return /* @__PURE__ */ jsx2(\n RadioGroupProvider,\n {\n scope: __scopeRadioGroup,\n name,\n required,\n disabled,\n value,\n onValueChange: setValue,\n children: /* @__PURE__ */ jsx2(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx2(\n Primitive2.div,\n {\n role: \"radiogroup\",\n \"aria-required\": required,\n \"aria-orientation\": orientation,\n \"data-disabled\": disabled ? \"\" : void 0,\n dir: direction,\n ...groupProps,\n ref: forwardedRef\n }\n )\n }\n )\n }\n );\n }\n);\nRadioGroup.displayName = RADIO_GROUP_NAME;\nvar ITEM_NAME = \"RadioGroupItem\";\nvar RadioGroupItem = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React2.useRef(false);\n React2.useEffect(() => {\n const handleKeyDown = (event) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => isArrowKeyPressedRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"keyup\", handleKeyUp);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.removeEventListener(\"keyup\", handleKeyUp);\n };\n }, []);\n return /* @__PURE__ */ jsx2(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !isDisabled,\n active: checked,\n children: /* @__PURE__ */ jsx2(\n Radio,\n {\n disabled: isDisabled,\n required: context.required,\n checked,\n ...radioScope,\n ...itemProps,\n name: context.name,\n ref: composedRefs,\n onCheck: () => context.onValueChange(itemProps.value),\n onKeyDown: composeEventHandlers2((event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onFocus: composeEventHandlers2(itemProps.onFocus, () => {\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })\n }\n )\n }\n );\n }\n);\nRadioGroupItem.displayName = ITEM_NAME;\nvar INDICATOR_NAME2 = \"RadioGroupIndicator\";\nvar RadioGroupIndicator = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioIndicator, { ...radioScope, ...indicatorProps, ref: forwardedRef });\n }\n);\nRadioGroupIndicator.displayName = INDICATOR_NAME2;\nvar Root2 = RadioGroup;\nvar Item2 = RadioGroupItem;\nvar Indicator = RadioGroupIndicator;\nexport {\n Indicator,\n Item2 as Item,\n RadioGroup,\n RadioGroupIndicator,\n RadioGroupItem,\n Root2 as Root,\n createRadioGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { CircleIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction RadioGroup({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n\treturn (\n\t\t<RadioGroupPrimitive.Root\n\t\t\tdata-slot=\"radio-group\"\n\t\t\tclassName={cn(\"grid gap-3\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction RadioGroupItem({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n\treturn (\n\t\t<RadioGroupPrimitive.Item\n\t\t\tdata-slot=\"radio-group-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<RadioGroupPrimitive.Indicator\n\t\t\t\tdata-slot=\"radio-group-indicator\"\n\t\t\t\tclassName=\"relative flex items-center justify-center\"\n\t\t\t>\n\t\t\t\t<CircleIcon className=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n\t\t\t</RadioGroupPrimitive.Indicator>\n\t\t</RadioGroupPrimitive.Item>\n\t);\n}\n\nexport { RadioGroup, RadioGroupItem };\n"],"names":["ARROW_KEYS","RADIO_GROUP_NAME","createRadioGroupContext","createRadioGroupScope","createContextScope","createRovingFocusGroupScope","createRadioScope","useRovingFocusGroupScope","useRadioScope","RadioGroupProvider","useRadioGroupContext","RadioGroup","React2","forwardRef","props","forwardedRef","__scopeRadioGroup","name","defaultValue","value","valueProp","required","disabled","orientation","dir","loop","onValueChange","groupProps","rovingFocusGroupScope","direction","useDirection","setValue","useControllableState","prop","defaultProp","onChange","caller","jsx","scope","children","RovingFocusGroup.Root","asChild","Primitive","div","role","ref","displayName","ITEM_NAME","RadioGroupItem","itemProps","context","isDisabled","radioScope","useRef","composedRefs","useComposedRefs","checked","isArrowKeyPressedRef","useEffect","handleKeyDown","event","includes","key","current","handleKeyUp","document","addEventListener","removeEventListener","RovingFocusGroup.Item","focusable","active","Radio","onCheck","onKeyDown","composeEventHandlers","preventDefault","onFocus","click","RadioGroupIndicator","indicatorProps","RadioIndicator","Root","Item","Indicator","className","React","createElement","RadioGroupPrimitive","data-slot","cn","CircleIcon"],"mappings":"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","x_google_ignoreList":[0]}