{"version":3,"file":"HeaderControl.mjs","names":["classes"],"sources":["../../../../src/components/ScheduleHeader/HeaderControl/HeaderControl.tsx"],"sourcesContent":["import {\n  AccordionChevron,\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  getRadius,\n  MantineRadius,\n  StylesApiProps,\n  UnstyledButton,\n  useDirection,\n  useProps,\n  useStyles,\n} from '@mantine/core';\nimport { getLabel, ScheduleLabelsOverride } from '../../../labels';\nimport { useScheduleHeaderLabels } from '../ScheduleHeaderContext';\nimport classes from './HeaderControl.module.css';\n\nexport type HeaderControlStylesNames = 'headerControl';\nexport type HeaderControlCssVariables = {\n  headerControl: '--control-radius';\n};\n\nexport interface HeaderControlProps\n  extends BoxProps, StylesApiProps<HeaderControlFactory>, ElementProps<'button'> {\n  __staticSelector?: string;\n\n  /** Applies active styles */\n  active?: boolean;\n\n  /** Removes inline padding */\n  square?: boolean;\n\n  /** Key of `theme.radius` or any valid CSS value to set `border-radius` @default theme.defaultRadius */\n  radius?: MantineRadius;\n\n  /** If set to `false`, the control will not be clickable  */\n  interactive?: boolean;\n\n  /** Labels override */\n  labels?: ScheduleLabelsOverride;\n}\n\nexport type HeaderControlFactory = Factory<{\n  props: HeaderControlProps;\n  ref: HTMLButtonElement;\n  stylesNames: HeaderControlStylesNames;\n  vars: HeaderControlCssVariables;\n}>;\n\nconst defaultProps = {\n  __staticSelector: 'HeaderControl',\n  interactive: true,\n} satisfies Partial<HeaderControlProps>;\n\nconst varsResolver = createVarsResolver<HeaderControlFactory>((_theme, { radius }) => ({\n  headerControl: {\n    '--control-radius': radius === undefined ? undefined : getRadius(radius),\n  },\n}));\n\nexport const HeaderControl = factory<HeaderControlFactory>((_props) => {\n  const props = useProps('HeaderControl', defaultProps, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    __staticSelector,\n    mod,\n    attributes,\n    active,\n    square,\n    radius,\n    interactive,\n    labels,\n    ...others\n  } = props;\n\n  const getStyles = useStyles<HeaderControlFactory>({\n    name: __staticSelector,\n    classes,\n    props,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    attributes,\n    vars,\n    varsResolver,\n    rootSelector: 'headerControl',\n  });\n\n  return (\n    <UnstyledButton\n      {...getStyles('headerControl', { active: interactive })}\n      mod={[{ active, square, interactive }, mod]}\n      tabIndex={interactive ? undefined : -1}\n      {...others}\n    />\n  );\n});\n\nHeaderControl.displayName = '@mantine/schedule/HeaderControl';\nHeaderControl.classes = classes;\nHeaderControl.varsResolver = varsResolver;\n\nexport function ScheduleHeaderNext(props: HeaderControlProps) {\n  const { dir } = useDirection();\n  const resolvedLabels = useScheduleHeaderLabels(props.labels);\n\n  return (\n    <HeaderControl data-type=\"next\" aria-label={getLabel('next', resolvedLabels)} square {...props}>\n      <AccordionChevron style={{ transform: `rotate(${dir === 'rtl' ? 90 : -90}deg)` }} />\n    </HeaderControl>\n  );\n}\n\nexport function ScheduleHeaderPrevious(props: HeaderControlProps) {\n  const { dir } = useDirection();\n  const resolvedLabels = useScheduleHeaderLabels(props.labels);\n\n  return (\n    <HeaderControl\n      data-type=\"previous\"\n      aria-label={getLabel('previous', resolvedLabels)}\n      square\n      {...props}\n    >\n      <AccordionChevron style={{ transform: `rotate(${dir === 'rtl' ? -90 : 90}deg)` }} />\n    </HeaderControl>\n  );\n}\n\nexport function ScheduleHeaderToday(props: HeaderControlProps) {\n  const resolvedLabels = useScheduleHeaderLabels(props.labels);\n\n  return (\n    <HeaderControl data-type=\"today\" aria-label={getLabel('today', resolvedLabels)} {...props}>\n      {getLabel('today', resolvedLabels)}\n    </HeaderControl>\n  );\n}\n\nScheduleHeaderNext.displayName = '@mantine/schedule/ScheduleHeaderNext';\nScheduleHeaderPrevious.displayName = '@mantine/schedule/ScheduleHeaderPrevious';\nScheduleHeaderToday.displayName = '@mantine/schedule/ScheduleHeaderToday';\n"],"mappings":";;;;;;;AAmDA,MAAM,eAAe;CACnB,kBAAkB;CAClB,aAAa;AACf;AAEA,MAAM,eAAe,oBAA0C,QAAQ,EAAE,cAAc,EACrF,eAAe,EACb,oBAAoB,WAAW,KAAA,IAAY,KAAA,IAAY,UAAU,MAAM,EACzE,EACF,EAAE;AAEF,MAAa,gBAAgB,SAA+B,WAAW;CACrE,MAAM,QAAQ,SAAS,iBAAiB,cAAc,MAAM;CAC5D,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,kBACA,KACA,YACA,QACA,QACA,QACA,aACA,QACA,GAAG,WACD;CAiBJ,OACE,oBAAC,gBAAD;EACE,GAjBc,UAAgC;GAChD,MAAM;GACN,SAAA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,cAAc;EAChB,CAIgB,CAAC,CAAC,iBAAiB,EAAE,QAAQ,YAAY,CAAC;EACtD,KAAK,CAAC;GAAE;GAAQ;GAAQ;EAAY,GAAG,GAAG;EAC1C,UAAU,cAAc,KAAA,IAAY;EACpC,GAAI;CACL,CAAA;AAEL,CAAC;AAED,cAAc,cAAc;AAC5B,cAAc,UAAUA;AACxB,cAAc,eAAe;AAE7B,SAAgB,mBAAmB,OAA2B;CAC5D,MAAM,EAAE,QAAQ,aAAa;CAG7B,OACE,oBAAC,eAAD;EAAe,aAAU;EAAO,cAAY,SAAS,QAHhC,wBAAwB,MAAM,MAGuB,CAAC;EAAG,QAAA;EAAO,GAAI;YACvF,oBAAC,kBAAD,EAAkB,OAAO,EAAE,WAAW,UAAU,QAAQ,QAAQ,KAAK,IAAI,MAAM,EAAI,CAAA;CACtE,CAAA;AAEnB;AAEA,SAAgB,uBAAuB,OAA2B;CAChE,MAAM,EAAE,QAAQ,aAAa;CAG7B,OACE,oBAAC,eAAD;EACE,aAAU;EACV,cAAY,SAAS,YALF,wBAAwB,MAAM,MAKH,CAAC;EAC/C,QAAA;EACA,GAAI;YAEJ,oBAAC,kBAAD,EAAkB,OAAO,EAAE,WAAW,UAAU,QAAQ,QAAQ,MAAM,GAAG,MAAM,EAAI,CAAA;CACtE,CAAA;AAEnB;AAEA,SAAgB,oBAAoB,OAA2B;CAC7D,MAAM,iBAAiB,wBAAwB,MAAM,MAAM;CAE3D,OACE,oBAAC,eAAD;EAAe,aAAU;EAAQ,cAAY,SAAS,SAAS,cAAc;EAAG,GAAI;YACjF,SAAS,SAAS,cAAc;CACpB,CAAA;AAEnB;AAEA,mBAAmB,cAAc;AACjC,uBAAuB,cAAc;AACrC,oBAAoB,cAAc"}