@davincihealthcare/elty-design-system-vue 1.90.0 → 1.93.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,36 +1,37 @@
1
1
  import { default as ElButton } from './ElButton.vue';
2
2
  import { default as ElIcon } from './ElIcon.vue';
3
+ import { VNode } from 'vue';
3
4
 
4
5
  export declare const elInlineBannerStatuses: readonly ["error", "warning", "info", "laiana"];
5
6
  export type ElInlineBannerStatuses = (typeof elInlineBannerStatuses)[number];
6
- declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
7
+ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
7
8
  status?: ElInlineBannerStatuses;
8
- title?: string;
9
- description: string;
10
- html?: boolean;
9
+ title?: string | VNode;
10
+ description?: string;
11
11
  loading?: boolean;
12
12
  action?: Pick<InstanceType<typeof ElButton>["$props"], "label" | "variant" | "onClick" | "icon" | "iconRight" | "loading" | "loadOnClick">;
13
13
  icon?: InstanceType<typeof ElIcon>["$props"];
14
14
  }>, {
15
15
  status: string;
16
16
  title: undefined;
17
+ description: undefined;
17
18
  action: undefined;
18
19
  icon: undefined;
19
20
  }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
20
21
  status?: ElInlineBannerStatuses;
21
- title?: string;
22
- description: string;
23
- html?: boolean;
22
+ title?: string | VNode;
23
+ description?: string;
24
24
  loading?: boolean;
25
25
  action?: Pick<InstanceType<typeof ElButton>["$props"], "label" | "variant" | "onClick" | "icon" | "iconRight" | "loading" | "loadOnClick">;
26
26
  icon?: InstanceType<typeof ElIcon>["$props"];
27
27
  }>, {
28
28
  status: string;
29
29
  title: undefined;
30
+ description: undefined;
30
31
  action: undefined;
31
32
  icon: undefined;
32
33
  }>>>, {
33
- title: string;
34
+ title: string | VNode;
34
35
  icon: Omit<{
35
36
  readonly name: import('./ElIcon.vue').IconNames;
36
37
  readonly color?: ("pink" | "yellow" | "orange" | "cyan" | "rose" | "green" | "brand-blue" | "brand-green" | "red" | "purple" | "indigo") | undefined;
@@ -52,8 +53,11 @@ declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_T
52
53
  };
53
54
  }>>, never>;
54
55
  status: ElInlineBannerStatuses;
56
+ description: string;
55
57
  action: Pick<InstanceType<typeof ElButton>["$props"], "label" | "variant" | "onClick" | "icon" | "iconRight" | "loading" | "loadOnClick">;
56
- }, {}>;
58
+ }, {}>, {
59
+ description?(_: {}): any;
60
+ }>;
57
61
  export default _default;
58
62
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
59
63
  type __VLS_TypePropsToRuntimeProps<T> = {
@@ -72,3 +76,8 @@ type __VLS_WithDefaults<P, D> = {
72
76
  type __VLS_Prettify<T> = {
73
77
  [K in keyof T]: T[K];
74
78
  } & {};
79
+ type __VLS_WithTemplateSlots<T, S> = T & {
80
+ new (): {
81
+ $slots: S;
82
+ };
83
+ };
@@ -9,12 +9,14 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<__
9
9
  /** Hide tooltip when tooltip's title changes */
10
10
  hideOnChange?: boolean;
11
11
  hideOnMobile?: boolean;
12
+ allowNewLines?: boolean;
12
13
  }>, {
13
14
  content: undefined;
14
15
  position: string;
15
16
  delayTime: number;
16
17
  hideOnChange: boolean;
17
18
  hideOnMobile: boolean;
19
+ allowNewLines: boolean;
18
20
  }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
19
21
  title: string;
20
22
  content?: string;
@@ -24,18 +26,21 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<__
24
26
  /** Hide tooltip when tooltip's title changes */
25
27
  hideOnChange?: boolean;
26
28
  hideOnMobile?: boolean;
29
+ allowNewLines?: boolean;
27
30
  }>, {
28
31
  content: undefined;
29
32
  position: string;
30
33
  delayTime: number;
31
34
  hideOnChange: boolean;
32
35
  hideOnMobile: boolean;
36
+ allowNewLines: boolean;
33
37
  }>>>, {
34
38
  position: ElTooltipPosition;
35
39
  content: string;
36
40
  delayTime: string | number;
37
41
  hideOnChange: boolean;
38
42
  hideOnMobile: boolean;
43
+ allowNewLines: boolean;
39
44
  }, {}>, {
40
45
  default?(_: {}): any;
41
46
  }>;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),i=require("./ElIcon.vue.cjs2.js"),s=require("./ElButton.vue.cjs2.js"),c=require("./ElSpinner.vue.cjs2.js"),u=require("./assets/laiana/laiana.png.cjs.js"),d={class:"flex flex-row items-start gap-x-2 flex-grow basis-64"},p=["src"],m={class:"text-sm flex flex-col flex-grow mt-0.5"},g=["innerHTML"],f=["innerHTML"],k={key:0,class:"font-semibold min-h-6"},B={key:1},y=["error","warning","info","laiana"],v=e.defineComponent({__name:"ElInlineBanner",props:{status:{default:"info"},title:{default:void 0},description:{},html:{type:Boolean},loading:{type:Boolean},action:{default:void 0},icon:{default:void 0}},setup(o){const n=o,l=e.computed(()=>{var t;if((t=n.icon)!=null&&t.name)return n.icon.name;switch(n.status){case"info":return"InformationCircleIcon";case"warning":return"ExclamationTriangleIcon";case"error":return"InformationCircleIcon";default:return"InformationCircleIcon"}});return(t,h)=>{var a,r;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["inline-flex flex-wrap items-center justify-center gap-x-2 gap-y-4 w-full min-w-72 p-4 rounded-md",{"bg-brandBlue-50 text-brandBlue-800":t.status==="info","bg-yellow-50 text-yellow-700":t.status==="warning","bg-red-50 text-red-700":t.status==="error","text-white":t.status==="laiana"}]),style:e.normalizeStyle(t.status==="laiana"?{background:"linear-gradient(to right, #AB5AE2, #A5B5F6)"}:{})},[e.createElementVNode("div",d,[t.loading?(e.openBlock(),e.createBlock(c.default,{key:0,class:"flex-shrink-0 px-1 pt-1"})):t.status==="laiana"?(e.openBlock(),e.createElementBlock("img",{key:1,src:e.unref(u.default),alt:"Laiana icon",class:"w-6 h-6 flex-shrink-0"},null,8,p)):(e.openBlock(),e.createBlock(i.default,e.mergeProps({key:2},t.icon,{name:l.value,class:["w-6 h-6 flex-shrink-0",{"text-brandBlue-500":t.status==="info","text-yellow-500":t.status==="warning","text-red-500":t.status==="error"}]}),null,16,["name","class"])),e.createElementVNode("div",m,[t.html?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.title?(e.openBlock(),e.createElementBlock("span",{key:0,class:"font-semibold min-h-6",innerHTML:t.title},null,8,g)):e.createCommentVNode("",!0),t.description?(e.openBlock(),e.createElementBlock("span",{key:1,innerHTML:t.description},null,8,f)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t.title?(e.openBlock(),e.createElementBlock("span",k,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),t.description?(e.openBlock(),e.createElementBlock("span",B,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)],64))])]),t.action?(e.openBlock(),e.createBlock(s.default,e.mergeProps({key:0},t.action,{variant:t.action.variant??"tertiary",class:["flex-shrink-0",{underline:!t.action.variant||t.action.variant==="tertiary","text-red-700 hover:text-red-500 hover:bg-transparent active:text-red-500 active:bg-red-100":t.status==="error","text-yellow-700 hover:text-yellow-500 hover:bg-transparent active:text-yellow-500 active:bg-yellow-100":t.status==="warning","text-brandBlue-800 hover:text-brandBlue-500 hover:bg-transparent":t.status==="info","text-gray-900 hover:bg-gray-50 active:bg-gray-100":t.status==="laiana"}],label:(a=t.action)==null?void 0:a.label,onClick:(r=t.action)==null?void 0:r.onClick}),null,16,["variant","class","label","onClick"])):e.createCommentVNode("",!0)],6)}}});exports.default=v;exports.elInlineBannerStatuses=y;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),i=require("./ElIcon.vue.cjs2.js"),s=require("./ElButton.vue.cjs2.js"),u=require("./ElSpinner.vue.cjs2.js"),c=require("./assets/laiana/laiana.png.cjs.js"),d={class:"flex flex-row items-start gap-x-2 flex-grow basis-64"},p=["src"],f={class:"text-sm flex flex-col flex-grow mt-0.5"},g={key:1},m=["error","warning","info","laiana"],v=t.defineComponent({__name:"ElInlineBanner",props:{status:{default:"info"},title:{default:void 0},description:{default:void 0},loading:{type:Boolean},action:{default:void 0},icon:{default:void 0}},setup(o){const n=o,l=t.computed(()=>{var e;if((e=n.icon)!=null&&e.name)return n.icon.name;switch(n.status){case"info":return"InformationCircleIcon";case"warning":return"ExclamationTriangleIcon";case"error":return"InformationCircleIcon";default:return"InformationCircleIcon"}});return(e,y)=>{var a,r;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["inline-flex flex-wrap items-center justify-center gap-x-2 gap-y-4 w-full min-w-72 p-4 rounded-md",{"bg-brandBlue-50 text-brandBlue-800":e.status==="info","bg-yellow-50 text-yellow-700":e.status==="warning","bg-red-50 text-red-700":e.status==="error","text-white":e.status==="laiana"}]),style:t.normalizeStyle(e.status==="laiana"?{background:"linear-gradient(to right, #AB5AE2, #A5B5F6)"}:{})},[t.createElementVNode("div",d,[e.loading?(t.openBlock(),t.createBlock(u.default,{key:0,class:"flex-shrink-0 px-1 pt-1"})):e.status==="laiana"?(t.openBlock(),t.createElementBlock("img",{key:1,src:t.unref(c.default),alt:"Laiana icon",class:"w-6 h-6 flex-shrink-0"},null,8,p)):(t.openBlock(),t.createBlock(i.default,t.mergeProps({key:2},e.icon,{name:l.value,class:["w-6 h-6 flex-shrink-0",{"text-brandBlue-500":e.status==="info","text-yellow-500":e.status==="warning","text-red-500":e.status==="error"}]}),null,16,["name","class"])),t.createElementVNode("div",f,[e.title?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(typeof e.title=="string"?"span":e.title),{key:0,class:"font-semibold min-h-6"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(typeof e.title=="string"?e.title:""),1)]),_:1})):t.createCommentVNode("",!0),e.$slots.description||e.description?(t.openBlock(),t.createElementBlock("span",g,[t.renderSlot(e.$slots,"description",{},()=>[t.createTextVNode(t.toDisplayString(e.description),1)])])):t.createCommentVNode("",!0)])]),e.action?(t.openBlock(),t.createBlock(s.default,t.mergeProps({key:0},e.action,{variant:e.action.variant??"tertiary",class:["flex-shrink-0",{underline:!e.action.variant||e.action.variant==="tertiary","text-red-700 hover:text-red-500 hover:bg-transparent active:text-red-500 active:bg-red-100":e.status==="error","text-yellow-700 hover:text-yellow-500 hover:bg-transparent active:text-yellow-500 active:bg-yellow-100":e.status==="warning","text-brandBlue-800 hover:text-brandBlue-500 hover:bg-transparent":e.status==="info","text-gray-900 hover:bg-gray-50 active:bg-gray-100":e.status==="laiana"}],label:(a=e.action)==null?void 0:a.label,onClick:(r=e.action)==null?void 0:r.onClick}),null,16,["variant","class","label","onClick"])):t.createCommentVNode("",!0)],6)}}});exports.default=v;exports.elInlineBannerStatuses=m;
