{"version":3,"file":"InlineRadioButton.jsx","names":["stylex","createContext","memo","use","controlColor","color","fontSize","size","transition","a11y","interaction","useRippleEffect","styles","create","fieldset","display","gap","px0_5","borderStyle","margin","padding","legend","body","marginBottom","option","flex","userSelect","cursor","px2","px3","a11yOutline","themeBackground","themeColor","backgroundColor","default","gray500","checkboxCheckedBackground","sub","textAlign","textTransform","InlineRadioButtonGroupContext","undefined","displayName","InlineRadioButtonGroup","props","$","_c","t0","required","t1","disabled","t2","name","onChange","value","ctx","t3","Symbol","for","t4","label","t5","children","t6","InlineRadioButton","ref","checked","e","currentTarget","disableTapHighlight","defaultOutline","hideInput","defaultChecked"],"sources":["../src/InlineRadioButton.tsx"],"sourcesContent":["import * as stylex from \"@stylexjs/stylex\";\nimport {\n\ttype FormEvent,\n\ttype ReactElement,\n\tcreateContext,\n\tmemo,\n\tuse,\n} from \"react\";\n\nimport { controlColor } from \"./theme.stylex\";\nimport { color, fontSize, size, transition } from \"./tokens.stylex\";\n\nimport { a11y, interaction } from \"./mixins\";\nimport useRippleEffect from \"./useRippleEffect\";\n\nconst styles = stylex.create({\n\tfieldset: {\n\t\tdisplay: \"flex\",\n\t\tgap: size.px0_5,\n\n\t\tborderStyle: \"none\",\n\t\tmargin: 0,\n\t\tpadding: 0,\n\t},\n\n\tlegend: {\n\t\tfontSize: fontSize.body,\n\t\tmarginBottom: size.px0_5,\n\t},\n\n\toption: {\n\t\tflex: \"1\",\n\t\tuserSelect: \"none\",\n\n\t\tcursor: \"pointer\",\n\t\tpadding: `${size.px2} ${size.px3}`,\n\n\t\ttransition: `${transition.a11yOutline}, ${transition.themeBackground}, ${transition.themeColor}`,\n\n\t\tbackgroundColor: {\n\t\t\tdefault: color.gray500,\n\t\t\t\":has(input:checked)\": controlColor.checkboxCheckedBackground,\n\t\t},\n\n\t\tfontSize: fontSize.sub,\n\t\ttextAlign: \"center\",\n\t\ttextTransform: \"lowercase\",\n\t},\n});\n\ntype InlineRadioButtonGroupContextType = {\n\t/** Name for the HTML data value in forms */\n\tname: string;\n\t/** A selection is required */\n\trequired: boolean;\n\t/** Disable entire group of radio buttons. */\n\tdisabled: boolean;\n\t/** `value` and `onChange` are optional because we want to be able to use the control in an uncontrolled manner as well (for example, in forms) */\n\tvalue: string | undefined;\n\t/** `value` and `onChange` are optional because we want to be able to use the control in an uncontrolled manner as well (for example, in forms) */\n\tonChange: ((value: string) => void) | undefined;\n};\n\nconst InlineRadioButtonGroupContext =\n\tcreateContext<InlineRadioButtonGroupContextType>(\n\t\t// biome-ignore lint/style/noNonNullAssertion: Context always set in group component\n\t\tundefined!,\n\t);\nInlineRadioButtonGroupContext.displayName = \"InlineRadioButtonGroupContext\";\n\nexport type InlineRadioButtonGroupProps = {\n\tlabel?: string;\n\t/** Name for the HTML data value in forms */\n\tname: string;\n\t/** A selection is required */\n\trequired?: boolean;\n\t/** Disable entire group of radio buttons. */\n\tdisabled?: boolean;\n\t/** `value` and `onChange` are optional because we want to be able to use the control in an uncontrolled manner as well (for example, in forms) */\n\tvalue?: string | undefined;\n\t/** `value` and `onChange` are optional because we want to be able to use the control in an uncontrolled manner as well (for example, in forms) */\n\tonChange?: (value: string) => void;\n\tchildren:\n\t\t| ReactElement<InlineRadioButtonProps>\n\t\t| ReactElement<InlineRadioButtonProps>[];\n};\n\nexport const InlineRadioButtonGroup = memo(function InlineRadioButtonGroup(\n\tprops: InlineRadioButtonGroupProps,\n) {\n\tconst ctx = {\n\t\tvalue: props.value,\n\t\tonChange: props.onChange,\n\t\tname: props.name,\n\t\trequired: !!props.required,\n\t\tdisabled: !!props.disabled,\n\t};\n\n\treturn (\n\t\t<fieldset {...stylex.props(styles.fieldset)}>\n\t\t\t{props.label && (\n\t\t\t\t<legend {...stylex.props(styles.legend)}>{props.label}</legend>\n\t\t\t)}\n\t\t\t<InlineRadioButtonGroupContext.Provider value={ctx}>\n\t\t\t\t{props.children}\n\t\t\t</InlineRadioButtonGroupContext.Provider>\n\t\t</fieldset>\n\t);\n});\n\nexport type InlineRadioButtonProps = {\n\tlabel: string;\n\tvalue: string;\n\n\t/** Disabled this specific radio button in the group. */\n\tdisabled?: boolean;\n\tdefaultChecked?: boolean;\n};\n\nexport const InlineRadioButton = memo(function InlineRadioButton(\n\tprops: InlineRadioButtonProps,\n) {\n\tconst ctx = use(InlineRadioButtonGroupContext);\n\n\tconst disabled = props.disabled || ctx.disabled;\n\tconst ref = useRippleEffect(disabled);\n\n\tconst checked =\n\t\tctx.value !== undefined ? ctx.value === props.value : undefined;\n\tconst onChange = ctx.onChange\n\t\t? (e: FormEvent<HTMLInputElement>) =>\n\t\t\t\tctx.onChange?.(e.currentTarget.value)\n\t\t: undefined;\n\n\treturn (\n\t\t<label\n\t\t\t{...stylex.props(\n\t\t\t\tinteraction.disableTapHighlight,\n\t\t\t\ta11y.defaultOutline,\n\t\t\t\tstyles.option,\n\t\t\t)}\n\t\t\tref={ref}\n\t\t>\n\t\t\t<input\n\t\t\t\ttype=\"radio\"\n\t\t\t\t{...stylex.props(interaction.hideInput)}\n\t\t\t\tdisabled={disabled}\n\t\t\t\trequired={ctx.required}\n\t\t\t\ttitle={props.label}\n\t\t\t\tname={ctx.name}\n\t\t\t\tvalue={props.value}\n\t\t\t\tonChange={onChange}\n\t\t\t\tchecked={checked}\n\t\t\t\tdefaultChecked={props.defaultChecked}\n\t\t\t/>\n\t\t\t<span>{props.label}</span>\n\t\t</label>\n\t);\n});\n"],"mappings":"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","ignoreList":[]}