"use strict"; "use client"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // packages/react/progress/src/index.ts var src_exports = {}; __export(src_exports, { Indicator: () => Indicator, Progress: () => Progress, ProgressIndicator: () => ProgressIndicator, Root: () => Root, createProgressScope: () => createProgressScope }); module.exports = __toCommonJS(src_exports); // packages/react/progress/src/Progress.tsx var React = __toESM(require("react")); var import_react_context = require("@radix-ui/react-context"); var import_react_primitive = require("@radix-ui/react-primitive"); var import_jsx_runtime = require("react/jsx-runtime"); var PROGRESS_NAME = "Progress"; var DEFAULT_MAX = 100; var [createProgressContext, createProgressScope] = (0, import_react_context.createContextScope)(PROGRESS_NAME); var [ProgressProvider, useProgressContext] = createProgressContext(PROGRESS_NAME); var Progress = React.forwardRef( (props, forwardedRef) => { const { __scopeProgress, value: valueProp = null, max: maxProp, getValueLabel = defaultGetValueLabel, ...progressProps } = props; if ((maxProp || maxProp === 0) && !isValidMaxNumber(maxProp)) { console.error(getInvalidMaxError(`${maxProp}`, "Progress")); } const max = isValidMaxNumber(maxProp) ? maxProp : DEFAULT_MAX; if (valueProp !== null && !isValidValueNumber(valueProp, max)) { console.error(getInvalidValueError(`${valueProp}`, "Progress")); } const value = isValidValueNumber(valueProp, max) ? valueProp : null; const valueLabel = isNumber(value) ? getValueLabel(value, max) : void 0; return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ProgressProvider, { scope: __scopeProgress, value, max, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_react_primitive.Primitive.div, { "aria-valuemax": max, "aria-valuemin": 0, "aria-valuenow": isNumber(value) ? value : void 0, "aria-valuetext": valueLabel, role: "progressbar", "data-state": getProgressState(value, max), "data-value": value ?? void 0, "data-max": max, ...progressProps, ref: forwardedRef } ) }); } ); Progress.displayName = PROGRESS_NAME; var INDICATOR_NAME = "ProgressIndicator"; var ProgressIndicator = React.forwardRef( (props, forwardedRef) => { const { __scopeProgress, ...indicatorProps } = props; const context = useProgressContext(INDICATOR_NAME, __scopeProgress); return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_react_primitive.Primitive.div, { "data-state": getProgressState(context.value, context.max), "data-value": context.value ?? void 0, "data-max": context.max, ...indicatorProps, ref: forwardedRef } ); } ); ProgressIndicator.displayName = INDICATOR_NAME; function defaultGetValueLabel(value, max) { return `${Math.round(value / max * 100)}%`; } function getProgressState(value, maxValue) { return value == null ? "indeterminate" : value === maxValue ? "complete" : "loading"; } function isNumber(value) { return typeof value === "number"; } function isValidMaxNumber(max) { return isNumber(max) && !isNaN(max) && max > 0; } function isValidValueNumber(value, max) { return isNumber(value) && !isNaN(value) && value <= max && value >= 0; } function getInvalidMaxError(propValue, componentName) { return `Invalid prop \`max\` of value \`${propValue}\` supplied to \`${componentName}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${DEFAULT_MAX}\`.`; } function getInvalidValueError(propValue, componentName) { return `Invalid prop \`value\` of value \`${propValue}\` supplied to \`${componentName}\`. The \`value\` prop must be: - a positive number - less than the value passed to \`max\` (or ${DEFAULT_MAX} if no \`max\` prop is set) - \`null\` or \`undefined\` if the progress is indeterminate. Defaulting to \`null\`.`; } var Root = Progress; var Indicator = ProgressIndicator; //# sourceMappingURL=index.js.map