@davincihealthcare/elty-design-system-vue 1.88.0 → 1.89.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.
Files changed (39) hide show
  1. package/dist/ElInlineBanner.vue.d.ts +1 -1
  2. package/dist/ElModal.vue.d.ts +0 -7
  3. package/dist/composable/useModalStack.d.ts +4 -0
  4. package/dist/laiana.png +0 -0
  5. package/dist/src/ElActionButton.vue.cjs2.js +1 -1
  6. package/dist/src/ElActionButton.vue.cjs2.js.map +1 -1
  7. package/dist/src/ElActionButton.vue.esm2.js +1 -1
  8. package/dist/src/ElActionButton.vue.esm2.js.map +1 -1
  9. package/dist/src/ElCarousel.vue.cjs2.js +1 -1
  10. package/dist/src/ElCarousel.vue.cjs2.js.map +1 -1
  11. package/dist/src/ElCarousel.vue.esm2.js +1 -1
  12. package/dist/src/ElCarousel.vue.esm2.js.map +1 -1
  13. package/dist/src/ElContainerTemplate.vue.cjs2.js +1 -1
  14. package/dist/src/ElContainerTemplate.vue.cjs2.js.map +1 -1
  15. package/dist/src/ElContainerTemplate.vue.esm2.js +1 -1
  16. package/dist/src/ElContainerTemplate.vue.esm2.js.map +1 -1
  17. package/dist/src/ElInlineBanner.vue.cjs2.js +1 -1
  18. package/dist/src/ElInlineBanner.vue.cjs2.js.map +1 -1
  19. package/dist/src/ElInlineBanner.vue.esm2.js +1 -1
  20. package/dist/src/ElInlineBanner.vue.esm2.js.map +1 -1
  21. package/dist/src/ElModal.vue.cjs2.js +1 -1
  22. package/dist/src/ElModal.vue.cjs2.js.map +1 -1
  23. package/dist/src/ElModal.vue.esm2.js +1 -1
  24. package/dist/src/ElModal.vue.esm2.js.map +1 -1
  25. package/dist/src/assets/laiana/laiana.png.cjs.js +2 -0
  26. package/dist/src/assets/laiana/laiana.png.cjs.js.map +1 -0
  27. package/dist/src/assets/laiana/laiana.png.esm.js +2 -0
  28. package/dist/src/assets/laiana/laiana.png.esm.js.map +1 -0
  29. package/dist/src/composable/useModalStack.cjs.js +2 -0
  30. package/dist/src/composable/useModalStack.cjs.js.map +1 -0
  31. package/dist/src/composable/useModalStack.esm.js +2 -0
  32. package/dist/src/composable/useModalStack.esm.js.map +1 -0
  33. package/dist/src/forms/ElInputSearch.vue.cjs2.js +1 -1
  34. package/dist/src/forms/ElInputSearch.vue.cjs2.js.map +1 -1
  35. package/dist/src/forms/ElInputSearch.vue.esm2.js +1 -1
  36. package/dist/src/forms/ElInputSearch.vue.esm2.js.map +1 -1
  37. package/dist/src/style.cjs +1 -1
  38. package/dist/src/style.css +1 -1
  39. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { default as ElButton } from './ElButton.vue';
2
2
  import { default as ElIcon } from './ElIcon.vue';
3
3
 
4
- export declare const elInlineBannerStatuses: readonly ["error", "warning", "info"];
4
+ export declare const elInlineBannerStatuses: readonly ["error", "warning", "info", "laiana"];
5
5
  export type ElInlineBannerStatuses = (typeof elInlineBannerStatuses)[number];
6
6
  declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
7
7
  status?: ElInlineBannerStatuses;
@@ -10,7 +10,6 @@ export interface ElModalProps {
10
10
  primaryAction: Omit<InstanceType<typeof ElButton>['$props'], 'size' | 'variant'>;
11
11
  secondaryAction?: Omit<InstanceType<typeof ElButton>['$props'], 'size' | 'variant'>;
12
12
  tertiaryAction?: Omit<InstanceType<typeof ElButton>['$props'], 'size' | 'variant'>;
13
- isNestedModal?: boolean;
14
13
  }
15
14
  export declare const elModalSizes: readonly ["xs", "m", "l", "xl"];
16
15
  export type ElModalSize = (typeof elModalSizes)[number];
@@ -301,9 +300,6 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
301
300
  }>>, "type" | "size" | "label" | "onClick" | "disabled" | "icon" | "error" | "dark" | "loading" | "variant" | "loadOnClick">, "size" | "variant">>;
302
301
  default: undefined;
303
302
  };
304
- isNestedModal: {
305
- type: import('vue').PropType<boolean>;
306
- };
307
303
  }, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
308
304
  closed: () => void;
309
305
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
@@ -585,9 +581,6 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
585
581
  }>>, "type" | "size" | "label" | "onClick" | "disabled" | "icon" | "error" | "dark" | "loading" | "variant" | "loadOnClick">, "size" | "variant">>;
586
582
  default: undefined;
587
583
  };
588
- isNestedModal: {
589
- type: import('vue').PropType<boolean>;
590
- };
591
584
  }>> & {
592
585
  onClosed?: (() => any) | undefined;
593
586
  }, {
@@ -0,0 +1,4 @@
1
+ export declare function useModalStack(): {
2
+ registerModal: () => void;
3
+ unregisterModal: () => void;
4
+ };
Binary file
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");;/* empty css */require("./polyfills.cjs.js");require("vee-validate");require("../node_modules/codice-fiscale-js/dist/codice.fiscale.commonjs2.cjs.js");require("../node_modules/lodash/lodash.cjs.js");require("./tailwind.plugin.cjs.js");require("../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.cjs.js");const s=require("./ElIcon.vue.cjs2.js"),c=require("./ElBadge.vue.cjs2.js");require("./forms/ElInputSelect.vue.cjs2.js");require("./forms/ElInputText.vue.cjs2.js");require("./forms/ElInputCheckbox.vue.cjs2.js");require("./forms/ElInputDate.vue.cjs2.js");require("./forms/ElInputFile.vue.cjs2.js");require("./forms/ElInputMeasureUnit.vue.cjs2.js");require("./forms/ElInputNumber.vue.cjs2.js");require("./forms/ElInputPhone.vue.cjs2.js");require("./forms/ElInputTextarea.vue.cjs2.js");require("./ElToast.vue.cjs2.js");require("./forms/ElInputRadioButton.vue.cjs2.js");require("../node_modules/swiper/shared/swiper-core.cjs.js");require("./forms/ElInputSearch.vue.cjs2.js");const d=["data-cy"],p={key:2,class:"h-4 ml-1 relative flex justify-center items-start"},v=["base","l"],m=["primary","secondary"],f=["default","hover","pressed","active"],b=e.defineComponent({__name:"ElActionButton",props:{id:{default:void 0},label:{},size:{default:"base"},color:{default:"primary"},status:{default:"default"},leadingIcon:{default:void 0},trailingIcon:{default:void 0},badge:{default:void 0},onClick:{type:Function,default:void 0}},emits:["click"],setup(l,{emit:i}){const t=l,n=()=>{a.value=!0,u("click",t.onClick)},a=e.ref(t.status==="pressed"),u=i;return(r,o)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["transition-colors w-fit border flex flex-1 justify-center items-center gap-1 font-semibold leading-6 rounded-lg px-3 hover:bg-neutral-hover hover:text-neutral-darker active:bg-neutral-pressed",{"text-sm h-8":t.size==="base","text-base h-10":t.size==="l","border-transparent text-neutral-darker":t.status==="default","border-transparent text-neutral-darker bg-neutral-hover":t.status==="hover","border-transparent bg-neutral-pressed ":(a.value||t.status==="pressed")&&t.status!=="active"&&t.status!=="default"&&t.status!=="hover","text-primary-active bg-primary-light-active border-primary-active":t.status==="active"&&t.color==="primary","text-secondary-active bg-secondary-light-active border-secondary-active":t.status==="active"&&t.color==="secondary"}]),"data-cy":t.label?t.label.trim().replace(/\s+/g,""):"default-action-button",onMouseDown:o[0]||(o[0]=g=>a.value=!0),onClick:n},[r.leadingIcon?(e.openBlock(),e.createBlock(e.unref(s.default),e.mergeProps({key:0},r.leadingIcon,{class:{"h-4 w-4":r.size==="base","h-5 w-5":r.size==="l"}}),null,16,["class"])):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(t.label),1),r.trailingIcon?(e.openBlock(),e.createBlock(e.unref(s.default),e.mergeProps({key:1},r.trailingIcon,{class:{"h-4 w-4":r.size==="base","h-5 w-5":r.size==="l"}}),null,16,["class"])):e.createCommentVNode("",!0),r.badge?(e.openBlock(),e.createElementBlock("div",p,[e.createVNode(e.unref(c.default),e.mergeProps(r.badge,{color:"red"}),null,16)])):e.createCommentVNode("",!0)],42,d))}});exports.default=b;exports.elActionButtonColors=m;exports.elActionButtonSizes=v;exports.elActionButtonStatus=f;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");;/* empty css */require("./polyfills.cjs.js");require("vee-validate");require("../node_modules/codice-fiscale-js/dist/codice.fiscale.commonjs2.cjs.js");require("../node_modules/lodash/lodash.cjs.js");require("./tailwind.plugin.cjs.js");require("../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.cjs.js");const s=require("./ElIcon.vue.cjs2.js"),c=require("./ElBadge.vue.cjs2.js");require("./forms/ElInputSelect.vue.cjs2.js");require("./forms/ElInputText.vue.cjs2.js");require("./forms/ElInputCheckbox.vue.cjs2.js");require("./forms/ElInputDate.vue.cjs2.js");require("./forms/ElInputFile.vue.cjs2.js");require("./forms/ElInputMeasureUnit.vue.cjs2.js");require("./forms/ElInputNumber.vue.cjs2.js");require("./forms/ElInputPhone.vue.cjs2.js");require("./forms/ElInputTextarea.vue.cjs2.js");require("./ElToast.vue.cjs2.js");require("./forms/ElInputRadioButton.vue.cjs2.js");require("./composable/useModalStack.cjs.js");require("../node_modules/swiper/shared/swiper-core.cjs.js");require("./forms/ElInputSearch.vue.cjs2.js");const d=["data-cy"],p={key:2,class:"h-4 ml-1 relative flex justify-center items-start"},v=["base","l"],m=["primary","secondary"],f=["default","hover","pressed","active"],b=e.defineComponent({__name:"ElActionButton",props:{id:{default:void 0},label:{},size:{default:"base"},color:{default:"primary"},status:{default:"default"},leadingIcon:{default:void 0},trailingIcon:{default:void 0},badge:{default:void 0},onClick:{type:Function,default:void 0}},emits:["click"],setup(l,{emit:i}){const t=l,n=()=>{a.value=!0,u("click",t.onClick)},a=e.ref(t.status==="pressed"),u=i;return(r,o)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["transition-colors w-fit border flex flex-1 justify-center items-center gap-1 font-semibold leading-6 rounded-lg px-3 hover:bg-neutral-hover hover:text-neutral-darker active:bg-neutral-pressed",{"text-sm h-8":t.size==="base","text-base h-10":t.size==="l","border-transparent text-neutral-darker":t.status==="default","border-transparent text-neutral-darker bg-neutral-hover":t.status==="hover","border-transparent bg-neutral-pressed ":(a.value||t.status==="pressed")&&t.status!=="active"&&t.status!=="default"&&t.status!=="hover","text-primary-active bg-primary-light-active border-primary-active":t.status==="active"&&t.color==="primary","text-secondary-active bg-secondary-light-active border-secondary-active":t.status==="active"&&t.color==="secondary"}]),"data-cy":t.label?t.label.trim().replace(/\s+/g,""):"default-action-button",onMouseDown:o[0]||(o[0]=g=>a.value=!0),onClick:n},[r.leadingIcon?(e.openBlock(),e.createBlock(e.unref(s.default),e.mergeProps({key:0},r.leadingIcon,{class:{"h-4 w-4":r.size==="base","h-5 w-5":r.size==="l"}}),null,16,["class"])):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(t.label),1),r.trailingIcon?(e.openBlock(),e.createBlock(e.unref(s.default),e.mergeProps({key:1},r.trailingIcon,{class:{"h-4 w-4":r.size==="base","h-5 w-5":r.size==="l"}}),null,16,["class"])):e.createCommentVNode("",!0),r.badge?(e.openBlock(),e.createElementBlock("div",p,[e.createVNode(e.unref(c.default),e.mergeProps(r.badge,{color:"red"}),null,16)])):e.createCommentVNode("",!0)],42,d))}});exports.default=b;exports.elActionButtonColors=m;exports.elActionButtonSizes=v;exports.elActionButtonStatus=f;
2
2
  //# sourceMappingURL=ElActionButton.vue.cjs2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElActionButton.vue.cjs2.js","sources":["../../src/ElActionButton.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elActionButtonSizes = ['base', 'l'] as const;\nexport type ElActionButtonSizes = (typeof elActionButtonSizes)[number];\n\nexport const elActionButtonColors = ['primary', 'secondary'] as const;\nexport type ElActionButtonColors = (typeof elActionButtonColors)[number];\n\nexport const elActionButtonStatus = ['default', 'hover', 'pressed', 'active'] as const;\nexport type ElActionButtonStatus = (typeof elActionButtonStatus)[number];\n</script>\n\n<script setup lang=\"ts\">\nimport { ElBadge, ElIcon } from '.';\nimport { ref } from 'vue';\n\nexport interface ActionButtonProps {\n id?: string;\n label: string;\n size: ElActionButtonSizes;\n color: ElActionButtonColors;\n status: ElActionButtonStatus;\n leadingIcon?: InstanceType<typeof ElIcon>['$props'];\n trailingIcon?: InstanceType<typeof ElIcon>['$props'] & { name: 'ChevronDownIcon' };\n badge?: Omit<InstanceType<typeof ElBadge>['$props'], 'badge'>;\n onClick?: (() => unknown) | (() => Promise<unknown>);\n}\n\nconst props = withDefaults(defineProps<ActionButtonProps>(), {\n id: undefined,\n size: 'base',\n color: 'primary',\n status: 'default',\n leadingIcon: undefined,\n trailingIcon: undefined,\n badge: undefined,\n onClick: undefined,\n});\n\nconst onClick = () => {\n isPressed.value = true;\n $emits('click', props.onClick);\n};\n\nconst isPressed = ref<boolean>(props.status === 'pressed');\nconst $emits = defineEmits(['click']);\n</script>\n\n<template>\n <button\n class=\"transition-colors w-fit border flex flex-1 justify-center items-center gap-1 font-semibold leading-6 rounded-lg px-3 hover:bg-neutral-hover hover:text-neutral-darker active:bg-neutral-pressed\"\n :class=\"{\n 'text-sm h-8': props.size === 'base',\n 'text-base h-10': props.size === 'l',\n 'border-transparent text-neutral-darker': props.status === 'default',\n 'border-transparent text-neutral-darker bg-neutral-hover': props.status === 'hover',\n 'border-transparent bg-neutral-pressed ':\n (isPressed || props.status === 'pressed') && props.status !== 'active' && props.status !== 'default' && props.status !== 'hover',\n 'text-primary-active bg-primary-light-active border-primary-active': props.status === 'active' && props.color === 'primary',\n 'text-secondary-active bg-secondary-light-active border-secondary-active': props.status === 'active' && props.color === 'secondary',\n }\"\n :data-cy=\"props.label ? props.label.trim().replace(/\\s+/g, '') : 'default-action' + '-button'\"\n @mouse-down=\"isPressed = true\"\n @click=\"onClick\"\n >\n <ElIcon\n v-if=\"leadingIcon\"\n v-bind=\"leadingIcon\"\n :class=\"{\n 'h-4 w-4': size === 'base',\n 'h-5 w-5': size === 'l',\n }\"\n />\n <span> {{ props.label }}</span>\n <ElIcon\n v-if=\"trailingIcon\"\n v-bind=\"trailingIcon\"\n :class=\"{\n 'h-4 w-4': size === 'base',\n 'h-5 w-5': size === 'l',\n }\"\n />\n <div v-if=\"badge\" class=\"h-4 ml-1 relative flex justify-center items-start\">\n <ElBadge v-bind=\"badge\" color=\"red\" />\n </div>\n </button>\n</template>\n"],"names":["elActionButtonSizes","elActionButtonColors","elActionButtonStatus","props","__props","onClick","isPressed","$emits","ref","__emit"],"mappings":"ktCACaA,EAAsB,CAAC,OAAQ,GAAG,EAGlCC,EAAuB,CAAC,UAAW,WAAW,EAG9CC,EAAuB,CAAC,UAAW,QAAS,UAAW,QAAQ,0TAoB5E,MAAMC,EAAQC,EAWRC,EAAU,IAAM,CACpBC,EAAU,MAAQ,GACXC,EAAA,QAASJ,EAAM,OAAO,CAAA,EAGzBG,EAAYE,EAAA,IAAaL,EAAM,SAAW,SAAS,EACnDI,EAASE"}
