{"version":3,"names":["dynamic","omit","mergeRootProps","resolveClassStyle","valueToPercent","useProgressRootContext","ProgressIndicator","props","context","style","v","value","Number","isFinite","undefined","pct","min","max","height","width","userClassStyle","status","userProps","internalSlot","data-indeterminate","data-progressing","data-complete","merged","Tag","as"],"sources":["progress-indicator.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic } from \"@solidjs/web\";\nimport { omit } from \"solid-js\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport type { BaseUIComponentProps } from \"../../internals/types\";\nimport { valueToPercent } from \"../../internals/value-to-percent\";\nimport {\n\ttype ProgressRootState,\n\tuseProgressRootContext,\n} from \"../progress-root-context.ts\";\n\nexport interface ProgressIndicatorState extends ProgressRootState {}\n\nexport interface ProgressIndicatorProps\n\textends BaseUIComponentProps<\"div\", ProgressIndicatorState> {\n\t/**\n\t * Tag/component to render. Defaults to `\"div\"`. Replaces the\n\t * pre-spike `render` prop (axis G).\n\t */\n\tas?: ValidComponent;\n}\n\n/**\n * Visualizes the completion status of the task. Renders a `<div>` (or `as`\n * override).\n */\nexport function ProgressIndicator(props: ProgressIndicatorProps): JSX.Element {\n\tconst context = useProgressRootContext();\n\n\tconst style = (): JSX.CSSProperties | undefined => {\n\t\tconst v = context.value();\n\t\tif (v == null || !Number.isFinite(v)) return undefined;\n\t\tconst pct = valueToPercent(v, context.min(), context.max());\n\t\treturn {\n\t\t\t\"inset-inline-start\": 0,\n\t\t\theight: \"inherit\",\n\t\t\twidth: `${pct}%`,\n\t\t};\n\t};\n\n\t// Resolve `class`/`style` so function values (stateful styling) are invoked\n\t// with the progress state instead of being spread to the DOM raw. The\n\t// internal `style` (the indicator width) is merged first below, so a\n\t// user-supplied style composes with it rather than replacing the width.\n\tconst userClassStyle = resolveClassStyle(props, () => ({\n\t\tstatus: context.status(),\n\t}));\n\tconst userProps = omit(props, \"as\", \"class\", \"style\", \"attrs\");\n\n\tconst internalSlot = {\n\t\tget style(): JSX.CSSProperties | undefined {\n\t\t\treturn style();\n\t\t},\n\t\tget \"data-indeterminate\"(): \"\" | undefined {\n\t\t\treturn context.status() === \"indeterminate\" ? \"\" : undefined;\n\t\t},\n\t\tget \"data-progressing\"(): \"\" | undefined {\n\t\t\treturn context.status() === \"progressing\" ? \"\" : undefined;\n\t\t},\n\t\tget \"data-complete\"(): \"\" | undefined {\n\t\t\treturn context.status() === \"complete\" ? \"\" : undefined;\n\t\t},\n\t};\n\n\tlet merged: Record<string, unknown> = mergeRootProps(\n\t\tinternalSlot,\n\t\tuserClassStyle,\n\t);\n\tmerged = mergeRootProps(merged, userProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"div\");\n\treturn <Tag {...merged} />;\n}\n"],"mappings":"AACA,SAASA,OAAO,QAAQ,cAAc;AACtC,SAASC,IAAI,QAAQ,UAAU;AAC/B,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASC,iBAAiB,QAAQ,qCAAqC;AAEvE,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAECC,sBAAsB,QAChB,6BAA6B;AAapC;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,KAA6B,EAAe;EAC7E,MAAMC,OAAO,GAAGH,sBAAsB,CAAC,CAAC;EAExC,MAAMI,KAAK,GAAGA,CAAA,KAAqC;IAClD,MAAMC,CAAC,GAAGF,OAAO,CAACG,KAAK,CAAC,CAAC;IACzB,IAAID,CAAC,IAAI,IAAI,IAAI,CAACE,MAAM,CAACC,QAAQ,CAACH,CAAC,CAAC,EAAE,OAAOI,SAAS;IACtD,MAAMC,GAAG,GAAGX,cAAc,CAACM,CAAC,EAAEF,OAAO,CAACQ,GAAG,CAAC,CAAC,EAAER,OAAO,CAACS,GAAG,CAAC,CAAC,CAAC;IAC3D,OAAO;MACN,oBAAoB,EAAE,CAAC;MACvBC,MAAM,EAAE,SAAS;MACjBC,KAAK,EAAE,GAAGJ,GAAG;IACd,CAAC;EACF,CAAC;;EAED;EACA;EACA;EACA;EACA,MAAMK,cAAc,GAAGjB,iBAAiB,CAACI,KAAK,EAAE,OAAO;IACtDc,MAAM,EAAEb,OAAO,CAACa,MAAM,CAAC;EACxB,CAAC,CAAC,CAAC;EACH,MAAMC,SAAS,GAAGrB,IAAI,CAACM,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;EAE9D,MAAMgB,YAAY,GAAG;IACpB,IAAId,KAAKA,CAAA,EAAkC;MAC1C,OAAOA,KAAK,CAAC,CAAC;IACf,CAAC;IACD,IAAI,oBAAoBe,CAAA,EAAmB;MAC1C,OAAOhB,OAAO,CAACa,MAAM,CAAC,CAAC,KAAK,eAAe,GAAG,EAAE,GAAGP,SAAS;IAC7D,CAAC;IACD,IAAI,kBAAkBW,CAAA,EAAmB;MACxC,OAAOjB,OAAO,CAACa,MAAM,CAAC,CAAC,KAAK,aAAa,GAAG,EAAE,GAAGP,SAAS;IAC3D,CAAC;IACD,IAAI,eAAeY,CAAA,EAAmB;MACrC,OAAOlB,OAAO,CAACa,MAAM,CAAC,CAAC,KAAK,UAAU,GAAG,EAAE,GAAGP,SAAS;IACxD;EACD,CAAC;EAED,IAAIa,MAA+B,GAAGzB,cAAc,CACnDqB,YAAY,EACZH,cACD,CAAC;EACDO,MAAM,GAAGzB,cAAc,CAACyB,MAAM,EAAEL,SAAS,CAAC;EAE1C,MAAMM,GAAG,GAAG5B,OAAO,CAAC,MAAMO,KAAK,CAACsB,EAAE,IAAI,KAAK,CAAC;EAC5C,OAAO,CAAC,GAAG,CAAC,IAAIF,MAAM,CAAC,GAAG;AAC3B","ignoreList":[]}