{"version":3,"file":"UProgressBar.mjs","names":["makeComponentProps","makeTagProps","genericComponent","propsFactory","computed","UTooltip","makeUProgressBarProps","_objectSpread","progress","type","Number","required","label","String","width","UProgressBar","name","props","setup","progressBarWrapperClasses","classes","tooltipFloatingPositionStyles","concat","tooltipClasses","_ref","_defineProperty","progressBarWidth","_createVNode","value","tooltipToggle","_createTextVNode","text"],"sources":["../../../src/components/UProgressBar/UProgressBar.tsx"],"sourcesContent":["import { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\nimport { genericComponent, propsFactory } from '@/utils'\nimport { ExtractPropTypes, computed } from 'vue'\nimport { UTooltip } from '../UTooltip/UTooltip'\n\nexport const makeUProgressBarProps = propsFactory(\n  {\n    progress: {\n      type: Number,\n      default: 0,\n      required: false,\n    },\n    label: {\n      type: String,\n      default: 'none',\n      required: false,\n    },\n    width: {\n      type: String,\n      default: '100%',\n      required: false,\n    },\n\n    ...makeComponentProps(),\n    ...makeTagProps(),\n  },\n  'UProgressBar'\n)\n\nexport type UProgressBarProps = ExtractPropTypes<typeof makeUProgressBarProps>\n\nexport const UProgressBar = genericComponent()({\n  name: 'UProgressBar',\n\n  props: makeUProgressBarProps(),\n\n  setup(props) {\n    const progressBarWrapperClasses = computed(() => {\n      let classes = ''\n      if (props.label === 'right') {\n        classes = 'flex gap-3 items-center'\n      } else if (props.label === 'bottom') {\n        classes = 'flex flex-col items-end gap-2'\n      }\n\n      return classes\n    })\n\n    const tooltipFloatingPositionStyles = computed(() => {\n      return `left: ${props.progress - 6}%;`\n    })\n\n    const tooltipClasses = computed(() => ({\n      ['-top-0.85']: props.label === 'top floating',\n      ['-bottom-68']: props.label === 'bottom floating',\n    }))\n\n    const progressBarWidth = computed<string>(() => {\n      return props.width === '100%' || !props.width\n        ? '100%'\n        : props.width + 'px'\n    })\n\n    return () => (\n      <div\n        class={[props.class, 'progressbar-container relative']}\n        style={{ width: progressBarWidth.value }}\n      >\n        <div class={[progressBarWrapperClasses.value, 'progressbar-wrapper']}>\n          <div\n            class={`progress-bar transition-width duration-500 ease-in h-2 bg-gray-200 rounded \n            overflow-hidden relative`}\n            style={{ width: progressBarWidth.value }}\n          >\n            <div\n              class={\n                'bg-primary-600 h-full rounded progress transition-width duration-500 ease-in'\n              }\n              style={{\n                width: props.progress === 0 ? '1.5%' : `${props.progress}%`,\n              }}\n            ></div>\n          </div>\n          {props.label === 'right' || props.label === 'bottom' ? (\n            <span class=\"text-text-sm font-medium\">{`${props.progress}%`}</span>\n          ) : null}\n        </div>\n        <div\n          class={[\n            tooltipClasses.value,\n            'absolute transition-width duration-500 ease-in',\n          ]}\n          style={tooltipFloatingPositionStyles.value}\n        >\n          {props.label === 'top floating' ||\n          props.label === 'bottom floating' ? (\n            <UTooltip position=\"none top\" theme=\"light\" always={true}>\n              {{\n                tooltipToggle: () => <span class=\"opacity-0\">Icon</span>,\n                text: () => `${props.progress}%`,\n              }}\n            </UTooltip>\n          ) : null}\n        </div>\n      </div>\n    )\n  },\n})\n\nexport type UProgressBar = InstanceType<typeof UProgressBar>\n"],"mappings":"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"}