2
2
  //# sourceMappingURL=ElInlineBanner.vue.cjs2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElInlineBanner.vue.cjs2.js","sources":["../../src/ElInlineBanner.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elInlineBannerStatuses = ['error', 'warning', 'info', 'laiana'] as const;\nexport type ElInlineBannerStatuses = (typeof elInlineBannerStatuses)[number];\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport ElIcon from '@/ElIcon.vue';\nimport ElButton from '@/ElButton.vue';\nimport ElSpinner from '@/ElSpinner.vue';\nimport laianaIcon from '@/assets/laiana/laiana.png';\n\nconst props = withDefaults(\n defineProps<{\n status?: ElInlineBannerStatuses;\n title?: string;\n description: string;\n html?: boolean;\n loading?: boolean;\n action?: Pick<\n InstanceType<typeof ElButton>['$props'],\n 'label' | 'variant' | 'onClick' | 'icon' | 'iconRight' | 'loading' | 'loadOnClick'\n >;\n icon?: InstanceType<typeof ElIcon>['$props'];\n }>(),\n {\n status: 'info',\n title: undefined,\n action: undefined,\n icon: undefined,\n },\n);\n\nconst iconName = computed(() => {\n if (props.icon?.name) return props.icon.name;\n\n switch (props.status) {\n case 'info':\n return 'InformationCircleIcon';\n case 'warning':\n return 'ExclamationTriangleIcon';\n case 'error':\n return 'InformationCircleIcon';\n default:\n return 'InformationCircleIcon';\n }\n});\n</script>\n\n<template>\n <div\n class=\"inline-flex flex-wrap items-center justify-center gap-x-2 gap-y-4 w-full min-w-72 p-4 rounded-md\"\n :class=\"{\n 'bg-brandBlue-50 text-brandBlue-800': status === 'info',\n 'bg-yellow-50 text-yellow-700': status === 'warning',\n 'bg-red-50 text-red-700': status === 'error',\n 'text-white': status === 'laiana',\n }\"\n :style=\"status === 'laiana' ? { background: 'linear-gradient(to right, #AB5AE2, #A5B5F6)' } : {}\"\n >\n <div class=\"flex flex-row items-start gap-x-2 flex-grow basis-64\">\n <ElSpinner v-if=\"loading\" class=\"flex-shrink-0 px-1 pt-1\" />\n <img v-else-if=\"status === 'laiana'\" :src=\"laianaIcon\" alt=\"Laiana icon\" class=\"w-6 h-6 flex-shrink-0\" />\n <ElIcon\n v-else\n v-bind=\"icon\"\n :name=\"iconName\"\n class=\"w-6 h-6 flex-shrink-0\"\n :class=\"{\n 'text-brandBlue-500': status === 'info',\n 'text-yellow-500': status === 'warning',\n 'text-red-500': status === 'error',\n }\"\n />\n <div class=\"text-sm flex flex-col flex-grow mt-0.5\">\n <template v-if=\"!!html\">\n <span v-if=\"title\" class=\"font-semibold min-h-6\" v-html=\"title\"></span>\n <span v-if=\"description\" v-html=\"description\"></span>\n </template>\n <template v-else>\n <span v-if=\"title\" class=\"font-semibold min-h-6\">{{ title }}</span>\n <span v-if=\"description\">{{ description }}</span>\n </template>\n </div>\n </div>\n <ElButton\n v-if=\"action\"\n v-bind=\"action\"\n :variant=\"action.variant ?? 'tertiary'\"\n class=\"flex-shrink-0\"\n :class=\"{\n underline: !action.variant || action.variant === 'tertiary',\n 'text-red-700 hover:text-red-500 hover:bg-transparent active:text-red-500 active:bg-red-100': status === 'error',\n 'text-yellow-700 hover:text-yellow-500 hover:bg-transparent active:text-yellow-500 active:bg-yellow-100': status === 'warning',\n 'text-brandBlue-800 hover:text-brandBlue-500 hover:bg-transparent': status === 'info',\n\n 'text-gray-900 hover:bg-gray-50 active:bg-gray-100': status === 'laiana',\n }\"\n :label=\"action?.label\"\n @click=\"action?.onClick\"\n />\n </div>\n</template>\n"],"names":["elInlineBannerStatuses","props","__props","iconName","computed","_a"],"mappings":"6eACaA,EAAyB,CAAC,QAAS,UAAW,OAAQ,QAAQ,uNAW3E,MAAMC,EAAQC,EAqBRC,EAAWC,EAAAA,SAAS,IAAM,OAC9B,IAAIC,EAAAJ,EAAM,OAAN,MAAAI,EAAY,KAAM,OAAOJ,EAAM,KAAK,KAExC,OAAQA,EAAM,OAAQ,CACpB,IAAK,OACI,MAAA,wBACT,IAAK,UACI,MAAA,0BACT,IAAK,QACI,MAAA,wBACT,QACS,MAAA,uBACX,CAAA,CACD"}