1
+ {"version":3,"file":"ElActionButton.vue.cjs2.js","sources":["../../src/ElActionButton.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elActionButtonSizes = ['base', 'l'] as const;\nexport type ElActionButtonSizes = (typeof elActionButtonSizes)[number];\n\nexport const elActionButtonColors = ['primary', 'secondary'] as const;\nexport type ElActionButtonColors = (typeof elActionButtonColors)[number];\n\nexport const elActionButtonStatus = ['default', 'hover', 'pressed', 'active'] as const;\nexport type ElActionButtonStatus = (typeof elActionButtonStatus)[number];\n</script>\n\n<script setup lang=\"ts\">\nimport { ElBadge, ElIcon } from '.';\nimport { ref } from 'vue';\n\nexport interface ActionButtonProps {\n id?: string;\n label: string;\n size: ElActionButtonSizes;\n color: ElActionButtonColors;\n status: ElActionButtonStatus;\n leadingIcon?: InstanceType<typeof ElIcon>['$props'];\n trailingIcon?: InstanceType<typeof ElIcon>['$props'] & { name: 'ChevronDownIcon' };\n badge?: Omit<InstanceType<typeof ElBadge>['$props'], 'badge'>;\n onClick?: (() => unknown) | (() => Promise<unknown>);\n}\n\nconst props = withDefaults(defineProps<ActionButtonProps>(), {\n id: undefined,\n size: 'base',\n color: 'primary',\n status: 'default',\n leadingIcon: undefined,\n trailingIcon: undefined,\n badge: undefined,\n onClick: undefined,\n});\n\nconst onClick = () => {\n isPressed.value = true;\n $emits('click', props.onClick);\n};\n\nconst isPressed = ref<boolean>(props.status === 'pressed');\nconst $emits = defineEmits(['click']);\n</script>\n\n<template>\n <button\n class=\"transition-colors w-fit border flex flex-1 justify-center items-center gap-1 font-semibold leading-6 rounded-lg px-3 hover:bg-neutral-hover hover:text-neutral-darker active:bg-neutral-pressed\"\n :class=\"{\n 'text-sm h-8': props.size === 'base',\n 'text-base h-10': props.size === 'l',\n 'border-transparent text-neutral-darker': props.status === 'default',\n 'border-transparent text-neutral-darker bg-neutral-hover': props.status === 'hover',\n 'border-transparent bg-neutral-pressed ':\n (isPressed || props.status === 'pressed') && props.status !== 'active' && props.status !== 'default' && props.status !== 'hover',\n 'text-primary-active bg-primary-light-active border-primary-active': props.status === 'active' && props.color === 'primary',\n 'text-secondary-active bg-secondary-light-active border-secondary-active': props.status === 'active' && props.color === 'secondary',\n }\"\n :data-cy=\"props.label ? props.label.trim().replace(/\\s+/g, '') : 'default-action' + '-button'\"\n @mouse-down=\"isPressed = true\"\n @click=\"onClick\"\n >\n <ElIcon\n v-if=\"leadingIcon\"\n v-bind=\"leadingIcon\"\n :class=\"{\n 'h-4 w-4': size === 'base',\n 'h-5 w-5': size === 'l',\n }\"\n />\n <span> {{ props.label }}</span>\n <ElIcon\n v-if=\"trailingIcon\"\n v-bind=\"trailingIcon\"\n :class=\"{\n 'h-4 w-4': size === 'base',\n 'h-5 w-5': size === 'l',\n }\"\n />\n <div v-if=\"badge\" class=\"h-4 ml-1 relative flex justify-center items-start\">\n <ElBadge v-bind=\"badge\" color=\"red\" />\n </div>\n </button>\n</template>\n"],"names":["elActionButtonSizes","elActionButtonColors","elActionButtonStatus","props","__props","onClick","isPressed","$emits","ref","__emit"],"mappings":"+vCACaA,EAAsB,CAAC,OAAQ,GAAG,EAGlCC,EAAuB,CAAC,UAAW,WAAW,EAG9CC,EAAuB,CAAC,UAAW,QAAS,UAAW,QAAQ,0TAoB5E,MAAMC,EAAQC,EAWRC,EAAU,IAAM,CACpBC,EAAU,MAAQ,GACXC,EAAA,QAASJ,EAAM,OAAO,CAAA,EAGzBG,EAAYE,EAAA,IAAaL,EAAM,SAAW,SAAS,EACnDI,EAASE"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as v,ref as b,openBlock as r,createElementBlock as n,normalizeClass as g,createBlock as c,unref as a,mergeProps as s,createCommentVNode as i,createElementVNode as y,toDisplayString as h,createVNode as k}from"vue";/* empty css */import"./polyfills.esm.js";import"vee-validate";import"../node_modules/codice-fiscale-js/dist/codice.fiscale.commonjs2.esm.js";import"../node_modules/lodash/lodash.esm.js";import"./tailwind.plugin.esm.js";import"../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.esm.js";import d from"./ElIcon.vue.esm2.js";import z from"./ElBadge.vue.esm2.js";import"./forms/ElInputSelect.vue.esm2.js";import"./forms/ElInputText.vue.esm2.js";import"./forms/ElInputCheckbox.vue.esm2.js";import"./forms/ElInputDate.vue.esm2.js";import"./forms/ElInputFile.vue.esm2.js";import"./forms/ElInputMeasureUnit.vue.esm2.js";import"./forms/ElInputNumber.vue.esm2.js";import"./forms/ElInputPhone.vue.esm2.js";import"./forms/ElInputTextarea.vue.esm2.js";import"./ElToast.vue.esm2.js";import"./forms/ElInputRadioButton.vue.esm2.js";import"../node_modules/swiper/shared/swiper-core.esm.js";import"./forms/ElInputSearch.vue.esm2.js";const B=["data-cy"],C={key:2,class:"h-4 ml-1 relative flex justify-center items-start"},T=["base","l"],U=["primary","secondary"],W=["default","hover","pressed","active"],X=v({__name:"ElActionButton",props:{id:{default:void 0},label:{},size:{default:"base"},color:{default:"primary"},status:{default:"default"},leadingIcon:{default:void 0},trailingIcon:{default:void 0},badge:{default:void 0},onClick:{type:Function,default:void 0}},emits:["click"],setup(u,{emit:m}){const e=u,p=()=>{o.value=!0,f("click",e.onClick)},o=b(e.status==="pressed"),f=m;return(t,l)=>(r(),n("button",{class:g(["transition-colors w-fit border flex flex-1 justify-center items-center gap-1 font-semibold leading-6 rounded-lg px-3 hover:bg-neutral-hover hover:text-neutral-darker active:bg-neutral-pressed",{"text-sm h-8":e.size==="base","text-base h-10":e.size==="l","border-transparent text-neutral-darker":e.status==="default","border-transparent text-neutral-darker bg-neutral-hover":e.status==="hover","border-transparent bg-neutral-pressed ":(o.value||e.status==="pressed")&&e.status!=="active"&&e.status!=="default"&&e.status!=="hover","text-primary-active bg-primary-light-active border-primary-active":e.status==="active"&&e.color==="primary","text-secondary-active bg-secondary-light-active border-secondary-active":e.status==="active"&&e.color==="secondary"}]),"data-cy":e.label?e.label.trim().replace(/\s+/g,""):"default-action-button",onMouseDown:l[0]||(l[0]=w=>o.value=!0),onClick:p},[t.leadingIcon?(r(),c(a(d),s({key:0},t.leadingIcon,{class:{"h-4 w-4":t.size==="base","h-5 w-5":t.size==="l"}}),null,16,["class"])):i("",!0),y("span",null,h(e.label),1),t.trailingIcon?(r(),c(a(d),s({key:1},t.trailingIcon,{class:{"h-4 w-4":t.size==="base","h-5 w-5":t.size==="l"}}),null,16,["class"])):i("",!0),t.badge?(r(),n("div",C,[k(a(z),s(t.badge,{color:"red"}),null,16)])):i("",!0)],42,B))}});export{X as default,U as elActionButtonColors,T as elActionButtonSizes,W as elActionButtonStatus};
1
+ import{defineComponent as v,ref as b,openBlock as r,createElementBlock as n,normalizeClass as g,createBlock as c,unref as a,mergeProps as s,createCommentVNode as i,createElementVNode as y,toDisplayString as h,createVNode as k}from"vue";/* empty css */import"./polyfills.esm.js";import"vee-validate";import"../node_modules/codice-fiscale-js/dist/codice.fiscale.commonjs2.esm.js";import"../node_modules/lodash/lodash.esm.js";import"./tailwind.plugin.esm.js";import"../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.esm.js";import d from"./ElIcon.vue.esm2.js";import z from"./ElBadge.vue.esm2.js";import"./forms/ElInputSelect.vue.esm2.js";import"./forms/ElInputText.vue.esm2.js";import"./forms/ElInputCheckbox.vue.esm2.js";import"./forms/ElInputDate.vue.esm2.js";import"./forms/ElInputFile.vue.esm2.js";import"./forms/ElInputMeasureUnit.vue.esm2.js";import"./forms/ElInputNumber.vue.esm2.js";import"./forms/ElInputPhone.vue.esm2.js";import"./forms/ElInputTextarea.vue.esm2.js";import"./ElToast.vue.esm2.js";import"./forms/ElInputRadioButton.vue.esm2.js";import"./composable/useModalStack.esm.js";import"../node_modules/swiper/shared/swiper-core.esm.js";import"./forms/ElInputSearch.vue.esm2.js";const B=["data-cy"],C={key:2,class:"h-4 ml-1 relative flex justify-center items-start"},U=["base","l"],W=["primary","secondary"],X=["default","hover","pressed","active"],Y=v({__name:"ElActionButton",props:{id:{default:void 0},label:{},size:{default:"base"},color:{default:"primary"},status:{default:"default"},leadingIcon:{default:void 0},trailingIcon:{default:void 0},badge:{default:void 0},onClick:{type:Function,default:void 0}},emits:["click"],setup(u,{emit:m}){const e=u,p=()=>{o.value=!0,f("click",e.onClick)},o=b(e.status==="pressed"),f=m;return(t,l)=>(r(),n("button",{class:g(["transition-colors w-fit border flex flex-1 justify-center items-center gap-1 font-semibold leading-6 rounded-lg px-3 hover:bg-neutral-hover hover:text-neutral-darker active:bg-neutral-pressed",{"text-sm h-8":e.size==="base","text-base h-10":e.size==="l","border-transparent text-neutral-darker":e.status==="default","border-transparent text-neutral-darker bg-neutral-hover":e.status==="hover","border-transparent bg-neutral-pressed ":(o.value||e.status==="pressed")&&e.status!=="active"&&e.status!=="default"&&e.status!=="hover","text-primary-active bg-primary-light-active border-primary-active":e.status==="active"&&e.color==="primary","text-secondary-active bg-secondary-light-active border-secondary-active":e.status==="active"&&e.color==="secondary"}]),"data-cy":e.label?e.label.trim().replace(/\s+/g,""):"default-action-button",onMouseDown:l[0]||(l[0]=w=>o.value=!0),onClick:p},[t.leadingIcon?(r(),c(a(d),s({key:0},t.leadingIcon,{class:{"h-4 w-4":t.size==="base","h-5 w-5":t.size==="l"}}),null,16,["class"])):i("",!0),y("span",null,h(e.label),1),t.trailingIcon?(r(),c(a(d),s({key:1},t.trailingIcon,{class:{"h-4 w-4":t.size==="base","h-5 w-5":t.size==="l"}}),null,16,["class"])):i("",!0),t.badge?(r(),n("div",C,[k(a(z),s(t.badge,{color:"red"}),null,16)])):i("",!0)],42,B))}});export{Y as default,W as elActionButtonColors,U as elActionButtonSizes,X as elActionButtonStatus};
2
2
  //# sourceMappingURL=ElActionButton.vue.esm2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElActionButton.vue.esm2.js","sources":["../../src/ElActionButton.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elActionButtonSizes = ['base', 'l'] as const;\nexport type ElActionButtonSizes = (typeof elActionButtonSizes)[number];\n\nexport const elActionButtonColors = ['primary', 'secondary'] as const;\nexport type ElActionButtonColors = (typeof elActionButtonColors)[number];\n\nexport const elActionButtonStatus = ['default', 'hover', 'pressed', 'active'] as const;\nexport type ElActionButtonStatus = (typeof elActionButtonStatus)[number];\n</script>\n\n<script setup lang=\"ts\">\nimport { ElBadge, ElIcon } from '.';\nimport { ref } from 'vue';\n\nexport interface ActionButtonProps {\n id?: string;\n label: string;\n size: ElActionButtonSizes;\n color: ElActionButtonColors;\n status: ElActionButtonStatus;\n leadingIcon?: InstanceType<typeof ElIcon>['$props'];\n trailingIcon?: InstanceType<typeof ElIcon>['$props'] & { name: 'ChevronDownIcon' };\n badge?: Omit<InstanceType<typeof ElBadge>['$props'], 'badge'>;\n onClick?: (() => unknown) | (() => Promise<unknown>);\n}\n\nconst props = withDefaults(defineProps<ActionButtonProps>(), {\n id: undefined,\n size: 'base',\n color: 'primary',\n status: 'default',\n leadingIcon: undefined,\n trailingIcon: undefined,\n badge: undefined,\n onClick: undefined,\n});\n\nconst onClick = () => {\n isPressed.value = true;\n $emits('click', props.onClick);\n};\n\nconst isPressed = ref<boolean>(props.status === 'pressed');\nconst $emits = defineEmits(['click']);\n</script>\n\n<template>\n <button\n class=\"transition-colors w-fit border flex flex-1 justify-center items-center gap-1 font-semibold leading-6 rounded-lg px-3 hover:bg-neutral-hover hover:text-neutral-darker active:bg-neutral-pressed\"\n :class=\"{\n 'text-sm h-8': props.size === 'base',\n 'text-base h-10': props.size === 'l',\n 'border-transparent text-neutral-darker': props.status === 'default',\n 'border-transparent text-neutral-darker bg-neutral-hover': props.status === 'hover',\n 'border-transparent bg-neutral-pressed ':\n (isPressed || props.status === 'pressed') && props.status !== 'active' && props.status !== 'default' && props.status !== 'hover',\n 'text-primary-active bg-primary-light-active border-primary-active': props.status === 'active' && props.color === 'primary',\n 'text-secondary-active bg-secondary-light-active border-secondary-active': props.status === 'active' && props.color === 'secondary',\n }\"\n :data-cy=\"props.label ? props.label.trim().replace(/\\s+/g, '') : 'default-action' + '-button'\"\n @mouse-down=\"isPressed = true\"\n @click=\"onClick\"\n >\n <ElIcon\n v-if=\"leadingIcon\"\n v-bind=\"leadingIcon\"\n :class=\"{\n 'h-4 w-4': size === 'base',\n 'h-5 w-5': size === 'l',\n }\"\n />\n <span> {{ props.label }}</span>\n <ElIcon\n v-if=\"trailingIcon\"\n v-bind=\"trailingIcon\"\n :class=\"{\n 'h-4 w-4': size === 'base',\n 'h-5 w-5': size === 'l',\n }\"\n />\n <div v-if=\"badge\" class=\"h-4 ml-1 relative flex justify-center items-start\">\n <ElBadge v-bind=\"badge\" color=\"red\" />\n </div>\n </button>\n</template>\n"],"names":["elActionButtonSizes","elActionButtonColors","elActionButtonStatus","props","__props","onClick","isPressed","$emits","ref","__emit"],"mappings":"6vCACaA,EAAsB,CAAC,OAAQ,GAAG,EAGlCC,EAAuB,CAAC,UAAW,WAAW,EAG9CC,EAAuB,CAAC,UAAW,QAAS,UAAW,QAAQ,0SAoB5E,MAAMC,EAAQC,EAWRC,EAAU,IAAM,CACpBC,EAAU,MAAQ,GACXC,EAAA,QAASJ,EAAM,OAAO,CAAA,EAGzBG,EAAYE,EAAaL,EAAM,SAAW,SAAS,EACnDI,EAASE"}
