{"version":3,"file":"index-1toTCGyr.mjs","sources":["../../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs"],"sourcesContent":["// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n  prop,\n  defaultProp,\n  onChange = () => {\n  },\n  caller\n}) {\n  const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n    defaultProp,\n    onChange\n  });\n  const isControlled = prop !== void 0;\n  const value = isControlled ? prop : uncontrolledProp;\n  if (true) {\n    const isControlledRef = React.useRef(prop !== void 0);\n    React.useEffect(() => {\n      const wasControlled = isControlledRef.current;\n      if (wasControlled !== isControlled) {\n        const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n        const to = isControlled ? \"controlled\" : \"uncontrolled\";\n        console.warn(\n          `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n        );\n      }\n      isControlledRef.current = isControlled;\n    }, [isControlled, caller]);\n  }\n  const setValue = React.useCallback(\n    (nextValue) => {\n      if (isControlled) {\n        const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n        if (value2 !== prop) {\n          onChangeRef.current?.(value2);\n        }\n      } else {\n        setUncontrolledProp(nextValue);\n      }\n    },\n    [isControlled, prop, setUncontrolledProp, onChangeRef]\n  );\n  return [value, setValue];\n}\nfunction useUncontrolledState({\n  defaultProp,\n  onChange\n}) {\n  const [value, setValue] = React.useState(defaultProp);\n  const prevValueRef = React.useRef(value);\n  const onChangeRef = React.useRef(onChange);\n  useInsertionEffect(() => {\n    onChangeRef.current = onChange;\n  }, [onChange]);\n  React.useEffect(() => {\n    if (prevValueRef.current !== value) {\n      onChangeRef.current?.(value);\n      prevValueRef.current = value;\n    }\n  }, [value, prevValueRef]);\n  return [value, setValue, onChangeRef];\n}\nfunction isFunction(value) {\n  return typeof value === \"function\";\n}\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n  const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n  const isControlled = controlledState !== void 0;\n  const onChange = useEffectEvent(onChangeProp);\n  if (true) {\n    const isControlledRef = React2.useRef(controlledState !== void 0);\n    React2.useEffect(() => {\n      const wasControlled = isControlledRef.current;\n      if (wasControlled !== isControlled) {\n        const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n        const to = isControlled ? \"controlled\" : \"uncontrolled\";\n        console.warn(\n          `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n        );\n      }\n      isControlledRef.current = isControlled;\n    }, [isControlled, caller]);\n  }\n  const args = [{ ...initialArg, state: defaultProp }];\n  if (init) {\n    args.push(init);\n  }\n  const [internalState, dispatch] = React2.useReducer(\n    (state2, action) => {\n      if (action.type === SYNC_STATE) {\n        return { ...state2, state: action.state };\n      }\n      const next = reducer(state2, action);\n      if (isControlled && !Object.is(next.state, state2.state)) {\n        onChange(next.state);\n      }\n      return next;\n    },\n    ...args\n  );\n  const uncontrolledState = internalState.state;\n  const prevValueRef = React2.useRef(uncontrolledState);\n  React2.useEffect(() => {\n    if (prevValueRef.current !== uncontrolledState) {\n      prevValueRef.current = uncontrolledState;\n      if (!isControlled) {\n        onChange(uncontrolledState);\n      }\n    }\n  }, [onChange, uncontrolledState, prevValueRef, isControlled]);\n  const state = React2.useMemo(() => {\n    const isControlled2 = controlledState !== void 0;\n    if (isControlled2) {\n      return { ...internalState, state: controlledState };\n    }\n    return internalState;\n  }, [internalState, controlledState]);\n  React2.useEffect(() => {\n    if (isControlled && !Object.is(controlledState, internalState.state)) {\n      dispatch({ type: SYNC_STATE, state: controlledState });\n    }\n  }, [controlledState, internalState.state, isControlled]);\n  return [state, dispatch];\n}\nexport {\n  useControllableState,\n  useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["useLayoutEffect","value"],"mappings":";;;;AAIA,IAAM,kBAAA,GACH,KAAA,CAAc,sBAAA,CAAuB,IAAA,EAAK,CAAE,QAAA,EAAU,CAAA,IAAKA,gBAAA;AAYvD,SAAS,oBAAA,CAAwB,EACtC,IAAA,EACA,WAAA,EACA,QAAA,GAAW,IAAA,CAAO,CAAD,EACjB,MAAA,EACF,EAAsD;AACpD,IAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAA,EAAqB,WAAW,CAAA,GAAI,oBAAA,CAAqB;AAChF,QAAA,WAAA;AACA,QAAA;KACD,CAAA;IACD,MAAM,YAAA,GAAe,SAAS,MAAA;IAC9B,MAAM,KAAA,GAAQ,eAAe,IAAA,GAAO,gBAAA;AAMpC,IAA2C;AACzC,QAAA,MAAM,kBAAwB,KAAA,CAAA,MAAA,CAAO,IAAA,KAAS,MAAS,CAAA;QACjD,KAAA,CAAA,SAAA,CAAU,IAAA;YACd,MAAM,aAAA,GAAgB,gBAAgB,OAAA;AACtC,YAAA,IAAI,kBAAkB,YAAA,EAAc;gBAClC,MAAM,IAAA,GAAO,gBAAgB,YAAA,GAAe,cAAA;gBAC5C,MAAM,EAAA,GAAK,eAAe,YAAA,GAAe,cAAA;AACzC,gBAAA,OAAA,CAAQ,IAAA,CACN,CAAA,EAAG,MAAM,CAAA,kBAAA,EAAqB,IAAI,CAAA,IAAA,EAAO,EAAE,CAAA,0KAAA,CAAA,CAAA;AAE/C,YAAA;AACA,YAAA,eAAA,CAAgB,OAAA,GAAU,YAAA;QAC5B,CAAA,EAAG;AAAC,YAAA,YAAA;YAAc;AAAO,SAAA,CAAA;AAC3B,IAAA;AAGA,IAAA,MAAM,QAAA,GAAiB,KAAA,CAAA,WAAA,CACrB,CAAC,SAAA,GAAA;AACC,QAAA,IAAI,YAAA,EAAc;AAChB,YAAA,MAAMC,SAAQ,UAAA,CAAW,SAAS,CAAA,GAAI,SAAA,CAAU,IAAI,CAAA,GAAI,SAAA;AACxD,YAAA,IAAIA,WAAU,IAAA,EAAM;gBAClB,WAAA,CAAY,OAAA,GAAUA,MAAK,CAAA;AAC7B,YAAA;QACF,CAAA,MAAO;AACL,YAAA,mBAAA,CAAoB,SAAS,CAAA;AAC/B,QAAA;IACF,CAAA,EACA;AAAC,QAAA,YAAA;AAAc,QAAA,IAAA;AAAM,QAAA,mBAAA;QAAqB;AAAW,KAAA,CAAA;IAGvD,OAAO;AAAC,QAAA,KAAA;QAAO;AAAQ,KAAA;AACzB;AAEA,SAAS,qBAAwB,EAC/B,WAAA,EACA,QAAA,EACF,EAIE;IACA,MAAM,CAAC,OAAO,QAAQ,CAAA,GAAU,KAAA,CAAA,QAAA,CAAS,WAAW,CAAA;AACpD,IAAA,MAAM,YAAA,GAAqB,KAAA,CAAA,MAAA,CAAO,KAAK,CAAA;AAEvC,IAAA,MAAM,WAAA,GAAoB,KAAA,CAAA,MAAA,CAAO,QAAQ,CAAA;AACzC,IAAA,kBAAA,CAAmB,IAAA;AACjB,QAAA,WAAA,CAAY,OAAA,GAAU,QAAA;IACxB,CAAA,EAAG;QAAC;AAAS,KAAA,CAAA;IAEP,KAAA,CAAA,SAAA,CAAU,IAAA;QACd,IAAI,YAAA,CAAa,OAAA,KAAY,KAAA,EAAO;YAClC,WAAA,CAAY,OAAA,GAAU,KAAK,CAAA;AAC3B,YAAA,YAAA,CAAa,OAAA,GAAU,KAAA;AACzB,QAAA;IACF,CAAA,EAAG;AAAC,QAAA,KAAA;QAAO;AAAa,KAAA,CAAA;IAExB,OAAO;AAAC,QAAA,KAAA;AAAO,QAAA,QAAA;QAAU;AAAW,KAAA;AACtC;AAEA,SAAS,UAAA,CAAW,KAAA,EAAkD;AACpE,IAAA,OAAO,OAAO,KAAA,KAAU,UAAA;AAC1B;;;;","x_google_ignoreList":[0]}