'use client';
import { jsx, jsxs } from 'react/jsx-runtime';
import { omitThemingProps } from '@chakra-ui/styled-system';
import { createContext, cx } from '@chakra-ui/utils';
import { useMemo } from 'react';
import { useRangeSlider } from './use-range-slider.mjs';
import { useTheme } from '../system/use-theme.mjs';
import { forwardRef } from '../system/forward-ref.mjs';
import { useMultiStyleConfig } from '../system/use-style-config.mjs';
import { chakra } from '../system/factory.mjs';
const [RangeSliderProvider, useRangeSliderContext] = createContext({
name: "SliderContext",
errorMessage: "useSliderContext: `context` is undefined. Seems you forgot to wrap all slider components within "
});
const [RangeSliderStylesProvider, useRangeSliderStyles] = createContext({
name: `RangeSliderStylesContext`,
errorMessage: `useRangeSliderStyles returned is 'undefined'. Seems you forgot to wrap the components in "" `
});
const RangeSlider = forwardRef(
function RangeSlider2(props, ref) {
const sliderProps = {
orientation: "horizontal",
...props
};
const styles = useMultiStyleConfig("Slider", sliderProps);
const ownProps = omitThemingProps(sliderProps);
const { direction } = useTheme();
ownProps.direction = direction;
const { getRootProps, ...context } = useRangeSlider(ownProps);
const ctx = useMemo(
() => ({ ...context, name: sliderProps.name }),
[context, sliderProps.name]
);
return /* @__PURE__ */ jsx(RangeSliderProvider, { value: ctx, children: /* @__PURE__ */ jsx(RangeSliderStylesProvider, { value: styles, children: /* @__PURE__ */ jsx(
chakra.div,
{
...getRootProps({}, ref),
className: "chakra-slider",
__css: styles.container,
children: sliderProps.children
}
) }) });
}
);
RangeSlider.displayName = "RangeSlider";
const RangeSliderThumb = forwardRef(
function RangeSliderThumb2(props, ref) {
const { getThumbProps, getInputProps, name } = useRangeSliderContext();
const styles = useRangeSliderStyles();
const thumbProps = getThumbProps(props, ref);
return /* @__PURE__ */ jsxs(
chakra.div,
{
...thumbProps,
className: cx("chakra-slider__thumb", props.className),
__css: styles.thumb,
children: [
thumbProps.children,
name && /* @__PURE__ */ jsx("input", { ...getInputProps({ index: props.index }) })
]
}
);
}
);
RangeSliderThumb.displayName = "RangeSliderThumb";
const RangeSliderTrack = forwardRef(
function RangeSliderTrack2(props, ref) {
const { getTrackProps } = useRangeSliderContext();
const styles = useRangeSliderStyles();
const trackProps = getTrackProps(props, ref);
return /* @__PURE__ */ jsx(
chakra.div,
{
...trackProps,
className: cx("chakra-slider__track", props.className),
__css: styles.track,
"data-testid": "chakra-range-slider-track"
}
);
}
);
RangeSliderTrack.displayName = "RangeSliderTrack";
const RangeSliderFilledTrack = forwardRef(function RangeSliderFilledTrack2(props, ref) {
const { getInnerTrackProps } = useRangeSliderContext();
const styles = useRangeSliderStyles();
const trackProps = getInnerTrackProps(props, ref);
return /* @__PURE__ */ jsx(
chakra.div,
{
...trackProps,
className: "chakra-slider__filled-track",
__css: styles.filledTrack
}
);
});
RangeSliderFilledTrack.displayName = "RangeSliderFilledTrack";
const RangeSliderMark = forwardRef(
function RangeSliderMark2(props, ref) {
const { getMarkerProps } = useRangeSliderContext();
const styles = useRangeSliderStyles();
const markProps = getMarkerProps(props, ref);
return /* @__PURE__ */ jsx(
chakra.div,
{
...markProps,
className: cx("chakra-slider__marker", props.className),
__css: styles.mark
}
);
}
);
RangeSliderMark.displayName = "RangeSliderMark";
export { RangeSlider, RangeSliderFilledTrack, RangeSliderMark, RangeSliderProvider, RangeSliderThumb, RangeSliderTrack, useRangeSliderContext, useRangeSliderStyles };