1
+ {"version":3,"file":"ElActionButton.vue.esm2.js","sources":["../../src/ElActionButton.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elActionButtonSizes = ['base', 'l'] as const;\nexport type ElActionButtonSizes = (typeof elActionButtonSizes)[number];\n\nexport const elActionButtonColors = ['primary', 'secondary'] as const;\nexport type ElActionButtonColors = (typeof elActionButtonColors)[number];\n\nexport const elActionButtonStatus = ['default', 'hover', 'pressed', 'active'] as const;\nexport type ElActionButtonStatus = (typeof elActionButtonStatus)[number];\n</script>\n\n<script setup lang=\"ts\">\nimport { ElBadge, ElIcon } from '.';\nimport { ref } from 'vue';\n\nexport interface ActionButtonProps {\n id?: string;\n label: string;\n size: ElActionButtonSizes;\n color: ElActionButtonColors;\n status: ElActionButtonStatus;\n leadingIcon?: InstanceType<typeof ElIcon>['$props'];\n trailingIcon?: InstanceType<typeof ElIcon>['$props'] & { name: 'ChevronDownIcon' };\n badge?: Omit<InstanceType<typeof ElBadge>['$props'], 'badge'>;\n onClick?: (() => unknown) | (() => Promise<unknown>);\n}\n\nconst props = withDefaults(defineProps<ActionButtonProps>(), {\n id: undefined,\n size: 'base',\n color: 'primary',\n status: 'default',\n leadingIcon: undefined,\n trailingIcon: undefined,\n badge: undefined,\n onClick: undefined,\n});\n\nconst onClick = () => {\n isPressed.value = true;\n $emits('click', props.onClick);\n};\n\nconst isPressed = ref<boolean>(props.status === 'pressed');\nconst $emits = defineEmits(['click']);\n</script>\n\n<template>\n <button\n class=\"transition-colors w-fit border flex flex-1 justify-center items-center gap-1 font-semibold leading-6 rounded-lg px-3 hover:bg-neutral-hover hover:text-neutral-darker active:bg-neutral-pressed\"\n :class=\"{\n 'text-sm h-8': props.size === 'base',\n 'text-base h-10': props.size === 'l',\n 'border-transparent text-neutral-darker': props.status === 'default',\n 'border-transparent text-neutral-darker bg-neutral-hover': props.status === 'hover',\n 'border-transparent bg-neutral-pressed ':\n (isPressed || props.status === 'pressed') && props.status !== 'active' && props.status !== 'default' && props.status !== 'hover',\n 'text-primary-active bg-primary-light-active border-primary-active': props.status === 'active' && props.color === 'primary',\n 'text-secondary-active bg-secondary-light-active border-secondary-active': props.status === 'active' && props.color === 'secondary',\n }\"\n :data-cy=\"props.label ? props.label.trim().replace(/\\s+/g, '') : 'default-action' + '-button'\"\n @mouse-down=\"isPressed = true\"\n @click=\"onClick\"\n >\n <ElIcon\n v-if=\"leadingIcon\"\n v-bind=\"leadingIcon\"\n :class=\"{\n 'h-4 w-4': size === 'base',\n 'h-5 w-5': size === 'l',\n }\"\n />\n <span> {{ props.label }}</span>\n <ElIcon\n v-if=\"trailingIcon\"\n v-bind=\"trailingIcon\"\n :class=\"{\n 'h-4 w-4': size === 'base',\n 'h-5 w-5': size === 'l',\n }\"\n />\n <div v-if=\"badge\" class=\"h-4 ml-1 relative flex justify-center items-start\">\n <ElBadge v-bind=\"badge\" color=\"red\" />\n </div>\n </button>\n</template>\n"],"names":["elActionButtonSizes","elActionButtonColors","elActionButtonStatus","props","__props","onClick","isPressed","$emits","ref","__emit"],"mappings":"uyCACaA,EAAsB,CAAC,OAAQ,GAAG,EAGlCC,EAAuB,CAAC,UAAW,WAAW,EAG9CC,EAAuB,CAAC,UAAW,QAAS,UAAW,QAAQ,0SAoB5E,MAAMC,EAAQC,EAWRC,EAAU,IAAM,CACpBC,EAAU,MAAQ,GACXC,EAAA,QAASJ,EAAM,OAAO,CAAA,EAGzBG,EAAYE,EAAaL,EAAM,SAAW,SAAS,EACnDI,EAASE"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),m=require("../node_modules/swiper/modules/keyboard.cjs.js"),f=require("../node_modules/swiper/modules/navigation.cjs.js"),p=require("../node_modules/swiper/modules/pagination.cjs.js"),n=require("../node_modules/swiper/swiper-vue.cjs.js");;/* empty css */require("./polyfills.cjs.js");require("vee-validate");require("../node_modules/codice-fiscale-js/dist/codice.fiscale.commonjs2.cjs.js");require("../node_modules/lodash/lodash.cjs.js");require("./tailwind.plugin.cjs.js");require("../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.cjs.js");const g=require("./ElButton.vue.cjs2.js");require("./forms/ElInputSelect.vue.cjs2.js");require("./forms/ElInputText.vue.cjs2.js");const o=require("./utils.cjs.js"),u=require("./ElIconButton.vue.cjs2.js");require("./forms/ElInputCheckbox.vue.cjs2.js");require("./forms/ElInputDate.vue.cjs2.js");require("./forms/ElInputFile.vue.cjs2.js");require("./forms/ElInputMeasureUnit.vue.cjs2.js");require("./forms/ElInputNumber.vue.cjs2.js");require("./forms/ElInputPhone.vue.cjs2.js");require("./forms/ElInputTextarea.vue.cjs2.js");require("./ElToast.vue.cjs2.js");require("./forms/ElInputRadioButton.vue.cjs2.js");require("./forms/ElInputSearch.vue.cjs2.js");const v={key:0,class:"bg-black opacity-30 left-0 absolute w-full h-full top-0 rounded-2xl"},w={class:"font-semibold text-neutral-inverse text-xl md:text-2xl lg:text-4xl"},b={class:"py-2 md:py-3 lg:py-4"},x={key:0,class:"px-6 w-full mb-20 hidden md:absolute md:mt-0 lg:top-60 md:bottom-0 lg:flex justify-between"},q={class:"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden"},y={class:"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden"},z=["sm","md","lg"],h=e.defineComponent({__name:"ElCarousel",props:{size:{},slides:{},opacity:{type:Boolean}},setup(k){const a=o.useMatchDevice(),d=e.computed(()=>{switch(a.value){case o.Device.Desktop:return"xl";case o.Device.Tablet:return"l";default:return"sm"}}),i=e.ref(),c=e.ref([f.default,p.default,m.default]);return(t,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"max-w-2xl":t.size==="md","max-w-7xl":t.size==="lg"}])},[e.createVNode(e.unref(n.Swiper),{"space-between":30,"slides-per-view":1,keyboard:{enabled:!0},pagination:{clickable:!0},loop:!0,navigation:!0,modules:c.value,class:"",onSwiper:s[0]||(s[0]=l=>i.value=l)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.slides,(l,r)=>(e.openBlock(),e.createBlock(e.unref(n.SwiperSlide),{key:r},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center isolate overflow-hidden w-full bg-left bg-cover bg-no-repeat bg-black rounded-2xl p-6 md:p-7 lg:p-24",{"justify-end items-end h-auto":t.size==="sm","h-96":t.size==="md","h-auto":t.size==="lg"}]),style:e.normalizeStyle({backgroundImage:"url("+l.picture+")"})},[t.opacity?(e.openBlock(),e.createElementBlock("div",v)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["z-10 flex flex-col justify-end md:justify-center gap-3 lg:gap-4 items-start flex-1 self-stretch md:my-8 text-white text-sm md:text-base lg:text-xl",{"w-full":t.size==="sm","max-w-80":t.size==="md","max-w-96":t.size==="lg"}])},[e.createElementVNode("h1",w,e.toDisplayString(l.title),1),e.createElementVNode("p",{class:e.normalizeClass(["text-neutral-inverse font-medium text-sm md:text-base md:max-w-80 lg:text-xl lg:max-w-96",{"w-full":t.size==="sm","w-80 max-w-80":t.size==="md","w-96 max-w-96":t.size==="lg"}])},e.toDisplayString(l.description),3),e.createElementVNode("div",b,[e.createVNode(e.unref(g.default),e.mergeProps({ref_for:!0},l.button,{size:d.value}),null,16,["size"])])],2)],6)]),_:2},1024))),128))]),_:1},8,["modules"]),t.slides.length>1?(e.openBlock(),e.createElementBlock("div",x,[e.createElementVNode("div",q,[e.createVNode(e.unref(u.default),{icon:{name:"ArrowSmallLeftIcon"},onClick:s[1]||(s[1]=l=>{var r;return(r=i.value)==null?void 0:r.slidePrev()})})]),e.createElementVNode("div",y,[e.createVNode(e.unref(u.default),{icon:{name:"ArrowSmallRightIcon"},onClick:s[2]||(s[2]=l=>{var r;return(r=i.value)==null?void 0:r.slideNext()})})])])):e.createCommentVNode("",!0)],2))}});exports.default=h;exports.elCarouselSizes=z;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),m=require("../node_modules/swiper/modules/keyboard.cjs.js"),f=require("../node_modules/swiper/modules/navigation.cjs.js"),p=require("../node_modules/swiper/modules/pagination.cjs.js"),n=require("../node_modules/swiper/swiper-vue.cjs.js");;/* empty css */require("./polyfills.cjs.js");require("vee-validate");require("../node_modules/codice-fiscale-js/dist/codice.fiscale.commonjs2.cjs.js");require("../node_modules/lodash/lodash.cjs.js");require("./tailwind.plugin.cjs.js");require("../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.cjs.js");const g=require("./ElButton.vue.cjs2.js");require("./forms/ElInputSelect.vue.cjs2.js");require("./forms/ElInputText.vue.cjs2.js");const o=require("./utils.cjs.js"),u=require("./ElIconButton.vue.cjs2.js");require("./forms/ElInputCheckbox.vue.cjs2.js");require("./forms/ElInputDate.vue.cjs2.js");require("./forms/ElInputFile.vue.cjs2.js");require("./forms/ElInputMeasureUnit.vue.cjs2.js");require("./forms/ElInputNumber.vue.cjs2.js");require("./forms/ElInputPhone.vue.cjs2.js");require("./forms/ElInputTextarea.vue.cjs2.js");require("./ElToast.vue.cjs2.js");require("./forms/ElInputRadioButton.vue.cjs2.js");require("./composable/useModalStack.cjs.js");require("./forms/ElInputSearch.vue.cjs2.js");const v={key:0,class:"bg-black opacity-30 left-0 absolute w-full h-full top-0 rounded-2xl"},w={class:"font-semibold text-neutral-inverse text-xl md:text-2xl lg:text-4xl"},b={class:"py-2 md:py-3 lg:py-4"},q={key:0,class:"px-6 w-full mb-20 hidden md:absolute md:mt-0 lg:top-60 md:bottom-0 lg:flex justify-between"},x={class:"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden"},y={class:"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden"},z=["sm","md","lg"],h=e.defineComponent({__name:"ElCarousel",props:{size:{},slides:{},opacity:{type:Boolean}},setup(k){const a=o.useMatchDevice(),d=e.computed(()=>{switch(a.value){case o.Device.Desktop:return"xl";case o.Device.Tablet:return"l";default:return"sm"}}),i=e.ref(),c=e.ref([f.default,p.default,m.default]);return(t,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"max-w-2xl":t.size==="md","max-w-7xl":t.size==="lg"}])},[e.createVNode(e.unref(n.Swiper),{"space-between":30,"slides-per-view":1,keyboard:{enabled:!0},pagination:{clickable:!0},loop:!0,navigation:!0,modules:c.value,class:"",onSwiper:s[0]||(s[0]=l=>i.value=l)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.slides,(l,r)=>(e.openBlock(),e.createBlock(e.unref(n.SwiperSlide),{key:r},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center isolate overflow-hidden w-full bg-left bg-cover bg-no-repeat bg-black rounded-2xl p-6 md:p-7 lg:p-24",{"justify-end items-end h-auto":t.size==="sm","h-96":t.size==="md","h-auto":t.size==="lg"}]),style:e.normalizeStyle({backgroundImage:"url("+l.picture+")"})},[t.opacity?(e.openBlock(),e.createElementBlock("div",v)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["z-10 flex flex-col justify-end md:justify-center gap-3 lg:gap-4 items-start flex-1 self-stretch md:my-8 text-white text-sm md:text-base lg:text-xl",{"w-full":t.size==="sm","max-w-80":t.size==="md","max-w-96":t.size==="lg"}])},[e.createElementVNode("h1",w,e.toDisplayString(l.title),1),e.createElementVNode("p",{class:e.normalizeClass(["text-neutral-inverse font-medium text-sm md:text-base md:max-w-80 lg:text-xl lg:max-w-96",{"w-full":t.size==="sm","w-80 max-w-80":t.size==="md","w-96 max-w-96":t.size==="lg"}])},e.toDisplayString(l.description),3),e.createElementVNode("div",b,[e.createVNode(e.unref(g.default),e.mergeProps({ref_for:!0},l.button,{size:d.value}),null,16,["size"])])],2)],6)]),_:2},1024))),128))]),_:1},8,["modules"]),t.slides.length>1?(e.openBlock(),e.createElementBlock("div",q,[e.createElementVNode("div",x,[e.createVNode(e.unref(u.default),{icon:{name:"ArrowSmallLeftIcon"},onClick:s[1]||(s[1]=l=>{var r;return(r=i.value)==null?void 0:r.slidePrev()})})]),e.createElementVNode("div",y,[e.createVNode(e.unref(u.default),{icon:{name:"ArrowSmallRightIcon"},onClick:s[2]||(s[2]=l=>{var r;return(r=i.value)==null?void 0:r.slideNext()})})])])):e.createCommentVNode("",!0)],2))}});exports.default=h;exports.elCarouselSizes=z;
2
2
  //# sourceMappingURL=ElCarousel.vue.cjs2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElCarousel.vue.cjs2.js","sources":["../../src/ElCarousel.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elCarouselSizes = ['sm', 'md', 'lg'] as const;\nexport type ElCarouselSizes = (typeof elCarouselSizes)[number];\n\nexport interface CarouselProps {\n size?: ElCarouselSizes;\n slides: CarouselSlide[];\n opacity?: boolean;\n}\n\nexport interface CarouselSlide {\n title: string;\n description: string;\n picture: string;\n button: InstanceType<typeof ElButton>['$props'];\n}\n</script>\n\n<script lang=\"ts\" setup>\nimport { Keyboard, Navigation, Pagination } from 'swiper/modules';\nimport { Swiper, SwiperSlide } from 'swiper/vue';\nimport { ElButton, ElIconButton } from '.';\nimport { computed, ref } from 'vue';\nimport { Device, useMatchDevice } from './utils';\n\ndefineProps<CarouselProps>();\n\nconst device = useMatchDevice();\n\nconst buttonSize = computed(() => {\n switch (device.value) {\n case Device.Desktop:\n return 'xl';\n case Device.Tablet:\n return 'l';\n default:\n return 'sm';\n }\n});\n\nconst swiperInstance = ref();\nconst modules = ref([Navigation, Pagination, Keyboard]);\n</script>\n\n<template>\n <div\n class=\"w-full relative\"\n :class=\"{\n 'max-w-2xl': size === 'md',\n 'max-w-7xl': size === 'lg',\n }\"\n >\n <swiper\n :space-between=\"30\"\n :slides-per-view=\"1\"\n :keyboard=\"{\n enabled: true,\n }\"\n :pagination=\"{\n clickable: true,\n }\"\n :loop=\"true\"\n :navigation=\"true\"\n :modules=\"modules\"\n class=\"\"\n @swiper=\"swiperInstance = $event\"\n >\n <swiper-slide v-for=\"(slide, index) in slides\" :key=\"index\">\n <div\n class=\"flex items-center isolate overflow-hidden w-full bg-left bg-cover bg-no-repeat bg-black rounded-2xl p-6 md:p-7 lg:p-24\"\n :style=\"{\n backgroundImage: 'url(' + slide.picture + ')',\n }\"\n :class=\"{\n 'justify-end items-end h-auto': size === 'sm',\n 'h-96': size === 'md',\n 'h-auto': size === 'lg',\n }\"\n >\n <div v-if=\"opacity\" class=\"bg-black opacity-30 left-0 absolute w-full h-full top-0 rounded-2xl\"></div>\n\n <div\n class=\"z-10 flex flex-col justify-end md:justify-center gap-3 lg:gap-4 items-start flex-1 self-stretch md:my-8 text-white text-sm md:text-base lg:text-xl\"\n :class=\"{\n 'w-full': size === 'sm',\n 'max-w-80': size === 'md',\n 'max-w-96': size === 'lg',\n }\"\n >\n <h1 class=\"font-semibold text-neutral-inverse text-xl md:text-2xl lg:text-4xl\">\n {{ slide.title }}\n </h1>\n <p\n class=\"text-neutral-inverse font-medium text-sm md:text-base md:max-w-80 lg:text-xl lg:max-w-96\"\n :class=\"{\n 'w-full': size === 'sm',\n 'w-80 max-w-80': size === 'md',\n 'w-96 max-w-96': size === 'lg',\n }\"\n >\n {{ slide.description }}\n </p>\n <div class=\"py-2 md:py-3 lg:py-4\">\n <ElButton v-bind=\"slide.button\" :size=\"buttonSize\" />\n </div>\n </div>\n </div>\n </swiper-slide>\n </swiper>\n <div v-if=\"slides.length > 1\" class=\"px-6 w-full mb-20 hidden md:absolute md:mt-0 lg:top-60 md:bottom-0 lg:flex justify-between\">\n <div class=\"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden\">\n <ElIconButton :icon=\"{ name: 'ArrowSmallLeftIcon' }\" @click=\"swiperInstance?.slidePrev()\" />\n </div>\n <div class=\"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden\">\n <ElIconButton :icon=\"{ name: 'ArrowSmallRightIcon' }\" @click=\"swiperInstance?.slideNext()\" />\n </div>\n </div>\n </div>\n</template>\n"],"names":["elCarouselSizes","device","useMatchDevice","buttonSize","computed","Device","swiperInstance","ref","modules","Navigation","Pagination","Keyboard"],"mappings":"80DACaA,EAAkB,CAAC,KAAM,KAAM,IAAI,qGA0BhD,MAAMC,EAASC,EAAAA,iBAETC,EAAaC,EAAAA,SAAS,IAAM,CAChC,OAAQH,EAAO,MAAO,CACpB,KAAKI,EAAO,OAAA,QACH,MAAA,KACT,KAAKA,EAAO,OAAA,OACH,MAAA,IACT,QACS,MAAA,IACX,CAAA,CACD,EAEKC,EAAiBC,EAAAA,MACjBC,EAAUD,EAAAA,IAAI,CAACE,EAAY,QAAAC,EAAA,QAAYC,EAAQ,OAAA,CAAC"}
