{"version":3,"file":"VTimeline.mjs","names":["makeDensityProps","useDensity","makeTagProps","makeThemeProps","provideTheme","provideDefaults","computed","toRef","convertToUnit","genericComponent","useRender","VTimeline","name","props","align","type","String","default","validator","v","includes","direction","justify","side","lineInset","Number","lineThickness","lineColor","truncateLine","setup","slots","themeClasses","densityClasses","VTimelineDivider","VTimelineItem","density","sideClasses","truncateClasses","classes","value"],"sources":["../../../src/components/VTimeline/VTimeline.tsx"],"sourcesContent":["// Styles\nimport './VTimeline.sass'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nexport type TimelineDirection = 'vertical' | 'horizontal'\nexport type TimelineSide = 'start' | 'end' | undefined\nexport type TimelineAlign = 'center' | 'start'\nexport type TimelineTruncateLine = 'start' | 'end' | 'both' | undefined\n\nexport const VTimeline = genericComponent()({\n  name: 'VTimeline',\n\n  props: {\n    align: {\n      type: String,\n      default: 'center',\n      validator: (v: any) => ['center', 'start'].includes(v),\n    } as Prop<TimelineAlign>,\n    direction: {\n      type: String,\n      default: 'vertical',\n      validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n    } as Prop<TimelineDirection>,\n    justify: {\n      type: String,\n      default: 'auto',\n      validator: (v: any) => ['auto', 'center'].includes(v),\n    },\n    side: {\n      type: String,\n      validator: (v: any) => v == null || ['start', 'end'].includes(v),\n    } as Prop<TimelineSide>,\n    lineInset: {\n      type: [String, Number],\n      default: 0,\n    },\n    lineThickness: {\n      type: [String, Number],\n      default: 2,\n    },\n    lineColor: String,\n    truncateLine: {\n      type: String,\n      validator: (v: any) => ['start', 'end', 'both'].includes(v),\n    } as Prop<TimelineTruncateLine>,\n\n    ...makeDensityProps(),\n    ...makeTagProps(),\n    ...makeThemeProps(),\n  },\n\n  setup (props, { slots }) {\n    const { themeClasses } = provideTheme(props)\n    const { densityClasses } = useDensity(props)\n\n    provideDefaults({\n      VTimelineDivider: {\n        lineColor: toRef(props, 'lineColor'),\n      },\n      VTimelineItem: {\n        density: toRef(props, 'density'),\n        lineInset: toRef(props, 'lineInset'),\n      },\n    })\n\n    const sideClasses = computed(() => {\n      const side = props.side ? props.side : props.density !== 'default' ? 'end' : null\n\n      return side && `v-timeline--side-${side}`\n    })\n\n    const truncateClasses = computed(() => {\n      const classes = [\n        'v-timeline--truncate-line-start',\n        'v-timeline--truncate-line-end',\n      ]\n\n      switch (props.truncateLine) {\n        case 'both': return classes\n        case 'start': return classes[0]\n        case 'end': return classes[1]\n        default: return null\n      }\n    })\n\n    useRender(() => (\n      <props.tag\n        class={[\n          'v-timeline',\n          `v-timeline--${props.direction}`,\n          `v-timeline--align-${props.align}`,\n          `v-timeline--justify-${props.justify}`,\n          truncateClasses.value,\n          {\n            'v-timeline--inset-line': !!props.lineInset,\n          },\n          themeClasses.value,\n          densityClasses.value,\n          sideClasses.value,\n        ]}\n        style={{\n          '--v-timeline-line-thickness': convertToUnit(props.lineThickness),\n        }}\n        v-slots={ slots }\n      />\n    ))\n\n    return {}\n  },\n})\n\nexport type VTimeline = InstanceType<typeof VTimeline>\n"],"mappings":"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"}