{"version":3,"file":"VBanner.mjs","names":["VAvatar","VBannerActions","VBannerText","VDefaultsProvider","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","provideDefaults","useDisplay","IconValue","genericComponent","useRender","toRef","VBanner","name","props","avatar","String","color","icon","lines","stacked","Boolean","sticky","text","setup","slots","borderClasses","densityClasses","mobile","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","themeClasses","density","hasText","hasPrepend","prepend","value","image","default","actions"],"sources":["../../../src/components/VBanner/VBanner.tsx"],"sourcesContent":["// Styles\nimport './VBanner.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VBannerActions } from './VBannerActions'\nimport { VBannerText } from './VBannerText'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\n\nexport type VBannerSlots = MakeSlots<{\n  default: []\n  prepend: []\n  text: []\n  actions: []\n}>\n\nexport const VBanner = genericComponent<VBannerSlots>()({\n  name: 'VBanner',\n\n  props: {\n    avatar: String,\n    color: String,\n    icon: IconValue,\n    lines: String as PropType<'one' | 'two' | 'three'>,\n    stacked: Boolean,\n    sticky: Boolean,\n    text: String,\n\n    ...makeBorderProps(),\n    ...makeDensityProps(),\n    ...makeDimensionProps(),\n    ...makeElevationProps(),\n    ...makeLocationProps(),\n    ...makePositionProps(),\n    ...makeRoundedProps(),\n    ...makeTagProps(),\n    ...makeThemeProps(),\n  },\n\n  setup (props, { slots }) {\n    const { borderClasses } = useBorder(props)\n    const { densityClasses } = useDensity(props)\n    const { mobile } = useDisplay()\n    const { dimensionStyles } = useDimension(props)\n    const { elevationClasses } = useElevation(props)\n    const { locationStyles } = useLocation(props)\n    const { positionClasses } = usePosition(props)\n    const { roundedClasses } = useRounded(props)\n\n    const { themeClasses } = provideTheme(props)\n\n    const color = toRef(props, 'color')\n    const density = toRef(props, 'density')\n\n    provideDefaults({ VBannerActions: { color, density } })\n\n    useRender(() => {\n      const hasText = !!(props.text || slots.text)\n      const hasPrepend = !!(slots.prepend || props.avatar || props.icon)\n\n      return (\n        <props.tag\n          class={[\n            'v-banner',\n            {\n              'v-banner--stacked': props.stacked || mobile.value,\n              'v-banner--sticky': props.sticky,\n              [`v-banner--${props.lines}-line`]: !!props.lines,\n            },\n            borderClasses.value,\n            densityClasses.value,\n            elevationClasses.value,\n            positionClasses.value,\n            roundedClasses.value,\n            themeClasses.value,\n          ]}\n          style={[\n            dimensionStyles.value,\n            locationStyles.value,\n          ]}\n          role=\"banner\"\n        >\n          { hasPrepend && (\n            <VDefaultsProvider\n              key=\"prepend\"\n              defaults={{\n                VAvatar: {\n                  color: color.value,\n                  density: density.value,\n                  icon: props.icon,\n                  image: props.avatar,\n                },\n              }}\n            >\n              <div class=\"v-banner__prepend\">\n                { slots.prepend\n                  ? slots.prepend()\n                  : (props.avatar || props.icon) && (<VAvatar />)\n                }\n              </div>\n            </VDefaultsProvider>\n          ) }\n\n          <div class=\"v-banner__content\">\n            { hasText && (\n              <VBannerText key=\"text\">\n                { slots.text ? slots.text() : props.text }\n              </VBannerText>\n            ) }\n\n            { slots.default?.() }\n          </div>\n\n          { slots.actions && (\n            <VBannerActions>\n              { slots.actions() }\n            </VBannerActions>\n          ) }\n        </props.tag>\n      )\n    })\n  },\n})\n\nexport type VBanner = InstanceType<typeof VBanner>\n"],"mappings":"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"}