1
+ {"version":3,"file":"ElCarousel.vue.cjs2.js","sources":["../../src/ElCarousel.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elCarouselSizes = ['sm', 'md', 'lg'] as const;\nexport type ElCarouselSizes = (typeof elCarouselSizes)[number];\n\nexport interface CarouselProps {\n size?: ElCarouselSizes;\n slides: CarouselSlide[];\n opacity?: boolean;\n}\n\nexport interface CarouselSlide {\n title: string;\n description: string;\n picture: string;\n button: InstanceType<typeof ElButton>['$props'];\n}\n</script>\n\n<script lang=\"ts\" setup>\nimport { Keyboard, Navigation, Pagination } from 'swiper/modules';\nimport { Swiper, SwiperSlide } from 'swiper/vue';\nimport { ElButton, ElIconButton } from '.';\nimport { computed, ref } from 'vue';\nimport { Device, useMatchDevice } from './utils';\n\ndefineProps<CarouselProps>();\n\nconst device = useMatchDevice();\n\nconst buttonSize = computed(() => {\n switch (device.value) {\n case Device.Desktop:\n return 'xl';\n case Device.Tablet:\n return 'l';\n default:\n return 'sm';\n }\n});\n\nconst swiperInstance = ref();\nconst modules = ref([Navigation, Pagination, Keyboard]);\n</script>\n\n<template>\n <div\n class=\"w-full relative\"\n :class=\"{\n 'max-w-2xl': size === 'md',\n 'max-w-7xl': size === 'lg',\n }\"\n >\n <swiper\n :space-between=\"30\"\n :slides-per-view=\"1\"\n :keyboard=\"{\n enabled: true,\n }\"\n :pagination=\"{\n clickable: true,\n }\"\n :loop=\"true\"\n :navigation=\"true\"\n :modules=\"modules\"\n class=\"\"\n @swiper=\"swiperInstance = $event\"\n >\n <swiper-slide v-for=\"(slide, index) in slides\" :key=\"index\">\n <div\n class=\"flex items-center isolate overflow-hidden w-full bg-left bg-cover bg-no-repeat bg-black rounded-2xl p-6 md:p-7 lg:p-24\"\n :style=\"{\n backgroundImage: 'url(' + slide.picture + ')',\n }\"\n :class=\"{\n 'justify-end items-end h-auto': size === 'sm',\n 'h-96': size === 'md',\n 'h-auto': size === 'lg',\n }\"\n >\n <div v-if=\"opacity\" class=\"bg-black opacity-30 left-0 absolute w-full h-full top-0 rounded-2xl\"></div>\n\n <div\n class=\"z-10 flex flex-col justify-end md:justify-center gap-3 lg:gap-4 items-start flex-1 self-stretch md:my-8 text-white text-sm md:text-base lg:text-xl\"\n :class=\"{\n 'w-full': size === 'sm',\n 'max-w-80': size === 'md',\n 'max-w-96': size === 'lg',\n }\"\n >\n <h1 class=\"font-semibold text-neutral-inverse text-xl md:text-2xl lg:text-4xl\">\n {{ slide.title }}\n </h1>\n <p\n class=\"text-neutral-inverse font-medium text-sm md:text-base md:max-w-80 lg:text-xl lg:max-w-96\"\n :class=\"{\n 'w-full': size === 'sm',\n 'w-80 max-w-80': size === 'md',\n 'w-96 max-w-96': size === 'lg',\n }\"\n >\n {{ slide.description }}\n </p>\n <div class=\"py-2 md:py-3 lg:py-4\">\n <ElButton v-bind=\"slide.button\" :size=\"buttonSize\" />\n </div>\n </div>\n </div>\n </swiper-slide>\n </swiper>\n <div v-if=\"slides.length > 1\" class=\"px-6 w-full mb-20 hidden md:absolute md:mt-0 lg:top-60 md:bottom-0 lg:flex justify-between\">\n <div class=\"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden\">\n <ElIconButton :icon=\"{ name: 'ArrowSmallLeftIcon' }\" @click=\"swiperInstance?.slidePrev()\" />\n </div>\n <div class=\"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden\">\n <ElIconButton :icon=\"{ name: 'ArrowSmallRightIcon' }\" @click=\"swiperInstance?.slideNext()\" />\n </div>\n </div>\n </div>\n</template>\n"],"names":["elCarouselSizes","device","useMatchDevice","buttonSize","computed","Device","swiperInstance","ref","modules","Navigation","Pagination","Keyboard"],"mappings":"23DACaA,EAAkB,CAAC,KAAM,KAAM,IAAI,qGA0BhD,MAAMC,EAASC,EAAAA,iBAETC,EAAaC,EAAAA,SAAS,IAAM,CAChC,OAAQH,EAAO,MAAO,CACpB,KAAKI,EAAO,OAAA,QACH,MAAA,KACT,KAAKA,EAAO,OAAA,OACH,MAAA,IACT,QACS,MAAA,IACX,CAAA,CACD,EAEKC,EAAiBC,EAAAA,MACjBC,EAAUD,EAAAA,IAAI,CAACE,EAAY,QAAAC,EAAA,QAAYC,EAAQ,OAAA,CAAC"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as y,computed as h,ref as p,openBlock as s,createElementBlock as m,normalizeClass as n,createVNode as a,unref as r,withCtx as u,Fragment as z,renderList as k,createBlock as S,createElementVNode as l,normalizeStyle as C,createCommentVNode as f,toDisplayString as c,mergeProps as _}from"vue";import j from"../node_modules/swiper/modules/keyboard.esm.js";import N from"../node_modules/swiper/modules/navigation.esm.js";import B from"../node_modules/swiper/modules/pagination.esm.js";import{Swiper as D,SwiperSlide as I}from"../node_modules/swiper/swiper-vue.esm.js";/* empty css */import"./polyfills.esm.js";import"vee-validate";import"../node_modules/codice-fiscale-js/dist/codice.fiscale.commonjs2.esm.js";import"../node_modules/lodash/lodash.esm.js";import"./tailwind.plugin.esm.js";import"../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.esm.js";import $ from"./ElButton.vue.esm2.js";import"./forms/ElInputSelect.vue.esm2.js";import"./forms/ElInputText.vue.esm2.js";import{useMatchDevice as E,Device as w}from"./utils.esm.js";import g from"./ElIconButton.vue.esm2.js";import"./forms/ElInputCheckbox.vue.esm2.js";import"./forms/ElInputDate.vue.esm2.js";import"./forms/ElInputFile.vue.esm2.js";import"./forms/ElInputMeasureUnit.vue.esm2.js";import"./forms/ElInputNumber.vue.esm2.js";import"./forms/ElInputPhone.vue.esm2.js";import"./forms/ElInputTextarea.vue.esm2.js";import"./ElToast.vue.esm2.js";import"./forms/ElInputRadioButton.vue.esm2.js";import"./forms/ElInputSearch.vue.esm2.js";const P={key:0,class:"bg-black opacity-30 left-0 absolute w-full h-full top-0 rounded-2xl"},V={class:"font-semibold text-neutral-inverse text-xl md:text-2xl lg:text-4xl"},A={class:"py-2 md:py-3 lg:py-4"},L={key:0,class:"px-6 w-full mb-20 hidden md:absolute md:mt-0 lg:top-60 md:bottom-0 lg:flex justify-between"},F={class:"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden"},K={class:"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden"},ce=["sm","md","lg"],we=y({__name:"ElCarousel",props:{size:{},slides:{},opacity:{type:Boolean}},setup(M){const v=E(),x=h(()=>{switch(v.value){case w.Desktop:return"xl";case w.Tablet:return"l";default:return"sm"}}),d=p(),b=p([N,B,j]);return(e,i)=>(s(),m("div",{class:n(["w-full relative",{"max-w-2xl":e.size==="md","max-w-7xl":e.size==="lg"}])},[a(r(D),{"space-between":30,"slides-per-view":1,keyboard:{enabled:!0},pagination:{clickable:!0},loop:!0,navigation:!0,modules:b.value,class:"",onSwiper:i[0]||(i[0]=t=>d.value=t)},{default:u(()=>[(s(!0),m(z,null,k(e.slides,(t,o)=>(s(),S(r(I),{key:o},{default:u(()=>[l("div",{class:n(["flex items-center isolate overflow-hidden w-full bg-left bg-cover bg-no-repeat bg-black rounded-2xl p-6 md:p-7 lg:p-24",{"justify-end items-end h-auto":e.size==="sm","h-96":e.size==="md","h-auto":e.size==="lg"}]),style:C({backgroundImage:"url("+t.picture+")"})},[e.opacity?(s(),m("div",P)):f("",!0),l("div",{class:n(["z-10 flex flex-col justify-end md:justify-center gap-3 lg:gap-4 items-start flex-1 self-stretch md:my-8 text-white text-sm md:text-base lg:text-xl",{"w-full":e.size==="sm","max-w-80":e.size==="md","max-w-96":e.size==="lg"}])},[l("h1",V,c(t.title),1),l("p",{class:n(["text-neutral-inverse font-medium text-sm md:text-base md:max-w-80 lg:text-xl lg:max-w-96",{"w-full":e.size==="sm","w-80 max-w-80":e.size==="md","w-96 max-w-96":e.size==="lg"}])},c(t.description),3),l("div",A,[a(r($),_({ref_for:!0},t.button,{size:x.value}),null,16,["size"])])],2)],6)]),_:2},1024))),128))]),_:1},8,["modules"]),e.slides.length>1?(s(),m("div",L,[l("div",F,[a(r(g),{icon:{name:"ArrowSmallLeftIcon"},onClick:i[1]||(i[1]=t=>{var o;return(o=d.value)==null?void 0:o.slidePrev()})})]),l("div",K,[a(r(g),{icon:{name:"ArrowSmallRightIcon"},onClick:i[2]||(i[2]=t=>{var o;return(o=d.value)==null?void 0:o.slideNext()})})])])):f("",!0)],2))}});export{we as default,ce as elCarouselSizes};
1
+ import{defineComponent as y,computed as h,ref as p,openBlock as s,createElementBlock as m,normalizeClass as n,createVNode as a,unref as r,withCtx as u,Fragment as z,renderList as k,createBlock as S,createElementVNode as l,normalizeStyle as C,createCommentVNode as f,toDisplayString as c,mergeProps as _}from"vue";import j from"../node_modules/swiper/modules/keyboard.esm.js";import N from"../node_modules/swiper/modules/navigation.esm.js";import B from"../node_modules/swiper/modules/pagination.esm.js";import{Swiper as D,SwiperSlide as I}from"../node_modules/swiper/swiper-vue.esm.js";/* empty css */import"./polyfills.esm.js";import"vee-validate";import"../node_modules/codice-fiscale-js/dist/codice.fiscale.commonjs2.esm.js";import"../node_modules/lodash/lodash.esm.js";import"./tailwind.plugin.esm.js";import"../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.esm.js";import $ from"./ElButton.vue.esm2.js";import"./forms/ElInputSelect.vue.esm2.js";import"./forms/ElInputText.vue.esm2.js";import{useMatchDevice as E,Device as w}from"./utils.esm.js";import g from"./ElIconButton.vue.esm2.js";import"./forms/ElInputCheckbox.vue.esm2.js";import"./forms/ElInputDate.vue.esm2.js";import"./forms/ElInputFile.vue.esm2.js";import"./forms/ElInputMeasureUnit.vue.esm2.js";import"./forms/ElInputNumber.vue.esm2.js";import"./forms/ElInputPhone.vue.esm2.js";import"./forms/ElInputTextarea.vue.esm2.js";import"./ElToast.vue.esm2.js";import"./forms/ElInputRadioButton.vue.esm2.js";import"./composable/useModalStack.esm.js";import"./forms/ElInputSearch.vue.esm2.js";const P={key:0,class:"bg-black opacity-30 left-0 absolute w-full h-full top-0 rounded-2xl"},V={class:"font-semibold text-neutral-inverse text-xl md:text-2xl lg:text-4xl"},A={class:"py-2 md:py-3 lg:py-4"},L={key:0,class:"px-6 w-full mb-20 hidden md:absolute md:mt-0 lg:top-60 md:bottom-0 lg:flex justify-between"},F={class:"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden"},K={class:"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden"},we=["sm","md","lg"],ge=y({__name:"ElCarousel",props:{size:{},slides:{},opacity:{type:Boolean}},setup(M){const v=E(),x=h(()=>{switch(v.value){case w.Desktop:return"xl";case w.Tablet:return"l";default:return"sm"}}),d=p(),b=p([N,B,j]);return(e,i)=>(s(),m("div",{class:n(["w-full relative",{"max-w-2xl":e.size==="md","max-w-7xl":e.size==="lg"}])},[a(r(D),{"space-between":30,"slides-per-view":1,keyboard:{enabled:!0},pagination:{clickable:!0},loop:!0,navigation:!0,modules:b.value,class:"",onSwiper:i[0]||(i[0]=t=>d.value=t)},{default:u(()=>[(s(!0),m(z,null,k(e.slides,(t,o)=>(s(),S(r(I),{key:o},{default:u(()=>[l("div",{class:n(["flex items-center isolate overflow-hidden w-full bg-left bg-cover bg-no-repeat bg-black rounded-2xl p-6 md:p-7 lg:p-24",{"justify-end items-end h-auto":e.size==="sm","h-96":e.size==="md","h-auto":e.size==="lg"}]),style:C({backgroundImage:"url("+t.picture+")"})},[e.opacity?(s(),m("div",P)):f("",!0),l("div",{class:n(["z-10 flex flex-col justify-end md:justify-center gap-3 lg:gap-4 items-start flex-1 self-stretch md:my-8 text-white text-sm md:text-base lg:text-xl",{"w-full":e.size==="sm","max-w-80":e.size==="md","max-w-96":e.size==="lg"}])},[l("h1",V,c(t.title),1),l("p",{class:n(["text-neutral-inverse font-medium text-sm md:text-base md:max-w-80 lg:text-xl lg:max-w-96",{"w-full":e.size==="sm","w-80 max-w-80":e.size==="md","w-96 max-w-96":e.size==="lg"}])},c(t.description),3),l("div",A,[a(r($),_({ref_for:!0},t.button,{size:x.value}),null,16,["size"])])],2)],6)]),_:2},1024))),128))]),_:1},8,["modules"]),e.slides.length>1?(s(),m("div",L,[l("div",F,[a(r(g),{icon:{name:"ArrowSmallLeftIcon"},onClick:i[1]||(i[1]=t=>{var o;return(o=d.value)==null?void 0:o.slidePrev()})})]),l("div",K,[a(r(g),{icon:{name:"ArrowSmallRightIcon"},onClick:i[2]||(i[2]=t=>{var o;return(o=d.value)==null?void 0:o.slideNext()})})])])):f("",!0)],2))}});export{ge as default,we as elCarouselSizes};
2
2
  //# sourceMappingURL=ElCarousel.vue.esm2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElCarousel.vue.esm2.js","sources":["../../src/ElCarousel.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elCarouselSizes = ['sm', 'md', 'lg'] as const;\nexport type ElCarouselSizes = (typeof elCarouselSizes)[number];\n\nexport interface CarouselProps {\n size?: ElCarouselSizes;\n slides: CarouselSlide[];\n opacity?: boolean;\n}\n\nexport interface CarouselSlide {\n title: string;\n description: string;\n picture: string;\n button: InstanceType<typeof ElButton>['$props'];\n}\n</script>\n\n<script lang=\"ts\" setup>\nimport { Keyboard, Navigation, Pagination } from 'swiper/modules';\nimport { Swiper, SwiperSlide } from 'swiper/vue';\nimport { ElButton, ElIconButton } from '.';\nimport { computed, ref } from 'vue';\nimport { Device, useMatchDevice } from './utils';\n\ndefineProps<CarouselProps>();\n\nconst device = useMatchDevice();\n\nconst buttonSize = computed(() => {\n switch (device.value) {\n case Device.Desktop:\n return 'xl';\n case Device.Tablet:\n return 'l';\n default:\n return 'sm';\n }\n});\n\nconst swiperInstance = ref();\nconst modules = ref([Navigation, Pagination, Keyboard]);\n</script>\n\n<template>\n <div\n class=\"w-full relative\"\n :class=\"{\n 'max-w-2xl': size === 'md',\n 'max-w-7xl': size === 'lg',\n }\"\n >\n <swiper\n :space-between=\"30\"\n :slides-per-view=\"1\"\n :keyboard=\"{\n enabled: true,\n }\"\n :pagination=\"{\n clickable: true,\n }\"\n :loop=\"true\"\n :navigation=\"true\"\n :modules=\"modules\"\n class=\"\"\n @swiper=\"swiperInstance = $event\"\n >\n <swiper-slide v-for=\"(slide, index) in slides\" :key=\"index\">\n <div\n class=\"flex items-center isolate overflow-hidden w-full bg-left bg-cover bg-no-repeat bg-black rounded-2xl p-6 md:p-7 lg:p-24\"\n :style=\"{\n backgroundImage: 'url(' + slide.picture + ')',\n }\"\n :class=\"{\n 'justify-end items-end h-auto': size === 'sm',\n 'h-96': size === 'md',\n 'h-auto': size === 'lg',\n }\"\n >\n <div v-if=\"opacity\" class=\"bg-black opacity-30 left-0 absolute w-full h-full top-0 rounded-2xl\"></div>\n\n <div\n class=\"z-10 flex flex-col justify-end md:justify-center gap-3 lg:gap-4 items-start flex-1 self-stretch md:my-8 text-white text-sm md:text-base lg:text-xl\"\n :class=\"{\n 'w-full': size === 'sm',\n 'max-w-80': size === 'md',\n 'max-w-96': size === 'lg',\n }\"\n >\n <h1 class=\"font-semibold text-neutral-inverse text-xl md:text-2xl lg:text-4xl\">\n {{ slide.title }}\n </h1>\n <p\n class=\"text-neutral-inverse font-medium text-sm md:text-base md:max-w-80 lg:text-xl lg:max-w-96\"\n :class=\"{\n 'w-full': size === 'sm',\n 'w-80 max-w-80': size === 'md',\n 'w-96 max-w-96': size === 'lg',\n }\"\n >\n {{ slide.description }}\n </p>\n <div class=\"py-2 md:py-3 lg:py-4\">\n <ElButton v-bind=\"slide.button\" :size=\"buttonSize\" />\n </div>\n </div>\n </div>\n </swiper-slide>\n </swiper>\n <div v-if=\"slides.length > 1\" class=\"px-6 w-full mb-20 hidden md:absolute md:mt-0 lg:top-60 md:bottom-0 lg:flex justify-between\">\n <div class=\"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden\">\n <ElIconButton :icon=\"{ name: 'ArrowSmallLeftIcon' }\" @click=\"swiperInstance?.slidePrev()\" />\n </div>\n <div class=\"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden\">\n <ElIconButton :icon=\"{ name: 'ArrowSmallRightIcon' }\" @click=\"swiperInstance?.slideNext()\" />\n </div>\n </div>\n </div>\n</template>\n"],"names":["elCarouselSizes","device","useMatchDevice","buttonSize","computed","Device","swiperInstance","ref","modules","Navigation","Pagination","Keyboard"],"mappings":"sgEACaA,GAAkB,CAAC,KAAM,KAAM,IAAI,sFA0BhD,MAAMC,EAASC,IAETC,EAAaC,EAAS,IAAM,CAChC,OAAQH,EAAO,MAAO,CACpB,KAAKI,EAAO,QACH,MAAA,KACT,KAAKA,EAAO,OACH,MAAA,IACT,QACS,MAAA,IACX,CAAA,CACD,EAEKC,EAAiBC,IACjBC,EAAUD,EAAI,CAACE,EAAYC,EAAYC,CAAQ,CAAC"}