1
+ {"version":3,"file":"ElInlineBanner.vue.cjs2.js","sources":["../../src/ElInlineBanner.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elInlineBannerStatuses = ['error', 'warning', 'info', 'laiana'] as const;\nexport type ElInlineBannerStatuses = (typeof elInlineBannerStatuses)[number];\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, type VNode } from 'vue';\nimport ElIcon from '@/ElIcon.vue';\nimport ElButton from '@/ElButton.vue';\nimport ElSpinner from '@/ElSpinner.vue';\nimport laianaIcon from '@/assets/laiana/laiana.png';\n\nconst props = withDefaults(\n defineProps<{\n status?: ElInlineBannerStatuses;\n title?: string | VNode;\n description?: string;\n loading?: boolean;\n action?: Pick<\n InstanceType<typeof ElButton>['$props'],\n 'label' | 'variant' | 'onClick' | 'icon' | 'iconRight' | 'loading' | 'loadOnClick'\n >;\n icon?: InstanceType<typeof ElIcon>['$props'];\n }>(),\n {\n status: 'info',\n title: undefined,\n description: undefined,\n action: undefined,\n icon: undefined,\n },\n);\n\nconst iconName = computed(() => {\n if (props.icon?.name) return props.icon.name;\n\n switch (props.status) {\n case 'info':\n return 'InformationCircleIcon';\n case 'warning':\n return 'ExclamationTriangleIcon';\n case 'error':\n return 'InformationCircleIcon';\n default:\n return 'InformationCircleIcon';\n }\n});\n</script>\n\n<template>\n <div\n class=\"inline-flex flex-wrap items-center justify-center gap-x-2 gap-y-4 w-full min-w-72 p-4 rounded-md\"\n :class=\"{\n 'bg-brandBlue-50 text-brandBlue-800': status === 'info',\n 'bg-yellow-50 text-yellow-700': status === 'warning',\n 'bg-red-50 text-red-700': status === 'error',\n 'text-white': status === 'laiana',\n }\"\n :style=\"status === 'laiana' ? { background: 'linear-gradient(to right, #AB5AE2, #A5B5F6)' } : {}\"\n >\n <div class=\"flex flex-row items-start gap-x-2 flex-grow basis-64\">\n <ElSpinner v-if=\"loading\" class=\"flex-shrink-0 px-1 pt-1\" />\n <img v-else-if=\"status === 'laiana'\" :src=\"laianaIcon\" alt=\"Laiana icon\" class=\"w-6 h-6 flex-shrink-0\" />\n <ElIcon\n v-else\n v-bind=\"icon\"\n :name=\"iconName\"\n class=\"w-6 h-6 flex-shrink-0\"\n :class=\"{\n 'text-brandBlue-500': status === 'info',\n 'text-yellow-500': status === 'warning',\n 'text-red-500': status === 'error',\n }\"\n />\n <div class=\"text-sm flex flex-col flex-grow mt-0.5\">\n <component :is=\"typeof title === 'string' ? 'span' : title\" v-if=\"title\" class=\"font-semibold min-h-6\">\n {{ typeof title === 'string' ? title : '' }}\n </component>\n <span v-if=\"$slots.description || description\">\n <slot name=\"description\">{{ description }}</slot>\n </span>\n </div>\n </div>\n <ElButton\n v-if=\"action\"\n v-bind=\"action\"\n :variant=\"action.variant ?? 'tertiary'\"\n class=\"flex-shrink-0\"\n :class=\"{\n underline: !action.variant || action.variant === 'tertiary',\n 'text-red-700 hover:text-red-500 hover:bg-transparent active:text-red-500 active:bg-red-100': status === 'error',\n 'text-yellow-700 hover:text-yellow-500 hover:bg-transparent active:text-yellow-500 active:bg-yellow-100': status === 'warning',\n 'text-brandBlue-800 hover:text-brandBlue-500 hover:bg-transparent': status === 'info',\n\n 'text-gray-900 hover:bg-gray-50 active:bg-gray-100': status === 'laiana',\n }\"\n :label=\"action?.label\"\n @click=\"action?.onClick\"\n />\n </div>\n</template>\n"],"names":["elInlineBannerStatuses","props","__props","iconName","computed","_a"],"mappings":"qaACaA,EAAyB,CAAC,QAAS,UAAW,OAAQ,QAAQ,iNAW3E,MAAMC,EAAQC,EAqBRC,EAAWC,EAAAA,SAAS,IAAM,OAC9B,IAAIC,EAAAJ,EAAM,OAAN,MAAAI,EAAY,KAAM,OAAOJ,EAAM,KAAK,KAExC,OAAQA,EAAM,OAAQ,CACpB,IAAK,OACI,MAAA,wBACT,IAAK,UACI,MAAA,0BACT,IAAK,QACI,MAAA,wBACT,QACS,MAAA,uBACX,CAAA,CACD"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as p,computed as g,openBlock as n,createElementBlock as t,normalizeClass as y,normalizeStyle as h,createElementVNode as l,createBlock as i,unref as v,mergeProps as u,Fragment as c,createCommentVNode as a,toDisplayString as d}from"vue";import b from"./ElIcon.vue.esm2.js";import w from"./ElButton.vue.esm2.js";import k from"./ElSpinner.vue.esm2.js";import B from"./assets/laiana/laiana.png.esm.js";const I={class:"flex flex-row items-start gap-x-2 flex-grow basis-64"},C=["src"],E={class:"text-sm flex flex-col flex-grow mt-0.5"},L=["innerHTML"],T=["innerHTML"],x={key:0,class:"font-semibold min-h-6"},H={key:1},F=["error","warning","info","laiana"],V=p({__name:"ElInlineBanner",props:{status:{default:"info"},title:{default:void 0},description:{},html:{type:Boolean},loading:{type:Boolean},action:{default:void 0},icon:{default:void 0}},setup(m){const r=m,f=g(()=>{var e;if((e=r.icon)!=null&&e.name)return r.icon.name;switch(r.status){case"info":return"InformationCircleIcon";case"warning":return"ExclamationTriangleIcon";case"error":return"InformationCircleIcon";default:return"InformationCircleIcon"}});return(e,M)=>{var o,s;return n(),t("div",{class:y(["inline-flex flex-wrap items-center justify-center gap-x-2 gap-y-4 w-full min-w-72 p-4 rounded-md",{"bg-brandBlue-50 text-brandBlue-800":e.status==="info","bg-yellow-50 text-yellow-700":e.status==="warning","bg-red-50 text-red-700":e.status==="error","text-white":e.status==="laiana"}]),style:h(e.status==="laiana"?{background:"linear-gradient(to right, #AB5AE2, #A5B5F6)"}:{})},[l("div",I,[e.loading?(n(),i(k,{key:0,class:"flex-shrink-0 px-1 pt-1"})):e.status==="laiana"?(n(),t("img",{key:1,src:v(B),alt:"Laiana icon",class:"w-6 h-6 flex-shrink-0"},null,8,C)):(n(),i(b,u({key:2},e.icon,{name:f.value,class:["w-6 h-6 flex-shrink-0",{"text-brandBlue-500":e.status==="info","text-yellow-500":e.status==="warning","text-red-500":e.status==="error"}]}),null,16,["name","class"])),l("div",E,[e.html?(n(),t(c,{key:0},[e.title?(n(),t("span",{key:0,class:"font-semibold min-h-6",innerHTML:e.title},null,8,L)):a("",!0),e.description?(n(),t("span",{key:1,innerHTML:e.description},null,8,T)):a("",!0)],64)):(n(),t(c,{key:1},[e.title?(n(),t("span",x,d(e.title),1)):a("",!0),e.description?(n(),t("span",H,d(e.description),1)):a("",!0)],64))])]),e.action?(n(),i(w,u({key:0},e.action,{variant:e.action.variant??"tertiary",class:["flex-shrink-0",{underline:!e.action.variant||e.action.variant==="tertiary","text-red-700 hover:text-red-500 hover:bg-transparent active:text-red-500 active:bg-red-100":e.status==="error","text-yellow-700 hover:text-yellow-500 hover:bg-transparent active:text-yellow-500 active:bg-yellow-100":e.status==="warning","text-brandBlue-800 hover:text-brandBlue-500 hover:bg-transparent":e.status==="info","text-gray-900 hover:bg-gray-50 active:bg-gray-100":e.status==="laiana"}],label:(o=e.action)==null?void 0:o.label,onClick:(s=e.action)==null?void 0:s.onClick}),null,16,["variant","class","label","onClick"])):a("",!0)],6)}}});export{V as default,F as elInlineBannerStatuses};
1
+ import{defineComponent as p,computed as g,openBlock as t,createElementBlock as r,normalizeClass as y,normalizeStyle as v,createElementVNode as s,createBlock as a,unref as h,mergeProps as d,resolveDynamicComponent as w,withCtx as b,createTextVNode as u,toDisplayString as c,createCommentVNode as i,renderSlot as k}from"vue";import B from"./ElIcon.vue.esm2.js";import C from"./ElButton.vue.esm2.js";import I from"./ElSpinner.vue.esm2.js";import x from"./assets/laiana/laiana.png.esm.js";const E={class:"flex flex-row items-start gap-x-2 flex-grow basis-64"},$=["src"],N={class:"text-sm flex flex-col flex-grow mt-0.5"},S={key:1},F=["error","warning","info","laiana"],L=p({__name:"ElInlineBanner",props:{status:{default:"info"},title:{default:void 0},description:{default:void 0},loading:{type:Boolean},action:{default:void 0},icon:{default:void 0}},setup(f){const n=f,m=g(()=>{var e;if((e=n.icon)!=null&&e.name)return n.icon.name;switch(n.status){case"info":return"InformationCircleIcon";case"warning":return"ExclamationTriangleIcon";case"error":return"InformationCircleIcon";default:return"InformationCircleIcon"}});return(e,A)=>{var o,l;return t(),r("div",{class:y(["inline-flex flex-wrap items-center justify-center gap-x-2 gap-y-4 w-full min-w-72 p-4 rounded-md",{"bg-brandBlue-50 text-brandBlue-800":e.status==="info","bg-yellow-50 text-yellow-700":e.status==="warning","bg-red-50 text-red-700":e.status==="error","text-white":e.status==="laiana"}]),style:v(e.status==="laiana"?{background:"linear-gradient(to right, #AB5AE2, #A5B5F6)"}:{})},[s("div",E,[e.loading?(t(),a(I,{key:0,class:"flex-shrink-0 px-1 pt-1"})):e.status==="laiana"?(t(),r("img",{key:1,src:h(x),alt:"Laiana icon",class:"w-6 h-6 flex-shrink-0"},null,8,$)):(t(),a(B,d({key:2},e.icon,{name:m.value,class:["w-6 h-6 flex-shrink-0",{"text-brandBlue-500":e.status==="info","text-yellow-500":e.status==="warning","text-red-500":e.status==="error"}]}),null,16,["name","class"])),s("div",N,[e.title?(t(),a(w(typeof e.title=="string"?"span":e.title),{key:0,class:"font-semibold min-h-6"},{default:b(()=>[u(c(typeof e.title=="string"?e.title:""),1)]),_:1})):i("",!0),e.$slots.description||e.description?(t(),r("span",S,[k(e.$slots,"description",{},()=>[u(c(e.description),1)])])):i("",!0)])]),e.action?(t(),a(C,d({key:0},e.action,{variant:e.action.variant??"tertiary",class:["flex-shrink-0",{underline:!e.action.variant||e.action.variant==="tertiary","text-red-700 hover:text-red-500 hover:bg-transparent active:text-red-500 active:bg-red-100":e.status==="error","text-yellow-700 hover:text-yellow-500 hover:bg-transparent active:text-yellow-500 active:bg-yellow-100":e.status==="warning","text-brandBlue-800 hover:text-brandBlue-500 hover:bg-transparent":e.status==="info","text-gray-900 hover:bg-gray-50 active:bg-gray-100":e.status==="laiana"}],label:(o=e.action)==null?void 0:o.label,onClick:(l=e.action)==null?void 0:l.onClick}),null,16,["variant","class","label","onClick"])):i("",!0)],6)}}});export{L as default,F as elInlineBannerStatuses};
2
2
  //# sourceMappingURL=ElInlineBanner.vue.esm2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElInlineBanner.vue.esm2.js","sources":["../../src/ElInlineBanner.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elInlineBannerStatuses = ['error', 'warning', 'info', 'laiana'] as const;\nexport type ElInlineBannerStatuses = (typeof elInlineBannerStatuses)[number];\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport ElIcon from '@/ElIcon.vue';\nimport ElButton from '@/ElButton.vue';\nimport ElSpinner from '@/ElSpinner.vue';\nimport laianaIcon from '@/assets/laiana/laiana.png';\n\nconst props = withDefaults(\n defineProps<{\n status?: ElInlineBannerStatuses;\n title?: string;\n description: string;\n html?: boolean;\n loading?: boolean;\n action?: Pick<\n InstanceType<typeof ElButton>['$props'],\n 'label' | 'variant' | 'onClick' | 'icon' | 'iconRight' | 'loading' | 'loadOnClick'\n >;\n icon?: InstanceType<typeof ElIcon>['$props'];\n }>(),\n {\n status: 'info',\n title: undefined,\n action: undefined,\n icon: undefined,\n },\n);\n\nconst iconName = computed(() => {\n if (props.icon?.name) return props.icon.name;\n\n switch (props.status) {\n case 'info':\n return 'InformationCircleIcon';\n case 'warning':\n return 'ExclamationTriangleIcon';\n case 'error':\n return 'InformationCircleIcon';\n default:\n return 'InformationCircleIcon';\n }\n});\n</script>\n\n<template>\n <div\n class=\"inline-flex flex-wrap items-center justify-center gap-x-2 gap-y-4 w-full min-w-72 p-4 rounded-md\"\n :class=\"{\n 'bg-brandBlue-50 text-brandBlue-800': status === 'info',\n 'bg-yellow-50 text-yellow-700': status === 'warning',\n 'bg-red-50 text-red-700': status === 'error',\n 'text-white': status === 'laiana',\n }\"\n :style=\"status === 'laiana' ? { background: 'linear-gradient(to right, #AB5AE2, #A5B5F6)' } : {}\"\n >\n <div class=\"flex flex-row items-start gap-x-2 flex-grow basis-64\">\n <ElSpinner v-if=\"loading\" class=\"flex-shrink-0 px-1 pt-1\" />\n <img v-else-if=\"status === 'laiana'\" :src=\"laianaIcon\" alt=\"Laiana icon\" class=\"w-6 h-6 flex-shrink-0\" />\n <ElIcon\n v-else\n v-bind=\"icon\"\n :name=\"iconName\"\n class=\"w-6 h-6 flex-shrink-0\"\n :class=\"{\n 'text-brandBlue-500': status === 'info',\n 'text-yellow-500': status === 'warning',\n 'text-red-500': status === 'error',\n }\"\n />\n <div class=\"text-sm flex flex-col flex-grow mt-0.5\">\n <template v-if=\"!!html\">\n <span v-if=\"title\" class=\"font-semibold min-h-6\" v-html=\"title\"></span>\n <span v-if=\"description\" v-html=\"description\"></span>\n </template>\n <template v-else>\n <span v-if=\"title\" class=\"font-semibold min-h-6\">{{ title }}</span>\n <span v-if=\"description\">{{ description }}</span>\n </template>\n </div>\n </div>\n <ElButton\n v-if=\"action\"\n v-bind=\"action\"\n :variant=\"action.variant ?? 'tertiary'\"\n class=\"flex-shrink-0\"\n :class=\"{\n underline: !action.variant || action.variant === 'tertiary',\n 'text-red-700 hover:text-red-500 hover:bg-transparent active:text-red-500 active:bg-red-100': status === 'error',\n 'text-yellow-700 hover:text-yellow-500 hover:bg-transparent active:text-yellow-500 active:bg-yellow-100': status === 'warning',\n 'text-brandBlue-800 hover:text-brandBlue-500 hover:bg-transparent': status === 'info',\n\n 'text-gray-900 hover:bg-gray-50 active:bg-gray-100': status === 'laiana',\n }\"\n :label=\"action?.label\"\n @click=\"action?.onClick\"\n />\n </div>\n</template>\n"],"names":["elInlineBannerStatuses","props","__props","iconName","computed","_a"],"mappings":"0nBACaA,EAAyB,CAAC,QAAS,UAAW,OAAQ,QAAQ,uMAW3E,MAAMC,EAAQC,EAqBRC,EAAWC,EAAS,IAAM,OAC9B,IAAIC,EAAAJ,EAAM,OAAN,MAAAI,EAAY,KAAM,OAAOJ,EAAM,KAAK,KAExC,OAAQA,EAAM,OAAQ,CACpB,IAAK,OACI,MAAA,wBACT,IAAK,UACI,MAAA,0BACT,IAAK,QACI,MAAA,wBACT,QACS,MAAA,uBACX,CAAA,CACD"}
