{"version":3,"file":"VMessages.mjs","names":["VSlideYTransition","makeTransitionProps","MaybeTransition","useTextColor","computed","genericComponent","useRender","wrapInArray","VMessages","name","props","active","Boolean","color","String","messages","type","Array","default","transition","component","leaveAbsolute","group","setup","slots","textColorClasses","textColorStyles","value","map","message","i"],"sources":["../../../src/components/VMessages/VMessages.tsx"],"sourcesContent":["// Styles\nimport './VMessages.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VMessageSlot = {\n  message: string\n}\n\nexport type VMessagesSlots = {\n  message: [VMessageSlot]\n}\n\nexport const VMessages = genericComponent<VMessagesSlots>()({\n  name: 'VMessages',\n\n  props: {\n    active: Boolean,\n    color: String,\n    messages: {\n      type: [Array, String] as PropType<string | string[]>,\n      default: () => ([]),\n    },\n\n    ...makeTransitionProps({\n      transition: {\n        component: VSlideYTransition,\n        leaveAbsolute: true,\n        group: true,\n      },\n    }),\n  },\n\n  setup (props, { slots }) {\n    const messages = computed(() => wrapInArray(props.messages))\n    const { textColorClasses, textColorStyles } = useTextColor(computed(() => props.color))\n\n    useRender(() => (\n      <MaybeTransition\n        transition={ props.transition }\n        tag=\"div\"\n        class={[\n          'v-messages',\n          textColorClasses.value,\n        ]}\n        style={ textColorStyles.value }\n        role=\"alert\"\n        aria-live=\"polite\"\n      >\n        { props.active && (\n          messages.value.map((message, i) => (\n            <div\n              class=\"v-messages__message\"\n              key={ `${i}-${messages.value}` }\n            >\n              { slots.message ? slots.message({ message }) : message }\n            </div>\n          ))\n        ) }\n      </MaybeTransition>\n    ))\n\n    return {}\n  },\n})\n\nexport type VMessages = InstanceType<typeof VMessages>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB,oCAE1B;AAAA,SACSC,mBAAmB,EAAEC,eAAe;AAAA,SACpCC,YAAY,uCAErB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,gBAAgB,EAAEC,SAAS,EAAEC,WAAW,gCAEjD;AAWA,OAAO,MAAMC,SAAS,GAAGH,gBAAgB,EAAkB,CAAC;EAC1DI,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAE;IACLC,MAAM,EAAEC,OAAO;IACfC,KAAK,EAAEC,MAAM;IACbC,QAAQ,EAAE;MACRC,IAAI,EAAE,CAACC,KAAK,EAAEH,MAAM,CAAgC;MACpDI,OAAO,EAAE,MAAO;IAClB,CAAC;IAED,GAAGjB,mBAAmB,CAAC;MACrBkB,UAAU,EAAE;QACVC,SAAS,EAAEpB,iBAAiB;QAC5BqB,aAAa,EAAE,IAAI;QACnBC,KAAK,EAAE;MACT;IACF,CAAC;EACH,CAAC;EAEDC,KAAK,CAAEb,KAAK,QAAa;IAAA,IAAX;MAAEc;IAAM,CAAC;IACrB,MAAMT,QAAQ,GAAGX,QAAQ,CAAC,MAAMG,WAAW,CAACG,KAAK,CAACK,QAAQ,CAAC,CAAC;IAC5D,MAAM;MAAEU,gBAAgB;MAAEC;IAAgB,CAAC,GAAGvB,YAAY,CAACC,QAAQ,CAAC,MAAMM,KAAK,CAACG,KAAK,CAAC,CAAC;IAEvFP,SAAS,CAAC;MAAA,cAEOI,KAAK,CAACS,UAAU;MAAA,OACzB,KAAK;MAAA,SACF,CACL,YAAY,EACZM,gBAAgB,CAACE,KAAK,CACvB;MAAA,SACOD,eAAe,CAACC,KAAK;MAAA,QACxB,OAAO;MAAA,aACF;IAAQ;MAAA,gBAEhBjB,KAAK,CAACC,MAAM,IACZI,QAAQ,CAACY,KAAK,CAACC,GAAG,CAAC,CAACC,OAAO,EAAEC,CAAC;QAAA,SAEpB,qBAAqB;QAAA,OACpB,GAAEA,CAAE,IAAGf,QAAQ,CAACY,KAAM;MAAC,IAE5BH,KAAK,CAACK,OAAO,GAAGL,KAAK,CAACK,OAAO,CAAC;QAAEA;MAAQ,CAAC,CAAC,GAAGA,OAAO,EAEzD,CACF;IAAA,EAEJ,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}