1
+ {"version":3,"file":"ElCarousel.vue.esm2.js","sources":["../../src/ElCarousel.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elCarouselSizes = ['sm', 'md', 'lg'] as const;\nexport type ElCarouselSizes = (typeof elCarouselSizes)[number];\n\nexport interface CarouselProps {\n size?: ElCarouselSizes;\n slides: CarouselSlide[];\n opacity?: boolean;\n}\n\nexport interface CarouselSlide {\n title: string;\n description: string;\n picture: string;\n button: InstanceType<typeof ElButton>['$props'];\n}\n</script>\n\n<script lang=\"ts\" setup>\nimport { Keyboard, Navigation, Pagination } from 'swiper/modules';\nimport { Swiper, SwiperSlide } from 'swiper/vue';\nimport { ElButton, ElIconButton } from '.';\nimport { computed, ref } from 'vue';\nimport { Device, useMatchDevice } from './utils';\n\ndefineProps<CarouselProps>();\n\nconst device = useMatchDevice();\n\nconst buttonSize = computed(() => {\n switch (device.value) {\n case Device.Desktop:\n return 'xl';\n case Device.Tablet:\n return 'l';\n default:\n return 'sm';\n }\n});\n\nconst swiperInstance = ref();\nconst modules = ref([Navigation, Pagination, Keyboard]);\n</script>\n\n<template>\n <div\n class=\"w-full relative\"\n :class=\"{\n 'max-w-2xl': size === 'md',\n 'max-w-7xl': size === 'lg',\n }\"\n >\n <swiper\n :space-between=\"30\"\n :slides-per-view=\"1\"\n :keyboard=\"{\n enabled: true,\n }\"\n :pagination=\"{\n clickable: true,\n }\"\n :loop=\"true\"\n :navigation=\"true\"\n :modules=\"modules\"\n class=\"\"\n @swiper=\"swiperInstance = $event\"\n >\n <swiper-slide v-for=\"(slide, index) in slides\" :key=\"index\">\n <div\n class=\"flex items-center isolate overflow-hidden w-full bg-left bg-cover bg-no-repeat bg-black rounded-2xl p-6 md:p-7 lg:p-24\"\n :style=\"{\n backgroundImage: 'url(' + slide.picture + ')',\n }\"\n :class=\"{\n 'justify-end items-end h-auto': size === 'sm',\n 'h-96': size === 'md',\n 'h-auto': size === 'lg',\n }\"\n >\n <div v-if=\"opacity\" class=\"bg-black opacity-30 left-0 absolute w-full h-full top-0 rounded-2xl\"></div>\n\n <div\n class=\"z-10 flex flex-col justify-end md:justify-center gap-3 lg:gap-4 items-start flex-1 self-stretch md:my-8 text-white text-sm md:text-base lg:text-xl\"\n :class=\"{\n 'w-full': size === 'sm',\n 'max-w-80': size === 'md',\n 'max-w-96': size === 'lg',\n }\"\n >\n <h1 class=\"font-semibold text-neutral-inverse text-xl md:text-2xl lg:text-4xl\">\n {{ slide.title }}\n </h1>\n <p\n class=\"text-neutral-inverse font-medium text-sm md:text-base md:max-w-80 lg:text-xl lg:max-w-96\"\n :class=\"{\n 'w-full': size === 'sm',\n 'w-80 max-w-80': size === 'md',\n 'w-96 max-w-96': size === 'lg',\n }\"\n >\n {{ slide.description }}\n </p>\n <div class=\"py-2 md:py-3 lg:py-4\">\n <ElButton v-bind=\"slide.button\" :size=\"buttonSize\" />\n </div>\n </div>\n </div>\n </swiper-slide>\n </swiper>\n <div v-if=\"slides.length > 1\" class=\"px-6 w-full mb-20 hidden md:absolute md:mt-0 lg:top-60 md:bottom-0 lg:flex justify-between\">\n <div class=\"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden\">\n <ElIconButton :icon=\"{ name: 'ArrowSmallLeftIcon' }\" @click=\"swiperInstance?.slidePrev()\" />\n </div>\n <div class=\"w-9 h-9 flex justify-center items-center bg-white rounded-full z-10 overflow-hidden\">\n <ElIconButton :icon=\"{ name: 'ArrowSmallRightIcon' }\" @click=\"swiperInstance?.slideNext()\" />\n </div>\n </div>\n </div>\n</template>\n"],"names":["elCarouselSizes","device","useMatchDevice","buttonSize","computed","Device","swiperInstance","ref","modules","Navigation","Pagination","Keyboard"],"mappings":"gjEACaA,GAAkB,CAAC,KAAM,KAAM,IAAI,sFA0BhD,MAAMC,EAASC,IAETC,EAAaC,EAAS,IAAM,CAChC,OAAQH,EAAO,MAAO,CACpB,KAAKI,EAAO,QACH,MAAA,KACT,KAAKA,EAAO,OACH,MAAA,IACT,QACS,MAAA,IACX,CAAA,CACD,EAEKC,EAAiBC,IACjBC,EAAUD,EAAI,CAACE,EAAYC,EAAYC,CAAQ,CAAC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");;/* empty css */require("./polyfills.cjs.js");require("vee-validate");require("../node_modules/codice-fiscale-js/dist/codice.fiscale.commonjs2.cjs.js");require("../node_modules/lodash/lodash.cjs.js");require("./tailwind.plugin.cjs.js");require("../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.cjs.js");const u=require("./ElDrawer.vue.cjs2.js");require("./forms/ElInputCheckbox.vue.cjs2.js");require("./forms/ElInputDate.vue.cjs2.js");require("./forms/ElInputFile.vue.cjs2.js");require("./forms/ElInputMeasureUnit.vue.cjs2.js");require("./forms/ElInputNumber.vue.cjs2.js");require("./forms/ElInputPhone.vue.cjs2.js");require("./forms/ElInputSelect.vue.cjs2.js");require("./forms/ElInputText.vue.cjs2.js");require("./forms/ElInputTextarea.vue.cjs2.js");const c=require("./ElTabGroup.vue.cjs2.js");require("./ElToast.vue.cjs2.js");require("./forms/ElInputRadioButton.vue.cjs2.js");require("../node_modules/swiper/shared/swiper-core.cjs.js");require("./forms/ElInputSearch.vue.cjs2.js");const m={class:"rounded-3xl border shadow-md border-neutral-surface bg-neutral-surface overflow-hidden"},p={class:"px-4 py-8 flex justify-between items-center text-neutral-darker"},_={class:"flex flex-col gap-5"},v={class:"text-3xl font-semibold"},b={key:0,class:"text-sm"},q={class:"flex items-center gap-2"},f={class:"min-w-44"},V={class:"px-4 pb-6"},h={key:1,class:"flex"},E={class:"min-w-72"},N={class:"flex-1 w-full"},g=["table","drawer"],k=e.defineComponent({__name:"ElContainerTemplate",props:{title:{},description:{},tabs:{},selectedTab:{},variant:{}},emits:["onTabChange"],setup(s,{emit:a}){const i=s,d=a,l=e.ref(i.selectedTab||"");return(t,r)=>{var n;return e.openBlock(),e.createElementBlock("div",m,[e.createElementVNode("div",p,[e.createElementVNode("div",_,[e.createElementVNode("h1",v,e.toDisplayString(t.title),1),(n=t.description)!=null&&n.length?(e.openBlock(),e.createElementBlock("p",b,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",q,[e.createElementVNode("div",f,[e.renderSlot(t.$slots,"input-select")]),e.renderSlot(t.$slots,"secondary-button"),e.renderSlot(t.$slots,"primary-button"),e.renderSlot(t.$slots,"icon-button")])]),e.createElementVNode("div",V,[t.tabs?(e.openBlock(),e.createBlock(c.default,e.mergeProps({key:0},t.tabs,{modelValue:l.value,"onUpdate:modelValue":[r[0]||(r[0]=o=>l.value=o),r[1]||(r[1]=o=>d("onTabChange",o))]}),null,16,["modelValue"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",null,[t.variant.name==="table"?e.renderSlot(t.$slots,"table",{key:0}):e.createCommentVNode("",!0),t.variant.name==="drawer"?(e.openBlock(),e.createElementBlock("div",h,[e.createElementVNode("div",E,[e.createVNode(e.unref(u.default),{headline:t.variant.drawerTitle},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"drawer-content")]),_:3},8,["headline"])]),e.createElementVNode("div",N,[e.renderSlot(t.$slots,"content-slot")])])):e.createCommentVNode("",!0)])])}}});exports.default=k;exports.elContainerTemplateVariants=g;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");;/* empty css */require("./polyfills.cjs.js");require("vee-validate");require("../node_modules/codice-fiscale-js/dist/codice.fiscale.commonjs2.cjs.js");require("../node_modules/lodash/lodash.cjs.js");require("./tailwind.plugin.cjs.js");require("../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.cjs.js");const u=require("./ElDrawer.vue.cjs2.js");require("./forms/ElInputCheckbox.vue.cjs2.js");require("./forms/ElInputDate.vue.cjs2.js");require("./forms/ElInputFile.vue.cjs2.js");require("./forms/ElInputMeasureUnit.vue.cjs2.js");require("./forms/ElInputNumber.vue.cjs2.js");require("./forms/ElInputPhone.vue.cjs2.js");require("./forms/ElInputSelect.vue.cjs2.js");require("./forms/ElInputText.vue.cjs2.js");require("./forms/ElInputTextarea.vue.cjs2.js");const c=require("./ElTabGroup.vue.cjs2.js");require("./ElToast.vue.cjs2.js");require("./forms/ElInputRadioButton.vue.cjs2.js");require("./composable/useModalStack.cjs.js");require("../node_modules/swiper/shared/swiper-core.cjs.js");require("./forms/ElInputSearch.vue.cjs2.js");const m={class:"rounded-3xl border shadow-md border-neutral-surface bg-neutral-surface overflow-hidden"},p={class:"px-4 py-8 flex justify-between items-center text-neutral-darker"},_={class:"flex flex-col gap-5"},q={class:"text-3xl font-semibold"},v={key:0,class:"text-sm"},b={class:"flex items-center gap-2"},f={class:"min-w-44"},V={class:"px-4 pb-6"},h={key:1,class:"flex"},E={class:"min-w-72"},N={class:"flex-1 w-full"},g=["table","drawer"],k=e.defineComponent({__name:"ElContainerTemplate",props:{title:{},description:{},tabs:{},selectedTab:{},variant:{}},emits:["onTabChange"],setup(s,{emit:a}){const i=s,d=a,l=e.ref(i.selectedTab||"");return(t,r)=>{var n;return e.openBlock(),e.createElementBlock("div",m,[e.createElementVNode("div",p,[e.createElementVNode("div",_,[e.createElementVNode("h1",q,e.toDisplayString(t.title),1),(n=t.description)!=null&&n.length?(e.openBlock(),e.createElementBlock("p",v,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",b,[e.createElementVNode("div",f,[e.renderSlot(t.$slots,"input-select")]),e.renderSlot(t.$slots,"secondary-button"),e.renderSlot(t.$slots,"primary-button"),e.renderSlot(t.$slots,"icon-button")])]),e.createElementVNode("div",V,[t.tabs?(e.openBlock(),e.createBlock(c.default,e.mergeProps({key:0},t.tabs,{modelValue:l.value,"onUpdate:modelValue":[r[0]||(r[0]=o=>l.value=o),r[1]||(r[1]=o=>d("onTabChange",o))]}),null,16,["modelValue"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",null,[t.variant.name==="table"?e.renderSlot(t.$slots,"table",{key:0}):e.createCommentVNode("",!0),t.variant.name==="drawer"?(e.openBlock(),e.createElementBlock("div",h,[e.createElementVNode("div",E,[e.createVNode(e.unref(u.default),{headline:t.variant.drawerTitle},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"drawer-content")]),_:3},8,["headline"])]),e.createElementVNode("div",N,[e.renderSlot(t.$slots,"content-slot")])])):e.createCommentVNode("",!0)])])}}});exports.default=k;exports.elContainerTemplateVariants=g;
2
2
  //# sourceMappingURL=ElContainerTemplate.vue.cjs2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElContainerTemplate.vue.cjs2.js","sources":["../../src/ElContainerTemplate.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elContainerTemplateVariants = ['table', 'drawer'] as const;\nexport type ElContainerTemplateVariant = (typeof elContainerTemplateVariants)[number];\n</script>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElDrawer } from '.';\nimport ElTabGroup from './ElTabGroup.vue';\n\nconst props = defineProps<{\n title: string;\n description?: string;\n tabs?: InstanceType<typeof ElTabGroup>['$props'];\n selectedTab?: string;\n variant: { name: 'table' } | { name: 'drawer'; drawerTitle: string };\n}>();\n\nconst emit = defineEmits<{\n (event: 'onTabChange', tab: string): void;\n}>();\n\nconst selectedTab = ref<string>(props.selectedTab || '');\n</script>\n\n<template>\n <div class=\"rounded-3xl border shadow-md border-neutral-surface bg-neutral-surface overflow-hidden\">\n <div class=\"px-4 py-8 flex justify-between items-center text-neutral-darker\">\n <div class=\"flex flex-col gap-5\">\n <h1 class=\"text-3xl font-semibold\">{{ title }}</h1>\n <p v-if=\"description?.length\" class=\"text-sm\">{{ description }}</p>\n </div>\n <div class=\"flex items-center gap-2\">\n <div class=\"min-w-44\">\n <slot name=\"input-select\"> </slot>\n </div>\n <slot name=\"secondary-button\"></slot>\n <slot name=\"primary-button\"></slot>\n\n <slot name=\"icon-button\"></slot>\n </div>\n </div>\n <div class=\"px-4 pb-6\">\n <ElTabGroup v-if=\"tabs\" v-bind=\"tabs\" v-model=\"selectedTab\" @update:model-value=\"tab => emit('onTabChange', tab)\" />\n </div>\n <div>\n <slot v-if=\"variant.name === 'table'\" name=\"table\"> </slot>\n <div v-if=\"variant.name === 'drawer'\" class=\"flex\">\n <div class=\"min-w-72\">\n <ElDrawer :headline=\"variant.drawerTitle\">\n <slot name=\"drawer-content\"> </slot>\n </ElDrawer>\n </div>\n <div class=\"flex-1 w-full\">\n <slot name=\"content-slot\"> </slot>\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["elContainerTemplateVariants","props","__props","emit","__emit","selectedTab","ref"],"mappings":"4iDACaA,EAA8B,CAAC,QAAS,QAAQ,8JAS7D,MAAMC,EAAQC,EAQRC,EAAOC,EAIPC,EAAcC,EAAA,IAAYL,EAAM,aAAe,EAAE"}
1
+ {"version":3,"file":"ElContainerTemplate.vue.cjs2.js","sources":["../../src/ElContainerTemplate.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elContainerTemplateVariants = ['table', 'drawer'] as const;\nexport type ElContainerTemplateVariant = (typeof elContainerTemplateVariants)[number];\n</script>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElDrawer } from '.';\nimport ElTabGroup from './ElTabGroup.vue';\n\nconst props = defineProps<{\n title: string;\n description?: string;\n tabs?: InstanceType<typeof ElTabGroup>['$props'];\n selectedTab?: string;\n variant: { name: 'table' } | { name: 'drawer'; drawerTitle: string };\n}>();\n\nconst emit = defineEmits<{\n (event: 'onTabChange', tab: string): void;\n}>();\n\nconst selectedTab = ref<string>(props.selectedTab || '');\n</script>\n\n<template>\n <div class=\"rounded-3xl border shadow-md border-neutral-surface bg-neutral-surface overflow-hidden\">\n <div class=\"px-4 py-8 flex justify-between items-center text-neutral-darker\">\n <div class=\"flex flex-col gap-5\">\n <h1 class=\"text-3xl font-semibold\">{{ title }}</h1>\n <p v-if=\"description?.length\" class=\"text-sm\">{{ description }}</p>\n </div>\n <div class=\"flex items-center gap-2\">\n <div class=\"min-w-44\">\n <slot name=\"input-select\"> </slot>\n </div>\n <slot name=\"secondary-button\"></slot>\n <slot name=\"primary-button\"></slot>\n\n <slot name=\"icon-button\"></slot>\n </div>\n </div>\n <div class=\"px-4 pb-6\">\n <ElTabGroup v-if=\"tabs\" v-bind=\"tabs\" v-model=\"selectedTab\" @update:model-value=\"tab => emit('onTabChange', tab)\" />\n </div>\n <div>\n <slot v-if=\"variant.name === 'table'\" name=\"table\"> </slot>\n <div v-if=\"variant.name === 'drawer'\" class=\"flex\">\n <div class=\"min-w-72\">\n <ElDrawer :headline=\"variant.drawerTitle\">\n <slot name=\"drawer-content\"> </slot>\n </ElDrawer>\n </div>\n <div class=\"flex-1 w-full\">\n <slot name=\"content-slot\"> </slot>\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["elContainerTemplateVariants","props","__props","emit","__emit","selectedTab","ref"],"mappings":"ylDACaA,EAA8B,CAAC,QAAS,QAAQ,8JAS7D,MAAMC,EAAQC,EAQRC,EAAOC,EAIPC,EAAcC,EAAA,IAAYL,EAAM,aAAe,EAAE"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as b,ref as h,openBlock as r,createElementBlock as a,createElementVNode as t,toDisplayString as m,createCommentVNode as i,renderSlot as o,createBlock as v,mergeProps as _,createVNode as w,unref as y,withCtx as $}from"vue";/* empty css */import"./polyfills.esm.js";import"vee-validate";import"../node_modules/codice-fiscale-js/dist/codice.fiscale.commonjs2.esm.js";import"../node_modules/lodash/lodash.esm.js";import"./tailwind.plugin.esm.js";import"../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.esm.js";import g from"./ElDrawer.vue.esm2.js";import"./forms/ElInputCheckbox.vue.esm2.js";import"./forms/ElInputDate.vue.esm2.js";import"./forms/ElInputFile.vue.esm2.js";import"./forms/ElInputMeasureUnit.vue.esm2.js";import"./forms/ElInputNumber.vue.esm2.js";import"./forms/ElInputPhone.vue.esm2.js";import"./forms/ElInputSelect.vue.esm2.js";import"./forms/ElInputText.vue.esm2.js";import"./forms/ElInputTextarea.vue.esm2.js";import k from"./ElTabGroup.vue.esm2.js";import"./ElToast.vue.esm2.js";import"./forms/ElInputRadioButton.vue.esm2.js";import"../node_modules/swiper/shared/swiper-core.esm.js";import"./forms/ElInputSearch.vue.esm2.js";const T={class:"rounded-3xl border shadow-md border-neutral-surface bg-neutral-surface overflow-hidden"},C={class:"px-4 py-8 flex justify-between items-center text-neutral-darker"},V={class:"flex flex-col gap-5"},B={class:"text-3xl font-semibold"},E={key:0,class:"text-sm"},N={class:"flex items-center gap-2"},S={class:"min-w-44"},j={class:"px-4 pb-6"},x={key:1,class:"flex"},D={class:"min-w-72"},P={class:"flex-1 w-full"},re=["table","drawer"],ie=b({__name:"ElContainerTemplate",props:{title:{},description:{},tabs:{},selectedTab:{},variant:{}},emits:["onTabChange"],setup(p,{emit:c}){const u=p,f=c,l=h(u.selectedTab||"");return(e,s)=>{var d;return r(),a("div",T,[t("div",C,[t("div",V,[t("h1",B,m(e.title),1),(d=e.description)!=null&&d.length?(r(),a("p",E,m(e.description),1)):i("",!0)]),t("div",N,[t("div",S,[o(e.$slots,"input-select")]),o(e.$slots,"secondary-button"),o(e.$slots,"primary-button"),o(e.$slots,"icon-button")])]),t("div",j,[e.tabs?(r(),v(k,_({key:0},e.tabs,{modelValue:l.value,"onUpdate:modelValue":[s[0]||(s[0]=n=>l.value=n),s[1]||(s[1]=n=>f("onTabChange",n))]}),null,16,["modelValue"])):i("",!0)]),t("div",null,[e.variant.name==="table"?o(e.$slots,"table",{key:0}):i("",!0),e.variant.name==="drawer"?(r(),a("div",x,[t("div",D,[w(y(g),{headline:e.variant.drawerTitle},{default:$(()=>[o(e.$slots,"drawer-content")]),_:3},8,["headline"])]),t("div",P,[o(e.$slots,"content-slot")])])):i("",!0)])])}}});export{ie as default,re as elContainerTemplateVariants};
1
+ import{defineComponent as b,ref as h,openBlock as r,createElementBlock as a,createElementVNode as t,toDisplayString as m,createCommentVNode as i,renderSlot as o,createBlock as v,mergeProps as _,createVNode as w,unref as y,withCtx as $}from"vue";/* empty css */import"./polyfills.esm.js";import"vee-validate";import"../node_modules/codice-fiscale-js/dist/codice.fiscale.commonjs2.esm.js";import"../node_modules/lodash/lodash.esm.js";import"./tailwind.plugin.esm.js";import"../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.esm.js";import g from"./ElDrawer.vue.esm2.js";import"./forms/ElInputCheckbox.vue.esm2.js";import"./forms/ElInputDate.vue.esm2.js";import"./forms/ElInputFile.vue.esm2.js";import"./forms/ElInputMeasureUnit.vue.esm2.js";import"./forms/ElInputNumber.vue.esm2.js";import"./forms/ElInputPhone.vue.esm2.js";import"./forms/ElInputSelect.vue.esm2.js";import"./forms/ElInputText.vue.esm2.js";import"./forms/ElInputTextarea.vue.esm2.js";import k from"./ElTabGroup.vue.esm2.js";import"./ElToast.vue.esm2.js";import"./forms/ElInputRadioButton.vue.esm2.js";import"./composable/useModalStack.esm.js";import"../node_modules/swiper/shared/swiper-core.esm.js";import"./forms/ElInputSearch.vue.esm2.js";const T={class:"rounded-3xl border shadow-md border-neutral-surface bg-neutral-surface overflow-hidden"},C={class:"px-4 py-8 flex justify-between items-center text-neutral-darker"},V={class:"flex flex-col gap-5"},B={class:"text-3xl font-semibold"},E={key:0,class:"text-sm"},N={class:"flex items-center gap-2"},S={class:"min-w-44"},j={class:"px-4 pb-6"},x={key:1,class:"flex"},D={class:"min-w-72"},P={class:"flex-1 w-full"},ie=["table","drawer"],ne=b({__name:"ElContainerTemplate",props:{title:{},description:{},tabs:{},selectedTab:{},variant:{}},emits:["onTabChange"],setup(p,{emit:c}){const u=p,f=c,l=h(u.selectedTab||"");return(e,s)=>{var d;return r(),a("div",T,[t("div",C,[t("div",V,[t("h1",B,m(e.title),1),(d=e.description)!=null&&d.length?(r(),a("p",E,m(e.description),1)):i("",!0)]),t("div",N,[t("div",S,[o(e.$slots,"input-select")]),o(e.$slots,"secondary-button"),o(e.$slots,"primary-button"),o(e.$slots,"icon-button")])]),t("div",j,[e.tabs?(r(),v(k,_({key:0},e.tabs,{modelValue:l.value,"onUpdate:modelValue":[s[0]||(s[0]=n=>l.value=n),s[1]||(s[1]=n=>f("onTabChange",n))]}),null,16,["modelValue"])):i("",!0)]),t("div",null,[e.variant.name==="table"?o(e.$slots,"table",{key:0}):i("",!0),e.variant.name==="drawer"?(r(),a("div",x,[t("div",D,[w(y(g),{headline:e.variant.drawerTitle},{default:$(()=>[o(e.$slots,"drawer-content")]),_:3},8,["headline"])]),t("div",P,[o(e.$slots,"content-slot")])])):i("",!0)])])}}});export{ne as default,ie as elContainerTemplateVariants};
2
2
  //# sourceMappingURL=ElContainerTemplate.vue.esm2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElContainerTemplate.vue.esm2.js","sources":["../../src/ElContainerTemplate.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elContainerTemplateVariants = ['table', 'drawer'] as const;\nexport type ElContainerTemplateVariant = (typeof elContainerTemplateVariants)[number];\n</script>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElDrawer } from '.';\nimport ElTabGroup from './ElTabGroup.vue';\n\nconst props = defineProps<{\n title: string;\n description?: string;\n tabs?: InstanceType<typeof ElTabGroup>['$props'];\n selectedTab?: string;\n variant: { name: 'table' } | { name: 'drawer'; drawerTitle: string };\n}>();\n\nconst emit = defineEmits<{\n (event: 'onTabChange', tab: string): void;\n}>();\n\nconst selectedTab = ref<string>(props.selectedTab || '');\n</script>\n\n<template>\n <div class=\"rounded-3xl border shadow-md border-neutral-surface bg-neutral-surface overflow-hidden\">\n <div class=\"px-4 py-8 flex justify-between items-center text-neutral-darker\">\n <div class=\"flex flex-col gap-5\">\n <h1 class=\"text-3xl font-semibold\">{{ title }}</h1>\n <p v-if=\"description?.length\" class=\"text-sm\">{{ description }}</p>\n </div>\n <div class=\"flex items-center gap-2\">\n <div class=\"min-w-44\">\n <slot name=\"input-select\"> </slot>\n </div>\n <slot name=\"secondary-button\"></slot>\n <slot name=\"primary-button\"></slot>\n\n <slot name=\"icon-button\"></slot>\n </div>\n </div>\n <div class=\"px-4 pb-6\">\n <ElTabGroup v-if=\"tabs\" v-bind=\"tabs\" v-model=\"selectedTab\" @update:model-value=\"tab => emit('onTabChange', tab)\" />\n </div>\n <div>\n <slot v-if=\"variant.name === 'table'\" name=\"table\"> </slot>\n <div v-if=\"variant.name === 'drawer'\" class=\"flex\">\n <div class=\"min-w-72\">\n <ElDrawer :headline=\"variant.drawerTitle\">\n <slot name=\"drawer-content\"> </slot>\n </ElDrawer>\n </div>\n <div class=\"flex-1 w-full\">\n <slot name=\"content-slot\"> </slot>\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["elContainerTemplateVariants","props","__props","emit","__emit","selectedTab","ref"],"mappings":"0lDACaA,GAA8B,CAAC,QAAS,QAAQ,+IAS7D,MAAMC,EAAQC,EAQRC,EAAOC,EAIPC,EAAcC,EAAYL,EAAM,aAAe,EAAE"}
1
+ {"version":3,"file":"ElContainerTemplate.vue.esm2.js","sources":["../../src/ElContainerTemplate.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elContainerTemplateVariants = ['table', 'drawer'] as const;\nexport type ElContainerTemplateVariant = (typeof elContainerTemplateVariants)[number];\n</script>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ElDrawer } from '.';\nimport ElTabGroup from './ElTabGroup.vue';\n\nconst props = defineProps<{\n title: string;\n description?: string;\n tabs?: InstanceType<typeof ElTabGroup>['$props'];\n selectedTab?: string;\n variant: { name: 'table' } | { name: 'drawer'; drawerTitle: string };\n}>();\n\nconst emit = defineEmits<{\n (event: 'onTabChange', tab: string): void;\n}>();\n\nconst selectedTab = ref<string>(props.selectedTab || '');\n</script>\n\n<template>\n <div class=\"rounded-3xl border shadow-md border-neutral-surface bg-neutral-surface overflow-hidden\">\n <div class=\"px-4 py-8 flex justify-between items-center text-neutral-darker\">\n <div class=\"flex flex-col gap-5\">\n <h1 class=\"text-3xl font-semibold\">{{ title }}</h1>\n <p v-if=\"description?.length\" class=\"text-sm\">{{ description }}</p>\n </div>\n <div class=\"flex items-center gap-2\">\n <div class=\"min-w-44\">\n <slot name=\"input-select\"> </slot>\n </div>\n <slot name=\"secondary-button\"></slot>\n <slot name=\"primary-button\"></slot>\n\n <slot name=\"icon-button\"></slot>\n </div>\n </div>\n <div class=\"px-4 pb-6\">\n <ElTabGroup v-if=\"tabs\" v-bind=\"tabs\" v-model=\"selectedTab\" @update:model-value=\"tab => emit('onTabChange', tab)\" />\n </div>\n <div>\n <slot v-if=\"variant.name === 'table'\" name=\"table\"> </slot>\n <div v-if=\"variant.name === 'drawer'\" class=\"flex\">\n <div class=\"min-w-72\">\n <ElDrawer :headline=\"variant.drawerTitle\">\n <slot name=\"drawer-content\"> </slot>\n </ElDrawer>\n </div>\n <div class=\"flex-1 w-full\">\n <slot name=\"content-slot\"> </slot>\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["elContainerTemplateVariants","props","__props","emit","__emit","selectedTab","ref"],"mappings":"ooDACaA,GAA8B,CAAC,QAAS,QAAQ,+IAS7D,MAAMC,EAAQC,EAQRC,EAAOC,EAIPC,EAAcC,EAAYL,EAAM,aAAe,EAAE"}
@@ -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={class:"flex flex-row items-start gap-x-2 flex-grow basis-64"},d={class:"text-sm flex flex-col flex-grow mt-0.5"},p=["innerHTML"],m=["innerHTML"],f={key:0,class:"font-semibold min-h-6"},k={key:1},g=["error","warning","info"],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(l){const n=l,a=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,B)=>{var o,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"}])},[e.createElementVNode("div",u,[t.loading?(e.openBlock(),e.createBlock(c.default,{key:0,class:"flex-shrink-0 px-1 pt-1"})):(e.openBlock(),e.createBlock(i.default,e.mergeProps({key:1},t.icon,{name:a.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",d,[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,p)):e.createCommentVNode("",!0),t.description?(e.openBlock(),e.createElementBlock("span",{key:1,innerHTML:t.description},null,8,m)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t.title?(e.openBlock(),e.createElementBlock("span",f,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),t.description?(e.openBlock(),e.createElementBlock("span",k,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"}],label:(o=t.action)==null?void 0:o.label,onClick:(r=t.action)==null?void 0:r.onClick}),null,16,["variant","class","label","onClick"])):e.createCommentVNode("",!0)],2)}}});exports.default=v;exports.elInlineBannerStatuses=g;
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;
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'] 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';\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 }\"\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 <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 :label=\"action?.label\"\n @click=\"action?.onClick\"\n />\n </div>\n</template>\n"],"names":["elInlineBannerStatuses","props","__props","iconName","computed","_a"],"mappings":"obACaA,EAAyB,CAAC,QAAS,UAAW,MAAM,uNAUjE,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 } 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,2 +1,2 @@
1
- import{defineComponent as p,computed as g,openBlock as n,createElementBlock as t,normalizeClass as y,createElementVNode as l,createBlock as o,mergeProps as c,Fragment as d,createCommentVNode as r,toDisplayString as u}from"vue";import h from"./ElIcon.vue.esm2.js";import v from"./ElButton.vue.esm2.js";import w from"./ElSpinner.vue.esm2.js";const b={class:"flex flex-row items-start gap-x-2 flex-grow basis-64"},k={class:"text-sm flex flex-col flex-grow mt-0.5"},B=["innerHTML"],C=["innerHTML"],I={key:0,class:"font-semibold min-h-6"},x={key:1},N=["error","warning","info"],$=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 a=m,f=g(()=>{var e;if((e=a.icon)!=null&&e.name)return a.icon.name;switch(a.status){case"info":return"InformationCircleIcon";case"warning":return"ExclamationTriangleIcon";case"error":return"InformationCircleIcon";default:return"InformationCircleIcon"}});return(e,T)=>{var i,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"}])},[l("div",b,[e.loading?(n(),o(w,{key:0,class:"flex-shrink-0 px-1 pt-1"})):(n(),o(h,c({key:1},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",k,[e.html?(n(),t(d,{key:0},[e.title?(n(),t("span",{key:0,class:"font-semibold min-h-6",innerHTML:e.title},null,8,B)):r("",!0),e.description?(n(),t("span",{key:1,innerHTML:e.description},null,8,C)):r("",!0)],64)):(n(),t(d,{key:1},[e.title?(n(),t("span",I,u(e.title),1)):r("",!0),e.description?(n(),t("span",x,u(e.description),1)):r("",!0)],64))])]),e.action?(n(),o(v,c({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"}],label:(i=e.action)==null?void 0:i.label,onClick:(s=e.action)==null?void 0:s.onClick}),null,16,["variant","class","label","onClick"])):r("",!0)],2)}}});export{$ as default,N as elInlineBannerStatuses};
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};
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'] 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';\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 }\"\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 <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 :label=\"action?.label\"\n @click=\"action?.onClick\"\n />\n </div>\n</template>\n"],"names":["elInlineBannerStatuses","props","__props","iconName","computed","_a"],"mappings":"giBACaA,EAAyB,CAAC,QAAS,UAAW,MAAM,uMAUjE,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 } 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,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),a=require("../node_modules/@vueuse/core/index.cjs.js"),z=require("../node_modules/@vueuse/components/index.cjs.js"),d=require("./ElButton.vue.cjs2.js"),h=require("./ElIcon.vue.cjs2.js"),C=require("./ElIconButton.vue.cjs2.js"),E=require("./_CustomTransition.vue.cjs2.js"),N={key:0,class:"fixed inset-1 inset-x-0 bottom-0 z-40 flex items-center justify-center px-4 pb-6 sm:p-0"},S={class:"fixed inset-0 transition-opacity"},M=["data-cy"],V={class:"flex items-center justify-between gap-2 flex-1 overflow-hidden"},A={class:"text-xl font-semibold truncate flex-1"},O={key:0,class:"text-base font-normal text-wrap break-words"},n=["xs","m","l","xl"],y={xs:360,m:576,l:768,xl:1280},q=["primary","secondary","error"],I=e.defineComponent({__name:"ElModal",props:e.mergeModels({size:{default:"m"},color:{default:"primary"},headerIcon:{},title:{default:void 0},description:{default:void 0},primaryAction:{},secondaryAction:{default:void 0},tertiaryAction:{default:void 0},isNestedModal:{type:Boolean}},{isOpen:{default:!1,required:!0,type:Boolean},isOpenModifiers:{}}),emits:e.mergeModels(["closed"],["update:isOpen"]),setup(u,{emit:x}){const i=e.useModel(u,"isOpen"),k=x,s=u,c=()=>i.value=!1,p=e.ref(null),l=e.ref(null),t=e.computed(()=>s.color==="error"),{arrivedState:m}=a.useScroll(l),{height:b}=a.useElementSize(l),{width:g}=a.useWindowSize(),f=e.computed(()=>l.value&&l.value.scrollHeight>b.value),_=a.useScrollLock(document.body),o=e.computed(()=>{for(let r=n.indexOf(s.size);r>=0;r--)if(g.value>=y[n[r]])return n[r];return s.size}),B=r=>{r.target===p.value&&c()};return e.watch(()=>i.value,r=>{(!s.isNestedModal||r)&&(_.value=r),r||k("closed")}),a.onKeyStroke("Escape",r=>{r.preventDefault(),c()}),(r,w)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(E.default,{name:"fade"},{default:e.withCtx(()=>{var v;return[i.value?(e.openBlock(),e.createElementBlock("div",N,[e.createElementVNode("div",S,[e.createElementVNode("div",{ref_key:"backdrop",ref:p,class:"absolute inset-0 bg-gray-500 opacity-75"},null,512)]),e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex flex-col gap-7 py-8 z-50 bg-neutral-surface shadow-md rounded-md border border-neutral-surface max-h-[80%] text-neutral-darker",{"w-[360px]":o.value==="xs","w-[576px]":o.value==="m","w-[768px]":o.value==="l","w-[1280px]":o.value==="xl"}]),"data-cy":`el-modal-${(v=r.title)==null?void 0:v.replaceAll(" ","")}`},[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center justify-between gap-2",{"px-4":o.value==="xs","px-8":o.value!=="xs"}])},[e.createElementVNode("div",V,[e.createElementVNode("div",{class:e.normalizeClass([{"text-error bg-error-light-active":t.value,"text-primary bg-neutral-surface-raised":r.color==="primary","text-secondary bg-neutral-surface-raised":r.color==="secondary"},"!h-8 !w-8 rounded-full"])},[e.createVNode(h.default,e.mergeProps(t.value?{name:"ExclamationCircleIcon"}:r.headerIcon,{class:"p-1"}),null,16)],2),e.createElementVNode("div",A,e.toDisplayString(r.title),1)]),e.createVNode(C.default,{icon:{name:"XMarkIcon"},error:t.value,onClick:c},null,8,["error"])],2),e.createElementVNode("div",{ref_key:"modalBody",ref:l,class:e.normalizeClass(["flex flex-col gap-7 border-neutral-surface overflow-y-auto overflow-x-hidden",{"px-4":o.value==="xs","px-8":o.value!=="xs","border-t":f.value&&!e.unref(m).top,"border-b":f.value&&!e.unref(m).bottom}])},[r.description?(e.openBlock(),e.createElementBlock("p",O,e.toDisplayString(r.description),1)):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"default")],2),r.primaryAction||r.secondaryAction||r.tertiaryAction?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex items-center gap-4",{"flex-col-reverse px-4":o.value==="xs","flex-row px-8":o.value!=="xs"}])},[r.tertiaryAction?(e.openBlock(),e.createBlock(d.default,e.mergeProps({key:0},r.tertiaryAction,{variant:"tertiary",class:{"w-full":o.value==="xs"},size:o.value==="xs"?"l":"base",error:t.value||r.tertiaryAction.error}),null,16,["class","size","error"])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["flex gap-4",{"flex-col-reverse w-full":o.value==="xs","flex-row ml-auto":o.value!=="xs"}])},[r.secondaryAction?(e.openBlock(),e.createBlock(d.default,e.mergeProps({key:0},r.secondaryAction,{variant:"secondary",size:o.value==="xs"?"l":"base",error:t.value||r.secondaryAction.error}),null,16,["size","error"])):e.createCommentVNode("",!0),r.primaryAction?(e.openBlock(),e.createBlock(d.default,e.mergeProps({key:1},r.primaryAction,{variant:"primary",size:o.value==="xs"?"l":"base",error:t.value||r.primaryAction.error}),null,16,["size","error"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0)],10,M)),[[e.unref(z.VOnClickOutside),B]])])):e.createCommentVNode("",!0)]}),_:3})]))}});exports.default=I;exports.elModalColors=q;exports.elModalSizes=n;exports.elModalSizesBreakpoints=y;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),s=require("../node_modules/@vueuse/core/index.cjs.js"),h=require("../node_modules/@vueuse/components/index.cjs.js"),u=require("./ElButton.vue.cjs2.js"),C=require("./ElIcon.vue.cjs2.js"),E=require("./ElIconButton.vue.cjs2.js"),M=require("./_CustomTransition.vue.cjs2.js"),S=require("./composable/useModalStack.cjs.js"),V={key:0,class:"fixed inset-1 inset-x-0 bottom-0 z-40 flex items-center justify-center px-4 pb-6 sm:p-0"},N={class:"fixed inset-0 transition-opacity"},A=["data-cy"],O={class:"flex items-center justify-between gap-2 flex-1 overflow-hidden"},q={class:"text-xl font-semibold truncate flex-1"},I={key:0,class:"text-base font-normal text-wrap break-words"},n=["xs","m","l","xl"],x={xs:360,m:576,l:768,xl:1280},P=["primary","secondary","error"],j=e.defineComponent({__name:"ElModal",props:e.mergeModels({size:{default:"m"},color:{default:"primary"},headerIcon:{},title:{default:void 0},description:{default:void 0},primaryAction:{},secondaryAction:{default:void 0},tertiaryAction:{default:void 0}},{isOpen:{default:!1,required:!0,type:Boolean},isOpenModifiers:{}}),emits:e.mergeModels(["closed"],["update:isOpen"]),setup(d,{emit:k}){const a=e.useModel(d,"isOpen"),g=k,i=d,c=()=>a.value=!1,p=e.ref(null),l=e.ref(null),t=e.computed(()=>i.color==="error"),{arrivedState:m}=s.useScroll(l),{height:_}=s.useElementSize(l),{width:b}=s.useWindowSize(),f=e.computed(()=>l.value&&l.value.scrollHeight>_.value),{registerModal:B,unregisterModal:v}=S.useModalStack(),o=e.computed(()=>{for(let r=n.indexOf(i.size);r>=0;r--)if(b.value>=x[n[r]])return n[r];return i.size}),w=r=>{r.target===p.value&&c()};return e.watch(()=>a.value,r=>{r?B():(v(),g("closed"))}),e.onUnmounted(()=>{a.value&&v()}),s.onKeyStroke("Escape",r=>{r.preventDefault(),c()}),(r,z)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(M.default,{name:"fade"},{default:e.withCtx(()=>{var y;return[a.value?(e.openBlock(),e.createElementBlock("div",V,[e.createElementVNode("div",N,[e.createElementVNode("div",{ref_key:"backdrop",ref:p,class:"absolute inset-0 bg-gray-500 opacity-75"},null,512)]),e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex flex-col gap-7 py-8 z-50 bg-neutral-surface shadow-md rounded-md border border-neutral-surface max-h-[80%] text-neutral-darker",{"w-[360px]":o.value==="xs","w-[576px]":o.value==="m","w-[768px]":o.value==="l","w-[1280px]":o.value==="xl"}]),"data-cy":`el-modal-${(y=r.title)==null?void 0:y.replaceAll(" ","")}`},[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center justify-between gap-2",{"px-4":o.value==="xs","px-8":o.value!=="xs"}])},[e.createElementVNode("div",O,[e.createElementVNode("div",{class:e.normalizeClass([{"text-error bg-error-light-active":t.value,"text-primary bg-neutral-surface-raised":r.color==="primary","text-secondary bg-neutral-surface-raised":r.color==="secondary"},"!h-8 !w-8 rounded-full"])},[e.createVNode(C.default,e.mergeProps(t.value?{name:"ExclamationCircleIcon"}:r.headerIcon,{class:"p-1"}),null,16)],2),e.createElementVNode("div",q,e.toDisplayString(r.title),1)]),e.createVNode(E.default,{icon:{name:"XMarkIcon"},error:t.value,onClick:c},null,8,["error"])],2),e.createElementVNode("div",{ref_key:"modalBody",ref:l,class:e.normalizeClass(["flex flex-col gap-7 border-neutral-surface overflow-y-auto overflow-x-hidden",{"px-4":o.value==="xs","px-8":o.value!=="xs","border-t":f.value&&!e.unref(m).top,"border-b":f.value&&!e.unref(m).bottom}])},[r.description?(e.openBlock(),e.createElementBlock("p",I,e.toDisplayString(r.description),1)):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"default")],2),r.primaryAction||r.secondaryAction||r.tertiaryAction?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex items-center gap-4",{"flex-col-reverse px-4":o.value==="xs","flex-row px-8":o.value!=="xs"}])},[r.tertiaryAction?(e.openBlock(),e.createBlock(u.default,e.mergeProps({key:0},r.tertiaryAction,{variant:"tertiary",class:{"w-full":o.value==="xs"},size:o.value==="xs"?"l":"base",error:t.value||r.tertiaryAction.error}),null,16,["class","size","error"])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["flex gap-4",{"flex-col-reverse w-full":o.value==="xs","flex-row ml-auto":o.value!=="xs"}])},[r.secondaryAction?(e.openBlock(),e.createBlock(u.default,e.mergeProps({key:0},r.secondaryAction,{variant:"secondary",size:o.value==="xs"?"l":"base",error:t.value||r.secondaryAction.error}),null,16,["size","error"])):e.createCommentVNode("",!0),r.primaryAction?(e.openBlock(),e.createBlock(u.default,e.mergeProps({key:1},r.primaryAction,{variant:"primary",size:o.value==="xs"?"l":"base",error:t.value||r.primaryAction.error}),null,16,["size","error"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0)],10,A)),[[e.unref(h.VOnClickOutside),w]])])):e.createCommentVNode("",!0)]}),_:3})]))}});exports.default=j;exports.elModalColors=P;exports.elModalSizes=n;exports.elModalSizesBreakpoints=x;
2
2
  //# sourceMappingURL=ElModal.vue.cjs2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElModal.vue.cjs2.js","sources":["../../src/ElModal.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elModalSizes = ['xs', 'm', 'l', 'xl'] as const;\nexport type ElModalSize = (typeof elModalSizes)[number];\n\nexport const elModalSizesBreakpoints = { xs: 360, m: 576, l: 768, xl: 1280 };\n\nexport const elModalColors = ['primary', 'secondary', 'error'] as const;\nexport type ElModalColor = (typeof elModalColors)[number];\n</script>\n\n<script setup lang=\"ts\">\nimport { onKeyStroke, useElementSize, useScroll, useScrollLock, useWindowSize } from '@vueuse/core';\nimport { vOnClickOutside } from '@vueuse/components';\nimport { computed, ref, watch } from 'vue';\n\nimport ElButton from '@/ElButton.vue';\nimport ElIcon from '@/ElIcon.vue';\nimport ElIconButton from '@/ElIconButton.vue';\nimport CustomTransition from '@/_CustomTransition.vue';\n\nexport interface ElModalProps {\n size?: ElModalSize;\n color?: ElModalColor;\n headerIcon: InstanceType<typeof ElIcon>['$props'];\n title: string;\n description?: string;\n primaryAction: Omit<InstanceType<typeof ElButton>['$props'], 'size' | 'variant'>;\n secondaryAction?: Omit<InstanceType<typeof ElButton>['$props'], 'size' | 'variant'>;\n tertiaryAction?: Omit<InstanceType<typeof ElButton>['$props'], 'size' | 'variant'>;\n isNestedModal?: boolean;\n}\n\nconst isOpen = defineModel('isOpen', {\n default: false,\n required: true,\n type: Boolean,\n});\n\nconst emit = defineEmits<{ (event: 'closed'): void }>();\n\nconst props = withDefaults(defineProps<ElModalProps>(), {\n size: 'm',\n color: 'primary',\n title: undefined,\n description: undefined,\n secondaryAction: undefined,\n tertiaryAction: undefined,\n});\n\nconst closeModal = () => (isOpen.value = false);\n\nconst backdrop = ref<HTMLElement | null>(null);\nconst modalBody = ref<HTMLElement | null>(null);\n\nconst isInErrorState = computed(() => props.color === 'error');\n\nconst { arrivedState } = useScroll(modalBody);\nconst { height } = useElementSize(modalBody);\nconst { width: windowWidth } = useWindowSize();\n\nconst isModalScrollable = computed(() => modalBody.value && modalBody.value.scrollHeight > height.value);\nconst isBodyScrollLocked = useScrollLock(document.body);\n\nconst responsiveSize = computed(() => {\n for (let i = elModalSizes.indexOf(props.size); i >= 0; i--) {\n if (windowWidth.value >= elModalSizesBreakpoints[elModalSizes[i]]) return elModalSizes[i];\n }\n\n return props.size;\n});\n\nconst onClickOutside = (e: TouchEvent | MouseEvent) => {\n // This prevents the modal from closing when clicking on elements that use ElClipToAnchor (eg. ElInputSelect)\n const isClickOnBackdrop = e.target === backdrop.value;\n\n if (isClickOnBackdrop) closeModal();\n};\n\nwatch(\n () => isOpen.value,\n value => {\n if (!props.isNestedModal || value) isBodyScrollLocked.value = value;\n if (!value) emit('closed');\n },\n);\n\nonKeyStroke('Escape', e => {\n e.preventDefault();\n closeModal();\n});\n</script>\n\n<template>\n <Teleport to=\"body\">\n <CustomTransition name=\"fade\">\n <div v-if=\"isOpen\" class=\"fixed inset-1 inset-x-0 bottom-0 z-40 flex items-center justify-center px-4 pb-6 sm:p-0\">\n <!-- Backdrop -->\n <div class=\"fixed inset-0 transition-opacity\">\n <div ref=\"backdrop\" class=\"absolute inset-0 bg-gray-500 opacity-75\"></div>\n </div>\n\n <!-- Modal -->\n <div\n v-on-click-outside=\"onClickOutside\"\n class=\"flex flex-col gap-7 py-8 z-50 bg-neutral-surface shadow-md rounded-md border border-neutral-surface max-h-[80%] text-neutral-darker\"\n :class=\"{\n 'w-[360px]': responsiveSize === 'xs',\n 'w-[576px]': responsiveSize === 'm',\n 'w-[768px]': responsiveSize === 'l',\n 'w-[1280px]': responsiveSize === 'xl',\n }\"\n :data-cy=\"`el-modal-${title?.replaceAll(' ', '')}`\"\n >\n <!-- Header -->\n <div\n class=\"flex items-center justify-between gap-2\"\n :class=\"{ 'px-4': responsiveSize === 'xs', 'px-8': responsiveSize !== 'xs' }\"\n >\n <div class=\"flex items-center justify-between gap-2 flex-1 overflow-hidden\">\n <div\n :class=\"{\n 'text-error bg-error-light-active': isInErrorState,\n 'text-primary bg-neutral-surface-raised': color === 'primary',\n 'text-secondary bg-neutral-surface-raised': color === 'secondary',\n }\"\n class=\"!h-8 !w-8 rounded-full\"\n >\n <ElIcon v-bind=\"isInErrorState ? { name: 'ExclamationCircleIcon' } : headerIcon\" class=\"p-1\" />\n </div>\n\n <div class=\"text-xl font-semibold truncate flex-1\">{{ title }}</div>\n </div>\n\n <ElIconButton :icon=\"{ name: 'XMarkIcon' }\" :error=\"isInErrorState\" @click=\"closeModal\" />\n </div>\n\n <!-- Body -->\n <div\n ref=\"modalBody\"\n class=\"flex flex-col gap-7 border-neutral-surface overflow-y-auto overflow-x-hidden\"\n :class=\"{\n 'px-4': responsiveSize === 'xs',\n 'px-8': responsiveSize !== 'xs',\n 'border-t': isModalScrollable && !arrivedState.top,\n 'border-b': isModalScrollable && !arrivedState.bottom,\n }\"\n >\n <p v-if=\"description\" class=\"text-base font-normal text-wrap break-words\">{{ description }}</p>\n\n <slot name=\"default\"></slot>\n </div>\n\n <!-- Footer -->\n <div\n v-if=\"primaryAction || secondaryAction || tertiaryAction\"\n class=\"flex items-center gap-4\"\n :class=\"{ 'flex-col-reverse px-4': responsiveSize === 'xs', 'flex-row px-8': responsiveSize !== 'xs' }\"\n >\n <ElButton\n v-if=\"tertiaryAction\"\n v-bind=\"tertiaryAction\"\n variant=\"tertiary\"\n :class=\"{ 'w-full': responsiveSize === 'xs' }\"\n :size=\"responsiveSize === 'xs' ? 'l' : 'base'\"\n :error=\"isInErrorState || tertiaryAction.error\"\n />\n\n <div\n class=\"flex gap-4\"\n :class=\"{ 'flex-col-reverse w-full': responsiveSize === 'xs', 'flex-row ml-auto': responsiveSize !== 'xs' }\"\n >\n <ElButton\n v-if=\"secondaryAction\"\n v-bind=\"secondaryAction\"\n variant=\"secondary\"\n :size=\"responsiveSize === 'xs' ? 'l' : 'base'\"\n :error=\"isInErrorState || secondaryAction.error\"\n />\n\n <ElButton\n v-if=\"primaryAction\"\n v-bind=\"primaryAction\"\n variant=\"primary\"\n :size=\"responsiveSize === 'xs' ? 'l' : 'base'\"\n :error=\"isInErrorState || primaryAction.error\"\n />\n </div>\n </div>\n </div>\n </div>\n </CustomTransition>\n </Teleport>\n</template>\n"],"names":["elModalSizes","elModalSizesBreakpoints","elModalColors","isOpen","_useModel","__props","emit","__emit","props","closeModal","backdrop","ref","modalBody","isInErrorState","computed","arrivedState","useScroll","height","useElementSize","windowWidth","useWindowSize","isModalScrollable","isBodyScrollLocked","useScrollLock","responsiveSize","i","onClickOutside","e","watch","value","onKeyStroke"],"mappings":"kvBACaA,EAAe,CAAC,KAAM,IAAK,IAAK,IAAI,EAGpCC,EAA0B,CAAE,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,GAAI,IAAK,EAE9DC,EAAgB,CAAC,UAAW,YAAa,OAAO,maA0BvD,MAAAC,EAASC,EAAAA,SAAYC,EAAA,QAI1B,EAEKC,EAAOC,EAEPC,EAAQH,EASRI,EAAa,IAAON,EAAO,MAAQ,GAEnCO,EAAWC,MAAwB,IAAI,EACvCC,EAAYD,MAAwB,IAAI,EAExCE,EAAiBC,EAAAA,SAAS,IAAMN,EAAM,QAAU,OAAO,EAEvD,CAAE,aAAAO,CAAA,EAAiBC,EAAA,UAAUJ,CAAS,EACtC,CAAE,OAAAK,CAAA,EAAWC,EAAA,eAAeN,CAAS,EACrC,CAAE,MAAOO,CAAY,EAAIC,EAAc,cAAA,EAEvCC,EAAoBP,EAAAA,SAAS,IAAMF,EAAU,OAASA,EAAU,MAAM,aAAeK,EAAO,KAAK,EACjGK,EAAqBC,EAAAA,cAAc,SAAS,IAAI,EAEhDC,EAAiBV,EAAAA,SAAS,IAAM,CAC3B,QAAAW,EAAIzB,EAAa,QAAQQ,EAAM,IAAI,EAAGiB,GAAK,EAAGA,IACrD,GAAIN,EAAY,OAASlB,EAAwBD,EAAayB,CAAC,CAAC,EAAG,OAAOzB,EAAayB,CAAC,EAG1F,OAAOjB,EAAM,IAAA,CACd,EAEKkB,EAAkBC,GAA+B,CAE3BA,EAAE,SAAWjB,EAAS,OAEdD,GAAA,EAGpCmB,OAAAA,EAAA,MACE,IAAMzB,EAAO,MACJ0B,GAAA,EACH,CAACrB,EAAM,eAAiBqB,KAAOP,EAAmB,MAAQO,GACzDA,GAAOvB,EAAK,QAAQ,CAC3B,CAAA,EAGFwB,cAAY,SAAeH,GAAA,CACzBA,EAAE,eAAe,EACNlB,GAAA,CACZ"}
1
+ {"version":3,"file":"ElModal.vue.cjs2.js","sources":["../../src/ElModal.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elModalSizes = ['xs', 'm', 'l', 'xl'] as const;\nexport type ElModalSize = (typeof elModalSizes)[number];\n\nexport const elModalSizesBreakpoints = { xs: 360, m: 576, l: 768, xl: 1280 };\n\nexport const elModalColors = ['primary', 'secondary', 'error'] as const;\nexport type ElModalColor = (typeof elModalColors)[number];\n</script>\n\n<script setup lang=\"ts\">\nimport { onKeyStroke, useElementSize, useScroll, useWindowSize } from '@vueuse/core';\nimport { vOnClickOutside } from '@vueuse/components';\nimport { computed, ref, watch, onUnmounted } from 'vue';\n\nimport ElButton from '@/ElButton.vue';\nimport ElIcon from '@/ElIcon.vue';\nimport ElIconButton from '@/ElIconButton.vue';\nimport CustomTransition from '@/_CustomTransition.vue';\nimport { useModalStack } from '@/composable/useModalStack';\n\nexport interface ElModalProps {\n size?: ElModalSize;\n color?: ElModalColor;\n headerIcon: InstanceType<typeof ElIcon>['$props'];\n title: string;\n description?: string;\n primaryAction: Omit<InstanceType<typeof ElButton>['$props'], 'size' | 'variant'>;\n secondaryAction?: Omit<InstanceType<typeof ElButton>['$props'], 'size' | 'variant'>;\n tertiaryAction?: Omit<InstanceType<typeof ElButton>['$props'], 'size' | 'variant'>;\n}\n\nconst isOpen = defineModel('isOpen', {\n default: false,\n required: true,\n type: Boolean,\n});\n\nconst emit = defineEmits<{ (event: 'closed'): void }>();\n\nconst props = withDefaults(defineProps<ElModalProps>(), {\n size: 'm',\n color: 'primary',\n title: undefined,\n description: undefined,\n secondaryAction: undefined,\n tertiaryAction: undefined,\n});\n\nconst closeModal = () => (isOpen.value = false);\n\nconst backdrop = ref<HTMLElement | null>(null);\nconst modalBody = ref<HTMLElement | null>(null);\n\nconst isInErrorState = computed(() => props.color === 'error');\n\nconst { arrivedState } = useScroll(modalBody);\nconst { height } = useElementSize(modalBody);\nconst { width: windowWidth } = useWindowSize();\n\nconst isModalScrollable = computed(() => modalBody.value && modalBody.value.scrollHeight > height.value);\n\nconst { registerModal, unregisterModal } = useModalStack();\n\nconst responsiveSize = computed(() => {\n for (let i = elModalSizes.indexOf(props.size); i >= 0; i--) {\n if (windowWidth.value >= elModalSizesBreakpoints[elModalSizes[i]]) return elModalSizes[i];\n }\n\n return props.size;\n});\n\nconst onClickOutside = (e: TouchEvent | MouseEvent) => {\n // This prevents the modal from closing when clicking on elements that use ElClipToAnchor (eg. ElInputSelect)\n const isClickOnBackdrop = e.target === backdrop.value;\n\n if (isClickOnBackdrop) closeModal();\n};\n\nwatch(\n () => isOpen.value,\n value => {\n if (value) {\n registerModal();\n } else {\n unregisterModal();\n emit('closed');\n }\n },\n);\n\nonUnmounted(() => {\n if (isOpen.value) {\n unregisterModal();\n }\n});\n\nonKeyStroke('Escape', e => {\n e.preventDefault();\n closeModal();\n});\n</script>\n\n<template>\n <Teleport to=\"body\">\n <CustomTransition name=\"fade\">\n <div v-if=\"isOpen\" class=\"fixed inset-1 inset-x-0 bottom-0 z-40 flex items-center justify-center px-4 pb-6 sm:p-0\">\n <!-- Backdrop -->\n <div class=\"fixed inset-0 transition-opacity\">\n <div ref=\"backdrop\" class=\"absolute inset-0 bg-gray-500 opacity-75\"></div>\n </div>\n\n <!-- Modal -->\n <div\n v-on-click-outside=\"onClickOutside\"\n class=\"flex flex-col gap-7 py-8 z-50 bg-neutral-surface shadow-md rounded-md border border-neutral-surface max-h-[80%] text-neutral-darker\"\n :class=\"{\n 'w-[360px]': responsiveSize === 'xs',\n 'w-[576px]': responsiveSize === 'm',\n 'w-[768px]': responsiveSize === 'l',\n 'w-[1280px]': responsiveSize === 'xl',\n }\"\n :data-cy=\"`el-modal-${title?.replaceAll(' ', '')}`\"\n >\n <!-- Header -->\n <div\n class=\"flex items-center justify-between gap-2\"\n :class=\"{ 'px-4': responsiveSize === 'xs', 'px-8': responsiveSize !== 'xs' }\"\n >\n <div class=\"flex items-center justify-between gap-2 flex-1 overflow-hidden\">\n <div\n :class=\"{\n 'text-error bg-error-light-active': isInErrorState,\n 'text-primary bg-neutral-surface-raised': color === 'primary',\n 'text-secondary bg-neutral-surface-raised': color === 'secondary',\n }\"\n class=\"!h-8 !w-8 rounded-full\"\n >\n <ElIcon v-bind=\"isInErrorState ? { name: 'ExclamationCircleIcon' } : headerIcon\" class=\"p-1\" />\n </div>\n\n <div class=\"text-xl font-semibold truncate flex-1\">{{ title }}</div>\n </div>\n\n <ElIconButton :icon=\"{ name: 'XMarkIcon' }\" :error=\"isInErrorState\" @click=\"closeModal\" />\n </div>\n\n <!-- Body -->\n <div\n ref=\"modalBody\"\n class=\"flex flex-col gap-7 border-neutral-surface overflow-y-auto overflow-x-hidden\"\n :class=\"{\n 'px-4': responsiveSize === 'xs',\n 'px-8': responsiveSize !== 'xs',\n 'border-t': isModalScrollable && !arrivedState.top,\n 'border-b': isModalScrollable && !arrivedState.bottom,\n }\"\n >\n <p v-if=\"description\" class=\"text-base font-normal text-wrap break-words\">{{ description }}</p>\n\n <slot name=\"default\"></slot>\n </div>\n\n <!-- Footer -->\n <div\n v-if=\"primaryAction || secondaryAction || tertiaryAction\"\n class=\"flex items-center gap-4\"\n :class=\"{ 'flex-col-reverse px-4': responsiveSize === 'xs', 'flex-row px-8': responsiveSize !== 'xs' }\"\n >\n <ElButton\n v-if=\"tertiaryAction\"\n v-bind=\"tertiaryAction\"\n variant=\"tertiary\"\n :class=\"{ 'w-full': responsiveSize === 'xs' }\"\n :size=\"responsiveSize === 'xs' ? 'l' : 'base'\"\n :error=\"isInErrorState || tertiaryAction.error\"\n />\n\n <div\n class=\"flex gap-4\"\n :class=\"{ 'flex-col-reverse w-full': responsiveSize === 'xs', 'flex-row ml-auto': responsiveSize !== 'xs' }\"\n >\n <ElButton\n v-if=\"secondaryAction\"\n v-bind=\"secondaryAction\"\n variant=\"secondary\"\n :size=\"responsiveSize === 'xs' ? 'l' : 'base'\"\n :error=\"isInErrorState || secondaryAction.error\"\n />\n\n <ElButton\n v-if=\"primaryAction\"\n v-bind=\"primaryAction\"\n variant=\"primary\"\n :size=\"responsiveSize === 'xs' ? 'l' : 'base'\"\n :error=\"isInErrorState || primaryAction.error\"\n />\n </div>\n </div>\n </div>\n </div>\n </CustomTransition>\n </Teleport>\n</template>\n"],"names":["elModalSizes","elModalSizesBreakpoints","elModalColors","isOpen","_useModel","__props","emit","__emit","props","closeModal","backdrop","ref","modalBody","isInErrorState","computed","arrivedState","useScroll","height","useElementSize","windowWidth","useWindowSize","isModalScrollable","registerModal","unregisterModal","useModalStack","responsiveSize","i","onClickOutside","e","watch","value","onUnmounted","onKeyStroke"],"mappings":"iyBACaA,EAAe,CAAC,KAAM,IAAK,IAAK,IAAI,EAGpCC,EAA0B,CAAE,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,GAAI,IAAK,EAE9DC,EAAgB,CAAC,UAAW,YAAa,OAAO,sYA0BvD,MAAAC,EAASC,EAAAA,SAAYC,EAAA,QAI1B,EAEKC,EAAOC,EAEPC,EAAQH,EASRI,EAAa,IAAON,EAAO,MAAQ,GAEnCO,EAAWC,MAAwB,IAAI,EACvCC,EAAYD,MAAwB,IAAI,EAExCE,EAAiBC,EAAAA,SAAS,IAAMN,EAAM,QAAU,OAAO,EAEvD,CAAE,aAAAO,CAAA,EAAiBC,EAAA,UAAUJ,CAAS,EACtC,CAAE,OAAAK,CAAA,EAAWC,EAAA,eAAeN,CAAS,EACrC,CAAE,MAAOO,CAAY,EAAIC,EAAc,cAAA,EAEvCC,EAAoBP,EAAAA,SAAS,IAAMF,EAAU,OAASA,EAAU,MAAM,aAAeK,EAAO,KAAK,EAEjG,CAAE,cAAAK,EAAe,gBAAAC,CAAgB,EAAIC,EAAc,cAAA,EAEnDC,EAAiBX,EAAAA,SAAS,IAAM,CAC3B,QAAAY,EAAI1B,EAAa,QAAQQ,EAAM,IAAI,EAAGkB,GAAK,EAAGA,IACrD,GAAIP,EAAY,OAASlB,EAAwBD,EAAa0B,CAAC,CAAC,EAAG,OAAO1B,EAAa0B,CAAC,EAG1F,OAAOlB,EAAM,IAAA,CACd,EAEKmB,EAAkBC,GAA+B,CAE3BA,EAAE,SAAWlB,EAAS,OAEdD,GAAA,EAGpCoB,OAAAA,EAAA,MACE,IAAM1B,EAAO,MACJ2B,GAAA,CACHA,EACYR,KAEEC,IAChBjB,EAAK,QAAQ,EAEjB,CAAA,EAGFyB,EAAAA,YAAY,IAAM,CACZ5B,EAAO,OACOoB,GAClB,CACD,EAEDS,cAAY,SAAeJ,GAAA,CACzBA,EAAE,eAAe,EACNnB,GAAA,CACZ"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as N,mergeModels as A,useModel as V,ref as S,computed as m,watch as j,openBlock as o,createBlock as c,Teleport as D,createVNode as v,withCtx as L,createElementBlock as d,createElementVNode as l,withDirectives as W,normalizeClass as a,mergeProps as u,toDisplayString as O,unref as y,createCommentVNode as s,renderSlot as q}from"vue";import{useScroll as H,useElementSize as K,useWindowSize as P,useScrollLock as T,onKeyStroke as X}from"../node_modules/@vueuse/core/index.esm.js";import{VOnClickOutside as F}from"../node_modules/@vueuse/components/index.esm.js";import x from"./ElButton.vue.esm2.js";import G from"./ElIcon.vue.esm2.js";import J from"./ElIconButton.vue.esm2.js";import Q from"./_CustomTransition.vue.esm2.js";const R={key:0,class:"fixed inset-1 inset-x-0 bottom-0 z-40 flex items-center justify-center px-4 pb-6 sm:p-0"},U={class:"fixed inset-0 transition-opacity"},Y=["data-cy"],Z={class:"flex items-center justify-between gap-2 flex-1 overflow-hidden"},ee={class:"text-xl font-semibold truncate flex-1"},re={key:0,class:"text-base font-normal text-wrap break-words"},b=["xs","m","l","xl"],oe={xs:360,m:576,l:768,xl:1280},de=["primary","secondary","error"],ue=N({__name:"ElModal",props:A({size:{default:"m"},color:{default:"primary"},headerIcon:{},title:{default:void 0},description:{default:void 0},primaryAction:{},secondaryAction:{default:void 0},tertiaryAction:{default:void 0},isNestedModal:{type:Boolean}},{isOpen:{default:!1,required:!0,type:Boolean},isOpenModifiers:{}}),emits:A(["closed"],["update:isOpen"]),setup(k,{emit:C}){const f=V(k,"isOpen"),M=C,n=k,p=()=>f.value=!1,w=S(null),i=S(null),t=m(()=>n.color==="error"),{arrivedState:h}=H(i),{height:B}=K(i),{width:E}=P(),g=m(()=>i.value&&i.value.scrollHeight>B.value),_=T(document.body),r=m(()=>{for(let e=b.indexOf(n.size);e>=0;e--)if(E.value>=oe[b[e]])return b[e];return n.size}),$=e=>{e.target===w.value&&p()};return j(()=>f.value,e=>{(!n.isNestedModal||e)&&(_.value=e),e||M("closed")}),X("Escape",e=>{e.preventDefault(),p()}),(e,I)=>(o(),c(D,{to:"body"},[v(Q,{name:"fade"},{default:L(()=>{var z;return[f.value?(o(),d("div",R,[l("div",U,[l("div",{ref_key:"backdrop",ref:w,class:"absolute inset-0 bg-gray-500 opacity-75"},null,512)]),W((o(),d("div",{class:a(["flex flex-col gap-7 py-8 z-50 bg-neutral-surface shadow-md rounded-md border border-neutral-surface max-h-[80%] text-neutral-darker",{"w-[360px]":r.value==="xs","w-[576px]":r.value==="m","w-[768px]":r.value==="l","w-[1280px]":r.value==="xl"}]),"data-cy":`el-modal-${(z=e.title)==null?void 0:z.replaceAll(" ","")}`},[l("div",{class:a(["flex items-center justify-between gap-2",{"px-4":r.value==="xs","px-8":r.value!=="xs"}])},[l("div",Z,[l("div",{class:a([{"text-error bg-error-light-active":t.value,"text-primary bg-neutral-surface-raised":e.color==="primary","text-secondary bg-neutral-surface-raised":e.color==="secondary"},"!h-8 !w-8 rounded-full"])},[v(G,u(t.value?{name:"ExclamationCircleIcon"}:e.headerIcon,{class:"p-1"}),null,16)],2),l("div",ee,O(e.title),1)]),v(J,{icon:{name:"XMarkIcon"},error:t.value,onClick:p},null,8,["error"])],2),l("div",{ref_key:"modalBody",ref:i,class:a(["flex flex-col gap-7 border-neutral-surface overflow-y-auto overflow-x-hidden",{"px-4":r.value==="xs","px-8":r.value!=="xs","border-t":g.value&&!y(h).top,"border-b":g.value&&!y(h).bottom}])},[e.description?(o(),d("p",re,O(e.description),1)):s("",!0),q(e.$slots,"default")],2),e.primaryAction||e.secondaryAction||e.tertiaryAction?(o(),d("div",{key:0,class:a(["flex items-center gap-4",{"flex-col-reverse px-4":r.value==="xs","flex-row px-8":r.value!=="xs"}])},[e.tertiaryAction?(o(),c(x,u({key:0},e.tertiaryAction,{variant:"tertiary",class:{"w-full":r.value==="xs"},size:r.value==="xs"?"l":"base",error:t.value||e.tertiaryAction.error}),null,16,["class","size","error"])):s("",!0),l("div",{class:a(["flex gap-4",{"flex-col-reverse w-full":r.value==="xs","flex-row ml-auto":r.value!=="xs"}])},[e.secondaryAction?(o(),c(x,u({key:0},e.secondaryAction,{variant:"secondary",size:r.value==="xs"?"l":"base",error:t.value||e.secondaryAction.error}),null,16,["size","error"])):s("",!0),e.primaryAction?(o(),c(x,u({key:1},e.primaryAction,{variant:"primary",size:r.value==="xs"?"l":"base",error:t.value||e.primaryAction.error}),null,16,["size","error"])):s("",!0)],2)],2)):s("",!0)],10,Y)),[[y(F),$]])])):s("",!0)]}),_:3})]))}});export{ue as default,de as elModalColors,b as elModalSizes,oe as elModalSizesBreakpoints};
1
+ import{defineComponent as j,mergeModels as M,useModel as D,ref as O,computed as m,watch as N,onUnmounted as W,openBlock as o,createBlock as c,Teleport as q,createVNode as v,withCtx as H,createElementBlock as d,createElementVNode as t,withDirectives as K,normalizeClass as a,mergeProps as u,toDisplayString as S,unref as y,createCommentVNode as s,renderSlot as P}from"vue";import{useScroll as T,useElementSize as U,useWindowSize as X,onKeyStroke as F}from"../node_modules/@vueuse/core/index.esm.js";import{VOnClickOutside as G}from"../node_modules/@vueuse/components/index.esm.js";import x from"./ElButton.vue.esm2.js";import J from"./ElIcon.vue.esm2.js";import L from"./ElIconButton.vue.esm2.js";import Q from"./_CustomTransition.vue.esm2.js";import{useModalStack as R}from"./composable/useModalStack.esm.js";const Y={key:0,class:"fixed inset-1 inset-x-0 bottom-0 z-40 flex items-center justify-center px-4 pb-6 sm:p-0"},Z={class:"fixed inset-0 transition-opacity"},ee=["data-cy"],re={class:"flex items-center justify-between gap-2 flex-1 overflow-hidden"},oe={class:"text-xl font-semibold truncate flex-1"},te={key:0,class:"text-base font-normal text-wrap break-words"},b=["xs","m","l","xl"],le={xs:360,m:576,l:768,xl:1280},pe=["primary","secondary","error"],me=j({__name:"ElModal",props:M({size:{default:"m"},color:{default:"primary"},headerIcon:{},title:{default:void 0},description:{default:void 0},primaryAction:{},secondaryAction:{default:void 0},tertiaryAction:{default:void 0}},{isOpen:{default:!1,required:!0,type:Boolean},isOpenModifiers:{}}),emits:M(["closed"],["update:isOpen"]),setup(k,{emit:C}){const n=D(k,"isOpen"),B=C,f=k,p=()=>n.value=!1,w=O(null),i=O(null),l=m(()=>f.color==="error"),{arrivedState:h}=T(i),{height:E}=U(i),{width:_}=X(),g=m(()=>i.value&&i.value.scrollHeight>E.value),{registerModal:$,unregisterModal:z}=R(),r=m(()=>{for(let e=b.indexOf(f.size);e>=0;e--)if(_.value>=le[b[e]])return b[e];return f.size}),I=e=>{e.target===w.value&&p()};return N(()=>n.value,e=>{e?$():(z(),B("closed"))}),W(()=>{n.value&&z()}),F("Escape",e=>{e.preventDefault(),p()}),(e,V)=>(o(),c(q,{to:"body"},[v(Q,{name:"fade"},{default:H(()=>{var A;return[n.value?(o(),d("div",Y,[t("div",Z,[t("div",{ref_key:"backdrop",ref:w,class:"absolute inset-0 bg-gray-500 opacity-75"},null,512)]),K((o(),d("div",{class:a(["flex flex-col gap-7 py-8 z-50 bg-neutral-surface shadow-md rounded-md border border-neutral-surface max-h-[80%] text-neutral-darker",{"w-[360px]":r.value==="xs","w-[576px]":r.value==="m","w-[768px]":r.value==="l","w-[1280px]":r.value==="xl"}]),"data-cy":`el-modal-${(A=e.title)==null?void 0:A.replaceAll(" ","")}`},[t("div",{class:a(["flex items-center justify-between gap-2",{"px-4":r.value==="xs","px-8":r.value!=="xs"}])},[t("div",re,[t("div",{class:a([{"text-error bg-error-light-active":l.value,"text-primary bg-neutral-surface-raised":e.color==="primary","text-secondary bg-neutral-surface-raised":e.color==="secondary"},"!h-8 !w-8 rounded-full"])},[v(J,u(l.value?{name:"ExclamationCircleIcon"}:e.headerIcon,{class:"p-1"}),null,16)],2),t("div",oe,S(e.title),1)]),v(L,{icon:{name:"XMarkIcon"},error:l.value,onClick:p},null,8,["error"])],2),t("div",{ref_key:"modalBody",ref:i,class:a(["flex flex-col gap-7 border-neutral-surface overflow-y-auto overflow-x-hidden",{"px-4":r.value==="xs","px-8":r.value!=="xs","border-t":g.value&&!y(h).top,"border-b":g.value&&!y(h).bottom}])},[e.description?(o(),d("p",te,S(e.description),1)):s("",!0),P(e.$slots,"default")],2),e.primaryAction||e.secondaryAction||e.tertiaryAction?(o(),d("div",{key:0,class:a(["flex items-center gap-4",{"flex-col-reverse px-4":r.value==="xs","flex-row px-8":r.value!=="xs"}])},[e.tertiaryAction?(o(),c(x,u({key:0},e.tertiaryAction,{variant:"tertiary",class:{"w-full":r.value==="xs"},size:r.value==="xs"?"l":"base",error:l.value||e.tertiaryAction.error}),null,16,["class","size","error"])):s("",!0),t("div",{class:a(["flex gap-4",{"flex-col-reverse w-full":r.value==="xs","flex-row ml-auto":r.value!=="xs"}])},[e.secondaryAction?(o(),c(x,u({key:0},e.secondaryAction,{variant:"secondary",size:r.value==="xs"?"l":"base",error:l.value||e.secondaryAction.error}),null,16,["size","error"])):s("",!0),e.primaryAction?(o(),c(x,u({key:1},e.primaryAction,{variant:"primary",size:r.value==="xs"?"l":"base",error:l.value||e.primaryAction.error}),null,16,["size","error"])):s("",!0)],2)],2)):s("",!0)],10,ee)),[[y(G),I]])])):s("",!0)]}),_:3})]))}});export{me as default,pe as elModalColors,b as elModalSizes,le as elModalSizesBreakpoints};
2
2
  //# sourceMappingURL=ElModal.vue.esm2.js.map