1
+ {"version":3,"file":"ElInlineBanner.vue.esm2.js","sources":["../../src/ElInlineBanner.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elInlineBannerStatuses = ['error', 'warning', 'info', 'laiana'] as const;\nexport type ElInlineBannerStatuses = (typeof elInlineBannerStatuses)[number];\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, type VNode } from 'vue';\nimport ElIcon from '@/ElIcon.vue';\nimport ElButton from '@/ElButton.vue';\nimport ElSpinner from '@/ElSpinner.vue';\nimport laianaIcon from '@/assets/laiana/laiana.png';\n\nconst props = withDefaults(\n defineProps<{\n status?: ElInlineBannerStatuses;\n title?: string | VNode;\n description?: string;\n loading?: boolean;\n action?: Pick<\n InstanceType<typeof ElButton>['$props'],\n 'label' | 'variant' | 'onClick' | 'icon' | 'iconRight' | 'loading' | 'loadOnClick'\n >;\n icon?: InstanceType<typeof ElIcon>['$props'];\n }>(),\n {\n status: 'info',\n title: undefined,\n description: undefined,\n action: undefined,\n icon: undefined,\n },\n);\n\nconst iconName = computed(() => {\n if (props.icon?.name) return props.icon.name;\n\n switch (props.status) {\n case 'info':\n return 'InformationCircleIcon';\n case 'warning':\n return 'ExclamationTriangleIcon';\n case 'error':\n return 'InformationCircleIcon';\n default:\n return 'InformationCircleIcon';\n }\n});\n</script>\n\n<template>\n <div\n class=\"inline-flex flex-wrap items-center justify-center gap-x-2 gap-y-4 w-full min-w-72 p-4 rounded-md\"\n :class=\"{\n 'bg-brandBlue-50 text-brandBlue-800': status === 'info',\n 'bg-yellow-50 text-yellow-700': status === 'warning',\n 'bg-red-50 text-red-700': status === 'error',\n 'text-white': status === 'laiana',\n }\"\n :style=\"status === 'laiana' ? { background: 'linear-gradient(to right, #AB5AE2, #A5B5F6)' } : {}\"\n >\n <div class=\"flex flex-row items-start gap-x-2 flex-grow basis-64\">\n <ElSpinner v-if=\"loading\" class=\"flex-shrink-0 px-1 pt-1\" />\n <img v-else-if=\"status === 'laiana'\" :src=\"laianaIcon\" alt=\"Laiana icon\" class=\"w-6 h-6 flex-shrink-0\" />\n <ElIcon\n v-else\n v-bind=\"icon\"\n :name=\"iconName\"\n class=\"w-6 h-6 flex-shrink-0\"\n :class=\"{\n 'text-brandBlue-500': status === 'info',\n 'text-yellow-500': status === 'warning',\n 'text-red-500': status === 'error',\n }\"\n />\n <div class=\"text-sm flex flex-col flex-grow mt-0.5\">\n <component :is=\"typeof title === 'string' ? 'span' : title\" v-if=\"title\" class=\"font-semibold min-h-6\">\n {{ typeof title === 'string' ? title : '' }}\n </component>\n <span v-if=\"$slots.description || description\">\n <slot name=\"description\">{{ description }}</slot>\n </span>\n </div>\n </div>\n <ElButton\n v-if=\"action\"\n v-bind=\"action\"\n :variant=\"action.variant ?? 'tertiary'\"\n class=\"flex-shrink-0\"\n :class=\"{\n underline: !action.variant || action.variant === 'tertiary',\n 'text-red-700 hover:text-red-500 hover:bg-transparent active:text-red-500 active:bg-red-100': status === 'error',\n 'text-yellow-700 hover:text-yellow-500 hover:bg-transparent active:text-yellow-500 active:bg-yellow-100': status === 'warning',\n 'text-brandBlue-800 hover:text-brandBlue-500 hover:bg-transparent': status === 'info',\n\n 'text-gray-900 hover:bg-gray-50 active:bg-gray-100': status === 'laiana',\n }\"\n :label=\"action?.label\"\n @click=\"action?.onClick\"\n />\n </div>\n</template>\n"],"names":["elInlineBannerStatuses","props","__props","iconName","computed","_a"],"mappings":"mnBACaA,EAAyB,CAAC,QAAS,UAAW,OAAQ,QAAQ,iMAW3E,MAAMC,EAAQC,EAqBRC,EAAWC,EAAS,IAAM,OAC9B,IAAIC,EAAAJ,EAAM,OAAN,MAAAI,EAAY,KAAM,OAAOJ,EAAM,KAAK,KAExC,OAAQA,EAAM,OAAQ,CACpB,IAAK,OACI,MAAA,wBACT,IAAK,UACI,MAAA,0BACT,IAAK,QACI,MAAA,wBACT,QACS,MAAA,uBACX,CAAA,CACD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),m=require("./_CustomTransition.vue.cjs2.js"),s=require("./ElClipToAnchor.vue.cjs2.js"),h=require("./composable/mobileComposable.cjs.js"),_={class:"font-semibold"},v={key:0,class:"mt-1"},y=s.elClipToAnchorPositions,T=e.defineComponent({__name:"ElTooltip",props:{title:{},content:{default:void 0},position:{default:"top"},delayTime:{default:200},hideOnChange:{type:Boolean,default:!1},hideOnMobile:{type:Boolean,default:!1}},setup(r){const o=r,i=e.ref(),n=e.ref(!1);let l;const{isMobile:u}=h.useMobile(),c=e.computed(()=>typeof o.delayTime=="string"&&isNaN(Number(o.delayTime))?200:Number(o.delayTime)),d=()=>{!o.title.length||o.hideOnMobile&&u.value||(l=setTimeout(()=>{l&&clearTimeout(l),n.value=!0},c.value))},p=()=>{n.value=!1,l&&clearTimeout(l)};return e.watch(()=>o.title,t=>{t.length||(n.value=!1)}),e.watch([()=>o.hideOnChange,()=>o.title],t=>{t[0]&&(n.value=!1)}),(t,f)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",{ref_key:"anchor",ref:i,onMouseenter:d,onMouseleave:p},[e.renderSlot(t.$slots,"default")],544),e.createVNode(m.default,{name:"slide-y-fade"},{default:e.withCtx(()=>[i.value&&n.value?(e.openBlock(),e.createBlock(s.default,{key:0,anchor:i.value,position:t.position,"distance-from-anchor":14,class:"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker"},{default:e.withCtx(()=>{var a;return[e.createElementVNode("p",_,e.toDisplayString(t.title),1),(a=t.content)!=null&&a.length?(e.openBlock(),e.createElementBlock("p",v,e.toDisplayString(t.content),1)):e.createCommentVNode("",!0)]}),_:1},8,["anchor","position"])):e.createCommentVNode("",!0)]),_:1})]))}});exports.default=T;exports.elTooltipPositions=y;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),m=require("./_CustomTransition.vue.cjs2.js"),s=require("./ElClipToAnchor.vue.cjs2.js"),h=require("./composable/mobileComposable.cjs.js"),v=s.elClipToAnchorPositions,_=e.defineComponent({__name:"ElTooltip",props:{title:{},content:{default:void 0},position:{default:"top"},delayTime:{default:200},hideOnChange:{type:Boolean,default:!1},hideOnMobile:{type:Boolean,default:!1},allowNewLines:{type:Boolean,default:!1}},setup(r){const o=r,a=e.ref(),l=e.ref(!1);let n;const{isMobile:u}=h.useMobile(),c=e.computed(()=>typeof o.delayTime=="string"&&isNaN(Number(o.delayTime))?200:Number(o.delayTime)),d=()=>{!o.title.length||o.hideOnMobile&&u.value||(n=setTimeout(()=>{n&&clearTimeout(n),l.value=!0},c.value))},p=()=>{l.value=!1,n&&clearTimeout(n)};return e.watch(()=>o.title,t=>{t.length||(l.value=!1)}),e.watch([()=>o.hideOnChange,()=>o.title],t=>{t[0]&&(l.value=!1)}),(t,f)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",{ref_key:"anchor",ref:a,onMouseenter:d,onMouseleave:p},[e.renderSlot(t.$slots,"default")],544),e.createVNode(m.default,{name:"slide-y-fade"},{default:e.withCtx(()=>[a.value&&l.value?(e.openBlock(),e.createBlock(s.default,{key:0,anchor:a.value,position:t.position,"distance-from-anchor":14,class:"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker"},{default:e.withCtx(()=>{var i;return[e.createElementVNode("p",{class:e.normalizeClass(["font-semibold",{"whitespace-pre-line":t.allowNewLines}])},e.toDisplayString(t.title),3),(i=t.content)!=null&&i.length?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(["mt-1",{"whitespace-pre-line":t.allowNewLines}])},e.toDisplayString(t.content),3)):e.createCommentVNode("",!0)]}),_:1},8,["anchor","position"])):e.createCommentVNode("",!0)]),_:1})]))}});exports.default=_;exports.elTooltipPositions=v;
2
2
  //# sourceMappingURL=ElTooltip.vue.cjs2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElTooltip.vue.cjs2.js","sources":["../../src/ElTooltip.vue"],"sourcesContent":["<script lang=\"ts\">\nimport ElClipToAnchor, { elClipToAnchorPositions } from '@/ElClipToAnchor.vue';\nimport { useMobile } from '@/composable/mobileComposable';\nexport const elTooltipPositions = elClipToAnchorPositions;\nexport type ElTooltipPosition = (typeof elTooltipPositions)[number];\n</script>\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue';\nimport CustomTransition from '@/_CustomTransition.vue';\n\nconst props = withDefaults(\n defineProps<{\n title: string;\n content?: string;\n position?: ElTooltipPosition;\n /** Time in ms before the tooltip appears */\n delayTime?: string | number;\n /** Hide tooltip when tooltip's title changes */\n hideOnChange?: boolean;\n hideOnMobile?: boolean;\n }>(),\n {\n content: undefined,\n position: 'top',\n delayTime: 200,\n hideOnChange: false,\n hideOnMobile: false,\n },\n);\n\nconst anchor = ref<HTMLElement>();\nconst show = ref(false);\nlet showDebounceTimeout: ReturnType<typeof setTimeout> | undefined;\n\nconst { isMobile } = useMobile();\n\nconst sanitizedDelayTime = computed(() =>\n typeof props.delayTime === 'string' && isNaN(Number(props.delayTime)) ? 200 : Number(props.delayTime),\n);\n\nconst onMouseEnter = () => {\n if (!props.title.length || (props.hideOnMobile && isMobile.value)) return;\n\n showDebounceTimeout = setTimeout(() => {\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n show.value = true;\n }, sanitizedDelayTime.value);\n};\n\nconst onMouseLeave = () => {\n show.value = false;\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n};\n\nwatch(\n () => props.title,\n v => {\n if (!v.length) show.value = false;\n },\n);\nwatch([() => props.hideOnChange, () => props.title], v => {\n const hideOnChange = v[0];\n if (hideOnChange) {\n show.value = false;\n }\n});\n</script>\n\n<template>\n <div>\n <div ref=\"anchor\" @mouseenter=\"onMouseEnter\" @mouseleave=\"onMouseLeave\">\n <slot></slot>\n </div>\n <CustomTransition name=\"slide-y-fade\">\n <ElClipToAnchor\n v-if=\"anchor && show\"\n :anchor=\"anchor\"\n :position=\"position\"\n :distance-from-anchor=\"14\"\n class=\"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker\"\n >\n <p class=\"font-semibold\">\n {{ title }}\n </p>\n <p v-if=\"content?.length\" class=\"mt-1\">{{ content }}</p>\n </ElClipToAnchor>\n </CustomTransition>\n </div>\n</template>\n"],"names":["elTooltipPositions","elClipToAnchorPositions","props","__props","anchor","ref","show","showDebounceTimeout","isMobile","useMobile","sanitizedDelayTime","computed","onMouseEnter","onMouseLeave","watch","v"],"mappings":"6TAGaA,EAAqBC,EAAA,kPAOlC,MAAMC,EAAQC,EAoBRC,EAASC,EAAAA,MACTC,EAAOD,MAAI,EAAK,EAClB,IAAAE,EAEE,KAAA,CAAE,SAAAC,GAAaC,EAAAA,YAEfC,EAAqBC,EAAA,SAAS,IAClC,OAAOT,EAAM,WAAc,UAAY,MAAM,OAAOA,EAAM,SAAS,CAAC,EAAI,IAAM,OAAOA,EAAM,SAAS,CAAA,EAGhGU,EAAe,IAAM,CACrB,CAACV,EAAM,MAAM,QAAWA,EAAM,cAAgBM,EAAS,QAE3DD,EAAsB,WAAW,IAAM,CACjCA,GAAqB,aAAaA,CAAmB,EACzDD,EAAK,MAAQ,EAAA,EACZI,EAAmB,KAAK,EAAA,EAGvBG,EAAe,IAAM,CACzBP,EAAK,MAAQ,GACTC,GAAqB,aAAaA,CAAmB,CAAA,EAG3DO,OAAAA,EAAA,MACE,IAAMZ,EAAM,MACPa,GAAA,CACEA,EAAE,SAAQT,EAAK,MAAQ,GAC9B,CAAA,EAEIQ,QAAA,CAAC,IAAMZ,EAAM,aAAc,IAAMA,EAAM,KAAK,EAAQa,GAAA,CACnCA,EAAE,CAAC,IAEtBT,EAAK,MAAQ,GACf,CACD"}
1
+ {"version":3,"file":"ElTooltip.vue.cjs2.js","sources":["../../src/ElTooltip.vue"],"sourcesContent":["<script lang=\"ts\">\nimport ElClipToAnchor, { elClipToAnchorPositions } from '@/ElClipToAnchor.vue';\nimport { useMobile } from '@/composable/mobileComposable';\nexport const elTooltipPositions = elClipToAnchorPositions;\nexport type ElTooltipPosition = (typeof elTooltipPositions)[number];\n</script>\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue';\nimport CustomTransition from '@/_CustomTransition.vue';\n\nconst props = withDefaults(\n defineProps<{\n title: string;\n content?: string;\n position?: ElTooltipPosition;\n /** Time in ms before the tooltip appears */\n delayTime?: string | number;\n /** Hide tooltip when tooltip's title changes */\n hideOnChange?: boolean;\n hideOnMobile?: boolean;\n allowNewLines?: boolean;\n }>(),\n {\n content: undefined,\n position: 'top',\n delayTime: 200,\n hideOnChange: false,\n hideOnMobile: false,\n allowNewLines: false,\n },\n);\n\nconst anchor = ref<HTMLElement>();\nconst show = ref(false);\nlet showDebounceTimeout: ReturnType<typeof setTimeout> | undefined;\n\nconst { isMobile } = useMobile();\n\nconst sanitizedDelayTime = computed(() =>\n typeof props.delayTime === 'string' && isNaN(Number(props.delayTime)) ? 200 : Number(props.delayTime),\n);\n\nconst onMouseEnter = () => {\n if (!props.title.length || (props.hideOnMobile && isMobile.value)) return;\n\n showDebounceTimeout = setTimeout(() => {\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n show.value = true;\n }, sanitizedDelayTime.value);\n};\n\nconst onMouseLeave = () => {\n show.value = false;\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n};\n\nwatch(\n () => props.title,\n v => {\n if (!v.length) show.value = false;\n },\n);\nwatch([() => props.hideOnChange, () => props.title], v => {\n const hideOnChange = v[0];\n if (hideOnChange) {\n show.value = false;\n }\n});\n</script>\n\n<template>\n <div>\n <div ref=\"anchor\" @mouseenter=\"onMouseEnter\" @mouseleave=\"onMouseLeave\">\n <slot></slot>\n </div>\n <CustomTransition name=\"slide-y-fade\">\n <ElClipToAnchor\n v-if=\"anchor && show\"\n :anchor=\"anchor\"\n :position=\"position\"\n :distance-from-anchor=\"14\"\n class=\"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker\"\n >\n <p class=\"font-semibold\" :class=\"{ 'whitespace-pre-line': allowNewLines }\">\n {{ title }}\n </p>\n <p v-if=\"content?.length\" class=\"mt-1\" :class=\"{ 'whitespace-pre-line': allowNewLines }\">{{ content }}</p>\n </ElClipToAnchor>\n </CustomTransition>\n </div>\n</template>\n"],"names":["elTooltipPositions","elClipToAnchorPositions","props","__props","anchor","ref","show","showDebounceTimeout","isMobile","useMobile","sanitizedDelayTime","computed","onMouseEnter","onMouseLeave","watch","v"],"mappings":"4QAGaA,EAAqBC,EAAA,0RAOlC,MAAMC,EAAQC,EAsBRC,EAASC,EAAAA,MACTC,EAAOD,MAAI,EAAK,EAClB,IAAAE,EAEE,KAAA,CAAE,SAAAC,GAAaC,EAAAA,YAEfC,EAAqBC,EAAA,SAAS,IAClC,OAAOT,EAAM,WAAc,UAAY,MAAM,OAAOA,EAAM,SAAS,CAAC,EAAI,IAAM,OAAOA,EAAM,SAAS,CAAA,EAGhGU,EAAe,IAAM,CACrB,CAACV,EAAM,MAAM,QAAWA,EAAM,cAAgBM,EAAS,QAE3DD,EAAsB,WAAW,IAAM,CACjCA,GAAqB,aAAaA,CAAmB,EACzDD,EAAK,MAAQ,EAAA,EACZI,EAAmB,KAAK,EAAA,EAGvBG,EAAe,IAAM,CACzBP,EAAK,MAAQ,GACTC,GAAqB,aAAaA,CAAmB,CAAA,EAG3DO,OAAAA,EAAA,MACE,IAAMZ,EAAM,MACPa,GAAA,CACEA,EAAE,SAAQT,EAAK,MAAQ,GAC9B,CAAA,EAEIQ,QAAA,CAAC,IAAMZ,EAAM,aAAc,IAAMA,EAAM,KAAK,EAAQa,GAAA,CACnCA,EAAE,CAAC,IAEtBT,EAAK,MAAQ,GACf,CACD"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as g,ref as s,computed as b,watch as r,openBlock as a,createElementBlock as u,createElementVNode as d,renderSlot as C,createVNode as M,withCtx as c,createBlock as k,toDisplayString as f,createCommentVNode as m}from"vue";import N from"./_CustomTransition.vue.esm2.js";import w,{elClipToAnchorPositions as O}from"./ElClipToAnchor.vue.esm2.js";import{useMobile as B}from"./composable/mobileComposable.esm.js";const E={class:"font-semibold"},x={key:0,class:"mt-1"},S=O,z=g({__name:"ElTooltip",props:{title:{},content:{default:void 0},position:{default:"top"},delayTime:{default:200},hideOnChange:{type:Boolean,default:!1},hideOnMobile:{type:Boolean,default:!1}},setup(p){const t=p,l=s(),o=s(!1);let n;const{isMobile:h}=B(),v=b(()=>typeof t.delayTime=="string"&&isNaN(Number(t.delayTime))?200:Number(t.delayTime)),y=()=>{!t.title.length||t.hideOnMobile&&h.value||(n=setTimeout(()=>{n&&clearTimeout(n),o.value=!0},v.value))},T=()=>{o.value=!1,n&&clearTimeout(n)};return r(()=>t.title,e=>{e.length||(o.value=!1)}),r([()=>t.hideOnChange,()=>t.title],e=>{e[0]&&(o.value=!1)}),(e,_)=>(a(),u("div",null,[d("div",{ref_key:"anchor",ref:l,onMouseenter:y,onMouseleave:T},[C(e.$slots,"default")],544),M(N,{name:"slide-y-fade"},{default:c(()=>[l.value&&o.value?(a(),k(w,{key:0,anchor:l.value,position:e.position,"distance-from-anchor":14,class:"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker"},{default:c(()=>{var i;return[d("p",E,f(e.title),1),(i=e.content)!=null&&i.length?(a(),u("p",x,f(e.content),1)):m("",!0)]}),_:1},8,["anchor","position"])):m("",!0)]),_:1})]))}});export{z as default,S as elTooltipPositions};
1
+ import{defineComponent as N,ref as s,computed as b,watch as r,openBlock as a,createElementBlock as u,createElementVNode as d,renderSlot as C,createVNode as M,withCtx as c,createBlock as k,normalizeClass as f,toDisplayString as m,createCommentVNode as p}from"vue";import B from"./_CustomTransition.vue.esm2.js";import O,{elClipToAnchorPositions as _}from"./ElClipToAnchor.vue.esm2.js";import{useMobile as E}from"./composable/mobileComposable.esm.js";const z=_,P=N({__name:"ElTooltip",props:{title:{},content:{default:void 0},position:{default:"top"},delayTime:{default:200},hideOnChange:{type:Boolean,default:!1},hideOnMobile:{type:Boolean,default:!1},allowNewLines:{type:Boolean,default:!1}},setup(h){const o=h,n=s(),t=s(!1);let l;const{isMobile:v}=E(),w=b(()=>typeof o.delayTime=="string"&&isNaN(Number(o.delayTime))?200:Number(o.delayTime)),y=()=>{!o.title.length||o.hideOnMobile&&v.value||(l=setTimeout(()=>{l&&clearTimeout(l),t.value=!0},w.value))},T=()=>{t.value=!1,l&&clearTimeout(l)};return r(()=>o.title,e=>{e.length||(t.value=!1)}),r([()=>o.hideOnChange,()=>o.title],e=>{e[0]&&(t.value=!1)}),(e,g)=>(a(),u("div",null,[d("div",{ref_key:"anchor",ref:n,onMouseenter:y,onMouseleave:T},[C(e.$slots,"default")],544),M(B,{name:"slide-y-fade"},{default:c(()=>[n.value&&t.value?(a(),k(O,{key:0,anchor:n.value,position:e.position,"distance-from-anchor":14,class:"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker"},{default:c(()=>{var i;return[d("p",{class:f(["font-semibold",{"whitespace-pre-line":e.allowNewLines}])},m(e.title),3),(i=e.content)!=null&&i.length?(a(),u("p",{key:0,class:f(["mt-1",{"whitespace-pre-line":e.allowNewLines}])},m(e.content),3)):p("",!0)]}),_:1},8,["anchor","position"])):p("",!0)]),_:1})]))}});export{P as default,z as elTooltipPositions};
2
2
  //# sourceMappingURL=ElTooltip.vue.esm2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElTooltip.vue.esm2.js","sources":["../../src/ElTooltip.vue"],"sourcesContent":["<script lang=\"ts\">\nimport ElClipToAnchor, { elClipToAnchorPositions } from '@/ElClipToAnchor.vue';\nimport { useMobile } from '@/composable/mobileComposable';\nexport const elTooltipPositions = elClipToAnchorPositions;\nexport type ElTooltipPosition = (typeof elTooltipPositions)[number];\n</script>\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue';\nimport CustomTransition from '@/_CustomTransition.vue';\n\nconst props = withDefaults(\n defineProps<{\n title: string;\n content?: string;\n position?: ElTooltipPosition;\n /** Time in ms before the tooltip appears */\n delayTime?: string | number;\n /** Hide tooltip when tooltip's title changes */\n hideOnChange?: boolean;\n hideOnMobile?: boolean;\n }>(),\n {\n content: undefined,\n position: 'top',\n delayTime: 200,\n hideOnChange: false,\n hideOnMobile: false,\n },\n);\n\nconst anchor = ref<HTMLElement>();\nconst show = ref(false);\nlet showDebounceTimeout: ReturnType<typeof setTimeout> | undefined;\n\nconst { isMobile } = useMobile();\n\nconst sanitizedDelayTime = computed(() =>\n typeof props.delayTime === 'string' && isNaN(Number(props.delayTime)) ? 200 : Number(props.delayTime),\n);\n\nconst onMouseEnter = () => {\n if (!props.title.length || (props.hideOnMobile && isMobile.value)) return;\n\n showDebounceTimeout = setTimeout(() => {\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n show.value = true;\n }, sanitizedDelayTime.value);\n};\n\nconst onMouseLeave = () => {\n show.value = false;\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n};\n\nwatch(\n () => props.title,\n v => {\n if (!v.length) show.value = false;\n },\n);\nwatch([() => props.hideOnChange, () => props.title], v => {\n const hideOnChange = v[0];\n if (hideOnChange) {\n show.value = false;\n }\n});\n</script>\n\n<template>\n <div>\n <div ref=\"anchor\" @mouseenter=\"onMouseEnter\" @mouseleave=\"onMouseLeave\">\n <slot></slot>\n </div>\n <CustomTransition name=\"slide-y-fade\">\n <ElClipToAnchor\n v-if=\"anchor && show\"\n :anchor=\"anchor\"\n :position=\"position\"\n :distance-from-anchor=\"14\"\n class=\"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker\"\n >\n <p class=\"font-semibold\">\n {{ title }}\n </p>\n <p v-if=\"content?.length\" class=\"mt-1\">{{ content }}</p>\n </ElClipToAnchor>\n </CustomTransition>\n </div>\n</template>\n"],"names":["elTooltipPositions","elClipToAnchorPositions","props","__props","anchor","ref","show","showDebounceTimeout","isMobile","useMobile","sanitizedDelayTime","computed","onMouseEnter","onMouseLeave","watch","v"],"mappings":"oeAGaA,EAAqBC,4MAOlC,MAAMC,EAAQC,EAoBRC,EAASC,IACTC,EAAOD,EAAI,EAAK,EAClB,IAAAE,EAEE,KAAA,CAAE,SAAAC,GAAaC,IAEfC,EAAqBC,EAAS,IAClC,OAAOT,EAAM,WAAc,UAAY,MAAM,OAAOA,EAAM,SAAS,CAAC,EAAI,IAAM,OAAOA,EAAM,SAAS,CAAA,EAGhGU,EAAe,IAAM,CACrB,CAACV,EAAM,MAAM,QAAWA,EAAM,cAAgBM,EAAS,QAE3DD,EAAsB,WAAW,IAAM,CACjCA,GAAqB,aAAaA,CAAmB,EACzDD,EAAK,MAAQ,EAAA,EACZI,EAAmB,KAAK,EAAA,EAGvBG,EAAe,IAAM,CACzBP,EAAK,MAAQ,GACTC,GAAqB,aAAaA,CAAmB,CAAA,EAG3D,OAAAO,EACE,IAAMZ,EAAM,MACPa,GAAA,CACEA,EAAE,SAAQT,EAAK,MAAQ,GAC9B,CAAA,EAEIQ,EAAA,CAAC,IAAMZ,EAAM,aAAc,IAAMA,EAAM,KAAK,EAAQa,GAAA,CACnCA,EAAE,CAAC,IAEtBT,EAAK,MAAQ,GACf,CACD"}
1
+ {"version":3,"file":"ElTooltip.vue.esm2.js","sources":["../../src/ElTooltip.vue"],"sourcesContent":["<script lang=\"ts\">\nimport ElClipToAnchor, { elClipToAnchorPositions } from '@/ElClipToAnchor.vue';\nimport { useMobile } from '@/composable/mobileComposable';\nexport const elTooltipPositions = elClipToAnchorPositions;\nexport type ElTooltipPosition = (typeof elTooltipPositions)[number];\n</script>\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue';\nimport CustomTransition from '@/_CustomTransition.vue';\n\nconst props = withDefaults(\n defineProps<{\n title: string;\n content?: string;\n position?: ElTooltipPosition;\n /** Time in ms before the tooltip appears */\n delayTime?: string | number;\n /** Hide tooltip when tooltip's title changes */\n hideOnChange?: boolean;\n hideOnMobile?: boolean;\n allowNewLines?: boolean;\n }>(),\n {\n content: undefined,\n position: 'top',\n delayTime: 200,\n hideOnChange: false,\n hideOnMobile: false,\n allowNewLines: false,\n },\n);\n\nconst anchor = ref<HTMLElement>();\nconst show = ref(false);\nlet showDebounceTimeout: ReturnType<typeof setTimeout> | undefined;\n\nconst { isMobile } = useMobile();\n\nconst sanitizedDelayTime = computed(() =>\n typeof props.delayTime === 'string' && isNaN(Number(props.delayTime)) ? 200 : Number(props.delayTime),\n);\n\nconst onMouseEnter = () => {\n if (!props.title.length || (props.hideOnMobile && isMobile.value)) return;\n\n showDebounceTimeout = setTimeout(() => {\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n show.value = true;\n }, sanitizedDelayTime.value);\n};\n\nconst onMouseLeave = () => {\n show.value = false;\n if (showDebounceTimeout) clearTimeout(showDebounceTimeout);\n};\n\nwatch(\n () => props.title,\n v => {\n if (!v.length) show.value = false;\n },\n);\nwatch([() => props.hideOnChange, () => props.title], v => {\n const hideOnChange = v[0];\n if (hideOnChange) {\n show.value = false;\n }\n});\n</script>\n\n<template>\n <div>\n <div ref=\"anchor\" @mouseenter=\"onMouseEnter\" @mouseleave=\"onMouseLeave\">\n <slot></slot>\n </div>\n <CustomTransition name=\"slide-y-fade\">\n <ElClipToAnchor\n v-if=\"anchor && show\"\n :anchor=\"anchor\"\n :position=\"position\"\n :distance-from-anchor=\"14\"\n class=\"max-w-96 rounded-2xl bg-neutral-100 p-3 text-xs drop-shadow text-neutral-darker\"\n >\n <p class=\"font-semibold\" :class=\"{ 'whitespace-pre-line': allowNewLines }\">\n {{ title }}\n </p>\n <p v-if=\"content?.length\" class=\"mt-1\" :class=\"{ 'whitespace-pre-line': allowNewLines }\">{{ content }}</p>\n </ElClipToAnchor>\n </CustomTransition>\n </div>\n</template>\n"],"names":["elTooltipPositions","elClipToAnchorPositions","props","__props","anchor","ref","show","showDebounceTimeout","isMobile","useMobile","sanitizedDelayTime","computed","onMouseEnter","onMouseLeave","watch","v"],"mappings":"icAGO,MAAMA,EAAqBC,oPAOlC,MAAMC,EAAQC,EAsBRC,EAASC,IACTC,EAAOD,EAAI,EAAK,EAClB,IAAAE,EAEE,KAAA,CAAE,SAAAC,GAAaC,IAEfC,EAAqBC,EAAS,IAClC,OAAOT,EAAM,WAAc,UAAY,MAAM,OAAOA,EAAM,SAAS,CAAC,EAAI,IAAM,OAAOA,EAAM,SAAS,CAAA,EAGhGU,EAAe,IAAM,CACrB,CAACV,EAAM,MAAM,QAAWA,EAAM,cAAgBM,EAAS,QAE3DD,EAAsB,WAAW,IAAM,CACjCA,GAAqB,aAAaA,CAAmB,EACzDD,EAAK,MAAQ,EAAA,EACZI,EAAmB,KAAK,EAAA,EAGvBG,EAAe,IAAM,CACzBP,EAAK,MAAQ,GACTC,GAAqB,aAAaA,CAAmB,CAAA,EAG3D,OAAAO,EACE,IAAMZ,EAAM,MACPa,GAAA,CACEA,EAAE,SAAQT,EAAK,MAAQ,GAC9B,CAAA,EAEIQ,EAAA,CAAC,IAAMZ,EAAM,aAAc,IAAMA,EAAM,KAAK,EAAQa,GAAA,CACnCA,EAAE,CAAC,IAEtBT,EAAK,MAAQ,GACf,CACD"}