@undp/design-system-react
Version:
React based design system for UNDP
1 lines • 28.5 kB
Source Map (JSON)
{"version":3,"file":"radio-group-BKFQ8hXE.cjs","names":["createLucideIcon","createContextScope","React","useComposedRefs","Primitive","composeEventHandlers","Presence","useSize","createContextScope2","createRovingFocusGroupScope","RadioGroup","useDirection","useControllableState","React2","useComposedRefs2","Primitive2","composeEventHandlers2","RadioGroupItem","Fragment2"],"sources":["../node_modules/lucide-react/dist/esm/icons/circle.js","../node_modules/@radix-ui/react-radio-group/dist/index.mjs","../src/components/ui/radio-group.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.542.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]];\nconst Circle = createLucideIcon(\"circle\", __iconNode);\n\nexport { __iconNode, Circle as default };\n//# sourceMappingURL=circle.js.map\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\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 { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar RADIO_NAME = \"Radio\";\nvar [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\nvar [RadioProviderImpl, useRadioContext] = createRadioContext(RADIO_NAME);\nfunction RadioProvider(props) {\n const {\n __scopeRadio,\n checked = false,\n children,\n disabled,\n form,\n name,\n onCheck,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const [userInteractionCount, onUserInteraction] = React.useReducer(\n (count) => count + 1,\n 0\n );\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n disabled,\n required,\n name,\n form,\n value,\n control,\n setControl,\n hasConsumerStoppedPropagationRef,\n userInteractionCount,\n onUserInteraction,\n isFormControl,\n bubbleInput,\n setBubbleInput,\n onCheck: /* @__PURE__ */ __name(() => onCheck?.(), \"onCheck\")\n };\n return /* @__PURE__ */ jsx(RadioProviderImpl, { scope: __scopeRadio, ...context, children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children });\n}\n__name(RadioProvider, \"RadioProvider\");\nvar TRIGGER_NAME = \"RadioTrigger\";\nvar RadioTrigger = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function RadioTrigger2({ __scopeRadio, onClick, ...radioProps }, forwardedRef) {\n const {\n checked,\n disabled,\n value,\n setControl,\n onCheck,\n hasConsumerStoppedPropagationRef,\n onUserInteraction,\n isFormControl,\n bubbleInput\n } = useRadioContext(TRIGGER_NAME, __scopeRadio);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n return /* @__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(onClick, (event) => {\n if (!checked) {\n onUserInteraction();\n onCheck();\n }\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }, \"RadioTrigger\")\n);\nvar INDICATOR_NAME = \"RadioIndicator\";\nvar RadioIndicator = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function RadioIndicator2(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 }, \"RadioIndicator\")\n);\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar RadioBubbleInput = /* @__PURE__ */ React.forwardRef(\n /* @__PURE__ */ __name(function RadioBubbleInput2({ __scopeRadio, onClick, ...props }, forwardedRef) {\n const {\n control,\n checked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput,\n hasConsumerStoppedPropagationRef,\n userInteractionCount\n } = useRadioContext(BUBBLE_INPUT_NAME, __scopeRadio);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const controlSize = useSize(control);\n const shouldStopClickPropagationRef = React.useRef(false);\n const prevCheckedRef = React.useRef(checked);\n const prevUserInteractionCountRef = React.useRef(userInteractionCount);\n React.useEffect(() => {\n const input = bubbleInput;\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 const isUserInteraction = userInteractionCount !== prevUserInteractionCountRef.current;\n prevUserInteractionCountRef.current = userInteractionCount;\n const checkedChanged = prevCheckedRef.current !== checked;\n prevCheckedRef.current = checked;\n const bubbles = !(isUserInteraction && hasConsumerStoppedPropagationRef.current);\n if (checkedChanged && setChecked) {\n shouldStopClickPropagationRef.current = !isUserInteraction;\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n shouldStopClickPropagationRef.current = false;\n }\n }, [bubbleInput, checked, hasConsumerStoppedPropagationRef, userInteractionCount]);\n const defaultCheckedRef = React.useRef(checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"radio\",\n \"aria-hidden\": true,\n defaultChecked: defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n onClick: composeEventHandlers(onClick, (event) => {\n if (shouldStopClickPropagationRef.current) {\n event.stopPropagation();\n }\n }),\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }, \"RadioBubbleInput\")\n);\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n__name(getState, \"getState\");\n\n// src/radio-group.tsx\nimport { Fragment as Fragment2, jsx as jsx2, jsxs as jsxs2 } 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 = /* @__PURE__ */ React2.forwardRef(\n /* @__PURE__ */ __name(function RadioGroup2(props, forwardedRef) {\n const {\n __scopeRadioGroup,\n name,\n form,\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 const [control, setControl] = React2.useState(null);\n const composedRefs = useComposedRefs2(forwardedRef, setControl);\n const initialValueRef = React2.useRef(value);\n React2.useEffect(() => {\n const associatedForm = form ? control?.ownerDocument.getElementById(form) : control?.closest(\"form\");\n if (associatedForm instanceof HTMLFormElement) {\n const reset = /* @__PURE__ */ __name(() => setValue(initialValueRef.current), \"reset\");\n associatedForm.addEventListener(\"reset\", reset);\n return () => associatedForm.removeEventListener(\"reset\", reset);\n }\n }, [control, form, setValue]);\n return /* @__PURE__ */ jsx2(\n RadioGroupProvider,\n {\n scope: __scopeRadioGroup,\n name,\n form,\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: composedRefs\n }\n )\n }\n )\n }\n );\n }, \"RadioGroup\")\n);\nvar ITEM_PROVIDER_NAME = \"RadioGroupItemProvider\";\nvar ITEM_TRIGGER_NAME = \"RadioGroupItemTrigger\";\nfunction RadioGroupItemProvider(props) {\n const {\n __scopeRadioGroup,\n value,\n disabled,\n children,\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const context = useRadioGroupContext(ITEM_PROVIDER_NAME, __scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n return /* @__PURE__ */ jsx2(\n RadioProvider,\n {\n ...radioScope,\n checked: context.value === value,\n disabled: isDisabled,\n required: context.required,\n name: context.name,\n form: context.form,\n value,\n onCheck: () => context.onValueChange(value),\n internal_do_not_use_render,\n children\n }\n );\n}\n__name(RadioGroupItemProvider, \"RadioGroupItemProvider\");\nvar RadioGroupItemTrigger = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function RadioGroupItemTrigger2(props, forwardedRef) {\n const { __scopeRadioGroup, ...triggerProps } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const { checked, disabled } = useRadioContext(ITEM_TRIGGER_NAME, radioScope.__scopeRadio);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref);\n const isArrowKeyPressedRef = React2.useRef(false);\n React2.useEffect(() => {\n const handleKeyDown = /* @__PURE__ */ __name((event) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n }, \"handleKeyDown\");\n const handleKeyUp = /* @__PURE__ */ __name(() => isArrowKeyPressedRef.current = false, \"handleKeyUp\");\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: !disabled,\n active: checked,\n children: /* @__PURE__ */ jsx2(\n RadioTrigger,\n {\n ...radioScope,\n ...triggerProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers2(triggerProps.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onFocus: composeEventHandlers2(triggerProps.onFocus, () => {\n if (isArrowKeyPressedRef.current) {\n ref.current?.click();\n }\n })\n }\n )\n }\n );\n}, \"RadioGroupItemTrigger\"));\nvar RadioGroupItem = /* @__PURE__ */ React2.forwardRef(\n /* @__PURE__ */ __name(function RadioGroupItem2(props, forwardedRef) {\n const { __scopeRadioGroup, value, disabled, ...itemProps } = props;\n return /* @__PURE__ */ jsx2(\n RadioGroupItemProvider,\n {\n __scopeRadioGroup,\n value,\n disabled,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs2(Fragment2, { children: [\n /* @__PURE__ */ jsx2(\n RadioGroupItemTrigger,\n {\n ...itemProps,\n ref: forwardedRef,\n __scopeRadioGroup\n }\n ),\n isFormControl && /* @__PURE__ */ jsx2(\n RadioGroupItemBubbleInput,\n {\n __scopeRadioGroup\n }\n )\n ] })\n }\n );\n }, \"RadioGroupItem\")\n);\nvar RadioGroupItemBubbleInput = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function RadioGroupItemBubbleInput2(props, forwardedRef) {\n const { __scopeRadioGroup, ...bubbleProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioBubbleInput, { ...radioScope, ...bubbleProps, ref: forwardedRef });\n}, \"RadioGroupItemBubbleInput\"));\nvar RadioGroupIndicator = /* @__PURE__ */ React2.forwardRef(\n // blank line to reduce diff noise\n /* @__PURE__ */ __name(function RadioGroupIndicator2(props, forwardedRef) {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioIndicator, { ...radioScope, ...indicatorProps, ref: forwardedRef });\n }, \"RadioGroupIndicator\")\n);\nexport {\n RadioGroupIndicator as Indicator,\n RadioGroupItem as Item,\n RadioGroup,\n RadioGroupIndicator,\n RadioGroupItem,\n RadioGroup as Root,\n createRadioGroupScope,\n RadioGroupItemBubbleInput as unstable_ItemBubbleInput,\n RadioGroupItemProvider as unstable_ItemProvider,\n RadioGroupItemTrigger as unstable_ItemTrigger,\n RadioGroupItemBubbleInput as unstable_RadioGroupItemBubbleInput,\n RadioGroupItemProvider as unstable_RadioGroupItemProvider,\n RadioGroupItemTrigger as unstable_RadioGroupItemTrigger\n};\n//# sourceMappingURL=index.mjs.map\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport { Circle } from 'lucide-react';\nimport { RadioGroup as RadioGroupPrimitive } from 'radix-ui';\nimport React, { useMemo } from 'react';\nimport { cn, generateRandomId } from '@/lib/utils';\nimport { Label } from './label';\n\nconst radioVariants = cva(\n 'peer aspect-square h-4 w-4 bg-background rounded-full text-content-primary focus:outline-hidden focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-disabled',\n {\n variants: {\n color: {\n primary: 'border-primary group-hover:border-primary-light',\n secondary: 'border-secondary group-hover:border-secondary-light',\n tertiary: 'border-tertiary group-hover:border-tertiary-light',\n quaternary: 'border-quaternary group-hover:border-quaternary-light',\n foreground: 'border-foreground group-hover:border-foreground-soft',\n surface: 'border-stroke group-hover:border-stroke-hover',\n },\n variant: {\n light: 'border',\n normal: 'border-2',\n },\n },\n defaultVariants: {\n color: 'primary',\n variant: 'normal',\n },\n },\n);\n\nconst radioCheckVariants = cva('stroke-0', {\n variants: {\n color: {\n primary: 'fill-primary',\n secondary: 'fill-secondary',\n tertiary: 'fill-tertiary',\n quaternary: 'fill-quaternary',\n foreground: 'fill-foreground',\n surface: 'fill-surface',\n },\n variant: {\n light: 'h-1.5 w-1.5',\n normal: 'h-2.5 w-2.5',\n },\n },\n defaultVariants: {\n color: 'primary',\n variant: 'normal',\n },\n});\n\nconst RadioGroupContext = React.createContext<VariantProps<typeof radioVariants>>({\n color: undefined,\n variant: undefined,\n});\n\nconst RadioGroup = React.forwardRef<\n React.ComponentRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root> &\n VariantProps<typeof radioVariants>\n>(({ className, color, variant, ...props }, ref) => {\n const contextValue = React.useMemo(\n () => ({\n color,\n variant,\n }),\n [color, variant],\n );\n return (\n <RadioGroupContext.Provider value={contextValue}>\n <RadioGroupPrimitive.Root\n {...props}\n className={cn('flex flex-row flex-wrap gap-x-4 gap-y-2 rtl:[direction:rtl]', className)}\n ref={ref}\n />\n </RadioGroupContext.Provider>\n );\n});\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\n\nconst RadioGroupItem = React.forwardRef<\n React.ComponentRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> & {\n label: string;\n radioClassName?: string;\n labelClassName?: string;\n }\n>(({ className, radioClassName, labelClassName, label, ...props }, ref) => {\n const id = useMemo(() => props.id || generateRandomId(), [props.id]);\n const { color, variant } = React.useContext(RadioGroupContext);\n return (\n <div className={cn('group flex flex-row items-center gap-2', className)}>\n <RadioGroupPrimitive.Item\n {...props}\n ref={ref}\n className={cn(radioVariants({ color, variant }), radioClassName)}\n id={id}\n >\n <RadioGroupPrimitive.Indicator className='flex items-center justify-center'>\n <Circle className={radioCheckVariants({ color, variant })} />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n <Label className={cn('mt-0.5 text-base!', labelClassName)} htmlFor={id}>\n {label}\n </Label>\n </div>\n );\n});\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\n\nexport { RadioGroup, RadioGroupItem };\n"],"x_google_ignoreList":[0,1],"mappings":"khBAUA,IAAM,EAASA,EAAAA,EAAiB,SAAU,CADtB,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,QAAS,CAAC,CACnC,CAAU,ECThD,EAAY,OAAO,eACnB,GAAU,EAAQ,IAAU,EAAU,EAAQ,OAAQ,CAAE,QAAO,aAAc,EAAK,CAAC,EAsBnF,EAAa,QACb,CAAC,EAAoB,GAAoBC,EAAAA,EAAmB,CAAU,EACtE,CAAC,EAAmB,GAAmB,EAAmB,CAAU,EACxE,SAAS,EAAc,EAAO,CAC5B,GAAM,CACJ,eACA,UAAU,GACV,WACA,WACA,OACA,OACA,UACA,WACA,QAAQ,KAER,8BACE,EACE,CAAC,EAAS,GAAcC,EAAM,SAAS,IAAI,EAC3C,CAAC,EAAa,GAAkBA,EAAM,SAAS,IAAI,EACnD,EAAmCA,EAAM,OAAO,EAAK,EACrD,CAAC,EAAsB,GAAqBA,EAAM,WACrD,GAAU,EAAQ,EACnB,CACF,EAKM,EAAU,CACd,UACA,WACA,WACA,OACA,OACA,QACA,UACA,aACA,mCACA,uBACA,oBACA,cAhBoB,IAAU,CAAC,CAAC,GAAQ,CAAC,CAAC,EAAQ,QAAQ,MAAM,EAiBhE,cACA,iBACA,QAAyB,MAAa,IAAU,EAAG,SAAS,CAC9D,EACA,OAAuB,EAAA,EAAA,IAAA,CAAI,EAAmB,CAAE,MAAO,EAAc,GAAG,EAAS,SAAU,EAAW,CAA0B,EAAI,EAA2B,CAAO,EAAI,CAAS,CAAC,CACtL,CACA,EAAO,EAAe,eAAe,EACrC,IAAI,EAAe,eACf,EAA+B,EAAM,WACvB,EAAO,SAAuB,CAAE,eAAc,UAAS,GAAG,GAAc,EAAc,CACpG,GAAM,CACJ,UACA,WACA,QACA,aACA,UACA,mCACA,oBACA,gBACA,eACE,EAAgB,EAAc,CAAY,EACxC,EAAeC,EAAAA,EAAgB,EAAc,CAAU,EAC7D,OAAuB,EAAA,EAAA,IAAA,CACrBC,EAAAA,EAAU,OACV,CACE,KAAM,SACN,KAAM,QACN,eAAgB,EAChB,aAAc,EAAS,CAAO,EAC9B,gBAAiB,EAAW,GAAK,IAAK,GACtC,WACA,QACA,GAAG,EACH,IAAK,EACL,QAASC,EAAAA,EAAqB,EAAU,GAAU,CAC3C,IACH,EAAkB,EAClB,EAAQ,GAEN,GAAe,IACjB,EAAiC,QAAU,EAAM,qBAAqB,EACjE,EAAiC,SAAS,EAAM,gBAAgB,EAEzE,CAAC,CACH,CACF,CACF,EAAG,cAAc,CACnB,EACI,EAAiB,iBACjB,EAAiC,EAAM,WACzB,EAAO,SAAyB,EAAO,EAAc,CACnE,GAAM,CAAE,eAAc,aAAY,GAAG,GAAmB,EAClD,EAAU,EAAgB,EAAgB,CAAY,EAC5D,OAAuB,EAAA,EAAA,IAAA,CAAIC,EAAAA,EAAU,CAAE,QAAS,GAAc,EAAQ,QAAS,UAA0B,EAAA,EAAA,IAAA,CACvGF,EAAAA,EAAU,KACV,CACE,aAAc,EAAS,EAAQ,OAAO,EACtC,gBAAiB,EAAQ,SAAW,GAAK,IAAK,GAC9C,GAAG,EACH,IAAK,CACP,CACF,CAAE,CAAC,CACL,EAAG,gBAAgB,CACrB,EACI,EAAoB,mBACpB,EAAmC,EAAM,WAC3B,EAAO,SAA2B,CAAE,eAAc,UAAS,GAAG,GAAS,EAAc,CACnG,GAAM,CACJ,UACA,UACA,WACA,WACA,OACA,QACA,OACA,cACA,iBACA,mCACA,wBACE,EAAgB,EAAmB,CAAY,EAC7C,EAAeD,EAAAA,EAAgB,EAAc,CAAc,EAC3D,EAAcI,EAAAA,EAAQ,CAAO,EAC7B,EAAgCL,EAAM,OAAO,EAAK,EAClD,EAAiBA,EAAM,OAAO,CAAO,EACrC,EAA8BA,EAAM,OAAO,CAAoB,EACrE,EAAM,cAAgB,CACpB,IAAM,EAAQ,EACd,GAAI,CAAC,EAAO,OACZ,IAAM,EAAa,OAAO,iBAAiB,UAKrC,EAJa,OAAO,yBACxB,EACA,SAE0B,CAAC,CAAC,IACxB,EAAoB,IAAyB,EAA4B,QAC/E,EAA4B,QAAU,EACtC,IAAM,EAAiB,EAAe,UAAY,EAClD,EAAe,QAAU,EACzB,IAAM,EAAU,EAAE,GAAqB,EAAiC,SACxE,GAAI,GAAkB,EAAY,CAChC,EAA8B,QAAU,CAAC,EACzC,IAAM,EAAQ,IAAI,MAAM,QAAS,CAAE,SAAQ,CAAC,EAC5C,EAAW,KAAK,EAAO,CAAO,EAC9B,EAAM,cAAc,CAAK,EACzB,EAA8B,QAAU,EAC1C,CACF,EAAG,CAAC,EAAa,EAAS,EAAkC,CAAoB,CAAC,EACjF,IAAM,EAAoBA,EAAM,OAAO,CAAO,EAC9C,OAAuB,EAAA,EAAA,IAAA,CACrBE,EAAAA,EAAU,MACV,CACE,KAAM,QACN,cAAe,GACf,eAAgB,EAAkB,QAClC,WACA,WACA,OACA,QACA,OACA,GAAG,EACH,SAAU,GACV,IAAK,EACL,QAASC,EAAAA,EAAqB,EAAU,GAAU,CAC5C,EAA8B,SAChC,EAAM,gBAAgB,CAE1B,CAAC,EACD,MAAO,CACL,GAAG,EAAM,MACT,GAAG,EACH,SAAU,WACV,cAAe,OACf,QAAS,EACT,OAAQ,EAIR,UAAW,mBACb,CACF,CACF,CACF,EAAG,kBAAkB,CACvB,EACA,SAAS,EAAW,EAAO,CACzB,OAAO,OAAO,GAAU,UAC1B,CACA,EAAO,EAAY,YAAY,EAC/B,SAAS,EAAS,EAAS,CACzB,OAAO,EAAU,UAAY,WAC/B,CACA,EAAO,EAAU,UAAU,EAI3B,IAAI,EAAa,CAAC,UAAW,YAAa,YAAa,YAAY,EAC/D,EAAmB,aACnB,CAAC,EAAyB,GAAyBG,EAAAA,EAAoB,EAAkB,CAC3FC,EAAAA,EACA,CACF,CAAC,EACG,EAA2BA,EAAAA,EAA4B,EACvD,EAAgB,EAAiB,EACjC,CAAC,EAAoB,GAAwB,EAAwB,CAAgB,EACrFC,EAA6B,EAAO,WACtB,EAAO,SAAqB,EAAO,EAAc,CAC/D,GAAM,CACJ,oBACA,OACA,OACA,eACA,MAAO,EACP,WAAW,GACX,WAAW,GACX,cACA,MACA,OAAO,GACP,gBACA,GAAG,GACD,EACE,EAAwB,EAAyB,CAAiB,EAClE,EAAYC,EAAAA,EAAa,CAAG,EAC5B,CAAC,EAAO,GAAYC,EAAAA,EAAqB,CAC7C,KAAM,EACN,YAAa,GAAgB,KAC7B,SAAU,EACV,OAAQ,CACV,CAAC,EACK,CAAC,EAAS,GAAcC,EAAO,SAAS,IAAI,EAC5C,EAAeC,EAAAA,EAAiB,EAAc,CAAU,EACxD,EAAkBD,EAAO,OAAO,CAAK,EAS3C,OARA,EAAO,cAAgB,CACrB,IAAM,EAAiB,EAAO,GAAS,cAAc,eAAe,CAAI,EAAI,GAAS,QAAQ,MAAM,EACnG,GAAI,aAA0B,gBAAiB,CAC7C,IAAM,EAAwB,MAAa,EAAS,EAAgB,OAAO,EAAG,OAAO,EAErF,OADA,EAAe,iBAAiB,QAAS,CAAK,MACjC,EAAe,oBAAoB,QAAS,CAAK,CAChE,CACF,EAAG,CAAC,EAAS,EAAM,CAAQ,CAAC,GACL,EAAA,EAAA,IAAA,CACrB,EACA,CACE,MAAO,EACP,OACA,OACA,WACA,WACA,QACA,cAAe,EACf,UAA0B,EAAA,EAAA,IAAA,CAAA,EAAA,EAExB,CACE,QAAS,GACT,GAAG,EACH,cACA,IAAK,EACL,OACA,UAA0B,EAAA,EAAA,IAAA,CACxBE,EAAAA,EAAW,IACX,CACE,KAAM,aACN,gBAAiB,EACjB,mBAAoB,EACpB,gBAAiB,EAAW,GAAK,IAAK,GACtC,IAAK,EACL,GAAG,EACH,IAAK,CACP,CACF,CACF,CACF,CACF,CACF,CACF,EAAG,YAAY,CACjB,EACI,EAAqB,yBACrB,EAAoB,wBACxB,SAAS,EAAuB,EAAO,CACrC,GAAM,CACJ,oBACA,QACA,WACA,WAEA,8BACE,EACE,EAAU,EAAqB,EAAoB,CAAiB,EACpE,EAAa,EAAc,CAAiB,EAC5C,EAAa,EAAQ,UAAY,EACvC,OAAuB,EAAA,EAAA,IAAA,CACrB,EACA,CACE,GAAG,EACH,QAAS,EAAQ,QAAU,EAC3B,SAAU,EACV,SAAU,EAAQ,SAClB,KAAM,EAAQ,KACd,KAAM,EAAQ,KACd,QACA,YAAe,EAAQ,cAAc,CAAK,EAC1C,6BACA,UACF,CACF,CACF,CACA,EAAO,EAAwB,wBAAwB,EACvD,IAAI,EAAwC,EAAO,WAA2B,EAAO,SAAgC,EAAO,EAAc,CACxI,GAAM,CAAE,oBAAmB,GAAG,GAAiB,EACzC,EAAwB,EAAyB,CAAiB,EAClE,EAAa,EAAc,CAAiB,EAC5C,CAAE,UAAS,YAAa,EAAgB,EAAmB,EAAW,YAAY,EAClF,EAAMF,EAAO,OAAO,IAAI,EACxB,EAAeC,EAAAA,EAAiB,EAAc,CAAG,EACjD,EAAuBD,EAAO,OAAO,EAAK,EAehD,OAdA,EAAO,cAAgB,CACrB,IAAM,EAAgC,EAAQ,GAAU,CAClD,EAAW,SAAS,EAAM,GAAG,IAC/B,EAAqB,QAAU,GAEnC,EAAG,eAAe,EACZ,EAA8B,MAAa,EAAqB,QAAU,GAAO,aAAa,EAGpG,OAFA,SAAS,iBAAiB,UAAW,CAAa,EAClD,SAAS,iBAAiB,QAAS,CAAW,MACjC,CACX,SAAS,oBAAoB,UAAW,CAAa,EACrD,SAAS,oBAAoB,QAAS,CAAW,CACnD,CACF,EAAG,CAAC,CAAC,GACkB,EAAA,EAAA,IAAA,CAAA,EAAA,EAErB,CACE,QAAS,GACT,GAAG,EACH,UAAW,CAAC,EACZ,OAAQ,EACR,UAA0B,EAAA,EAAA,IAAA,CACxB,EACA,CACE,GAAG,EACH,GAAG,EACH,IAAK,EACL,UAAWG,EAAAA,EAAsB,EAAa,UAAY,GAAU,CAC9D,EAAM,MAAQ,SAAS,EAAM,eAAe,CAClD,CAAC,EACD,QAASA,EAAAA,EAAsB,EAAa,YAAe,CACrD,EAAqB,SACvB,EAAI,SAAS,MAAM,CAEvB,CAAC,CACH,CACF,CACF,CACF,CACF,EAAG,uBAAuB,CAAC,EACvBC,EAAiC,EAAO,WAC1B,EAAO,SAAyB,EAAO,EAAc,CACnE,GAAM,CAAE,oBAAmB,QAAO,WAAU,GAAG,GAAc,EAC7D,OAAuB,EAAA,EAAA,IAAA,CACrB,EACA,CACE,oBACA,QACA,WACA,4BAA6B,CAAE,oBAAoC,EAAA,EAAA,KAAA,CAAMC,EAAAA,SAAW,CAAE,SAAU,EAC9E,EAAA,EAAA,IAAA,CACd,EACA,CACE,GAAG,EACH,IAAK,EACL,mBACF,CACF,EACA,IAAiC,EAAA,EAAA,IAAA,CAC/B,EACA,CACE,mBACF,CACF,CACF,CAAE,CAAC,CACL,CACF,CACF,EAAG,gBAAgB,CACrB,EACI,EAA4C,EAAO,WAA2B,EAAO,SAAoC,EAAO,EAAc,CAChJ,GAAM,CAAE,oBAAmB,GAAG,GAAgB,EAE9C,OAAuB,EAAA,EAAA,IAAA,CAAK,EAAkB,CAAE,GAD7B,EAAc,CAC2B,EAAG,GAAG,EAAa,IAAK,CAAa,CAAC,CACpG,EAAG,2BAA2B,CAAC,EAC3B,EAAsC,EAAO,WAE/B,EAAO,SAA8B,EAAO,EAAc,CACxE,GAAM,CAAE,oBAAmB,GAAG,GAAmB,EAEjD,OAAuB,EAAA,EAAA,IAAA,CAAK,EAAgB,CAAE,GAD3B,EAAc,CACyB,EAAG,GAAG,EAAgB,IAAK,CAAa,CAAC,CACrG,EAAG,qBAAqB,CAC1B,EC5ZM,EAAgB,EAAA,EACpB,6KACA,CACE,SAAU,CACR,MAAO,CACL,QAAS,kDACT,UAAW,sDACX,SAAU,oDACV,WAAY,wDACZ,WAAY,uDACZ,QAAS,+CACX,EACA,QAAS,CACP,MAAO,SACP,OAAQ,UACV,CACF,EACA,gBAAiB,CACf,MAAO,UACP,QAAS,QACX,CACF,CACF,EAEM,EAAqB,EAAA,EAAI,WAAY,CACzC,SAAU,CACR,MAAO,CACL,QAAS,eACT,UAAW,iBACX,SAAU,gBACV,WAAY,kBACZ,WAAY,kBACZ,QAAS,cACX,EACA,QAAS,CACP,MAAO,cACP,OAAQ,aACV,CACF,EACA,gBAAiB,CACf,MAAO,UACP,QAAS,QACX,CACF,CAAC,EAEK,EAAoB,EAAA,QAAM,cAAkD,CAChF,MAAO,IAAA,GACP,QAAS,IAAA,EACX,CAAC,EAEK,EAAa,EAAA,QAAM,YAItB,CAAE,YAAW,QAAO,UAAS,GAAG,GAAS,IAAQ,CAClD,IAAM,EAAe,EAAA,QAAM,aAClB,CACL,QACA,SACF,GACA,CAAC,EAAO,CAAO,CACjB,EACA,OACE,EAAA,EAAA,IAAA,CAAC,EAAkB,SAAnB,CAA4B,MAAO,YACjC,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,GAAI,EACJ,UAAW,EAAA,EAAG,8DAA+D,CAAS,EACjF,KACN,CAAA,CACyB,CAAA,CAEhC,CAAC,EACD,EAAW,YAAA,EAAuC,YAElD,IAAM,EAAiB,EAAA,QAAM,YAO1B,CAAE,YAAW,iBAAgB,iBAAgB,QAAO,GAAG,GAAS,IAAQ,CACzE,IAAM,GAAA,EAAA,EAAA,QAAA,KAAmB,EAAM,IAAM,EAAA,EAAiB,EAAG,CAAC,EAAM,EAAE,CAAC,EAC7D,CAAE,QAAO,WAAY,EAAA,QAAM,WAAW,CAAiB,EAC7D,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAA,EAAG,yCAA0C,CAAS,WAAtE,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,GAAI,EACC,MACL,UAAW,EAAA,EAAG,EAAc,CAAE,QAAO,SAAQ,CAAC,EAAG,CAAc,EAC3D,eAEJ,EAAA,EAAA,IAAA,CAAC,EAAD,CAA+B,UAAU,6CACvC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,UAAW,EAAmB,CAAE,QAAO,SAAQ,CAAC,CAAI,CAAA,CAC/B,CAAA,CACP,CAAA,GAC1B,EAAA,EAAA,IAAA,CAAC,EAAA,EAAD,CAAO,UAAW,EAAA,EAAG,oBAAqB,CAAc,EAAG,QAAS,WACjE,CACI,CAAA,CACJ,GAET,CAAC,EACD,EAAe,YAAA,EAAuC"}