{"version":3,"file":"PickerShell.mjs","names":[],"sources":["../../../src/base-ui/DatePicker/PickerShell.tsx"],"sourcesContent":["'use client';\n\nimport { cx, useThemeMode } from 'antd-style';\nimport { type CSSProperties, memo, type ReactElement, type ReactNode, useRef } from 'react';\n\nimport ClearButton from '@/base-ui/Input/ClearButton';\nimport { rootVariants } from '@/base-ui/Input/style';\nimport type { InputSize, InputVariant } from '@/base-ui/Input/type';\nimport { panelStyles } from '@/base-ui/panelStyles';\nimport {\n  PopoverPopup,\n  PopoverPortal,\n  PopoverPositioner,\n  PopoverRoot,\n  PopoverTriggerElement,\n} from '@/base-ui/Popover';\n\nexport interface PickerShellProps {\n  children: ReactNode;\n  className?: string;\n  disabled?: boolean;\n  icon: ReactNode;\n  onClear: () => void;\n  onOpenChange: (open: boolean) => void;\n  open: boolean;\n  shadow?: boolean;\n  showClear: boolean;\n  size?: InputSize;\n  style?: CSSProperties;\n  trigger: ReactElement;\n  variant?: InputVariant;\n}\n\nconst PickerShell = memo<PickerShellProps>(\n  ({\n    children,\n    className,\n    disabled,\n    icon,\n    onClear,\n    onOpenChange,\n    open,\n    shadow,\n    showClear,\n    size = 'middle',\n    style,\n    trigger,\n    variant,\n  }) => {\n    const { isDarkMode } = useThemeMode();\n    const anchorRef = useRef<HTMLDivElement>(null);\n    const popupRef = useRef<HTMLDivElement>(null);\n\n    return (\n      <div\n        data-disabled={disabled ? '' : undefined}\n        ref={anchorRef}\n        style={style}\n        className={cx(\n          rootVariants({ shadow, size, variant: variant || (isDarkMode ? 'filled' : 'outlined') }),\n          className,\n        )}\n      >\n        <PopoverRoot open={open} onOpenChange={(next) => !disabled && onOpenChange(next)}>\n          <PopoverTriggerElement>{trigger}</PopoverTriggerElement>\n          <PopoverPortal>\n            <PopoverPositioner anchor={anchorRef} placement=\"bottomLeft\">\n              <PopoverPopup\n                className={panelStyles.popup}\n                ref={popupRef}\n                initialFocus={() =>\n                  popupRef.current?.querySelector<HTMLElement>('[data-focus-target]') ?? true\n                }\n              >\n                {children}\n              </PopoverPopup>\n            </PopoverPositioner>\n          </PopoverPortal>\n        </PopoverRoot>\n        {showClear && !disabled ? <ClearButton onClear={onClear} /> : icon}\n      </div>\n    );\n  },\n);\n\nPickerShell.displayName = 'PickerShell';\n\nexport default PickerShell;\n"],"mappings":";;;;;;;;;AAiCA,MAAM,cAAc,MACjB,EACC,UACA,WACA,UACA,MACA,SACA,cACA,MACA,QACA,WACA,OAAO,UACP,OACA,SACA,cACI;CACJ,MAAM,EAAE,eAAe,aAAa;CACpC,MAAM,YAAY,OAAuB,IAAI;CAC7C,MAAM,WAAW,OAAuB,IAAI;CAE5C,OACE,qBAAC,OAAD;EACE,iBAAe,WAAW,KAAK,KAAA;EAC/B,KAAK;EACE;EACP,WAAW,GACT,aAAa;GAAE;GAAQ;GAAM,SAAS,YAAY,aAAa,WAAW;EAAY,CAAC,GACvF,SACF;EAPF,UAAA,CASE,qBAAC,aAAD;GAAmB;GAAM,eAAe,SAAS,CAAC,YAAY,aAAa,IAAI;GAA/E,UAAA,CACE,oBAAC,uBAAD,EAAA,UAAwB,QAA+B,CAAA,GACvD,oBAAC,eAAD,EAAA,UACE,oBAAC,mBAAD;IAAmB,QAAQ;IAAW,WAAU;IAC9C,UAAA,oBAAC,cAAD;KACE,WAAW,YAAY;KACvB,KAAK;KACL,oBACE,SAAS,SAAS,cAA2B,qBAAqB,KAAK;KAGxE;IACW,CAAA;GACG,CAAA,EACN,CAAA,CACJ;EACZ,CAAA,GAAA,aAAa,CAAC,WAAW,oBAAC,aAAD,EAAsB,QAAU,CAAA,IAAI,IAC3D;;AAET,CACF;AAEA,YAAY,cAAc"}