@e-xode/vui 0.6.5

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 (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +107 -0
  3. package/dist/_plugin-vue_export-helper-BSl1dQT6.js +83 -0
  4. package/dist/_plugin-vue_export-helper-DeDoBcDj.js +1 -0
  5. package/dist/alert-CL20mS-E.js +49 -0
  6. package/dist/alert-CbdNaLvd.js +1 -0
  7. package/dist/animable-ChJEXlsE.js +1 -0
  8. package/dist/animable-DnFaMPYA.js +34 -0
  9. package/dist/button-D5bD4vAv.js +1 -0
  10. package/dist/button-Dall4PZ6.js +82 -0
  11. package/dist/card-DK0Uhh_6.js +1 -0
  12. package/dist/card-ouJTJOLK.js +50 -0
  13. package/dist/checkbox-B9yl-GCS.js +1 -0
  14. package/dist/checkbox-C0XHmyOW.js +116 -0
  15. package/dist/doc/assets/alert-BUCYz3vD.js +25 -0
  16. package/dist/doc/assets/alert-CMx1jzV3.css +1 -0
  17. package/dist/doc/assets/alert-CfN-KK4X.js +1 -0
  18. package/dist/doc/assets/animable-S5zFcxd4.js +1 -0
  19. package/dist/doc/assets/button-B8AvTEGk.css +1 -0
  20. package/dist/doc/assets/button-C1U5-S3p.js +1 -0
  21. package/dist/doc/assets/button-CNMZ1GQO.js +36 -0
  22. package/dist/doc/assets/button-Df0zy3mn.css +1 -0
  23. package/dist/doc/assets/card-CUtpnLFS.js +1 -0
  24. package/dist/doc/assets/card-Cm7t5GnP.css +1 -0
  25. package/dist/doc/assets/card-CwQ070ao.js +27 -0
  26. package/dist/doc/assets/checkbox-DUY-WF86.js +1 -0
  27. package/dist/doc/assets/checkbox-DrJf8HyQ.js +14 -0
  28. package/dist/doc/assets/checkbox-Dtjrzcei.css +1 -0
  29. package/dist/doc/assets/component-CXumWSlt.js +1 -0
  30. package/dist/doc/assets/component-CXwRI3O4.css +1 -0
  31. package/dist/doc/assets/composable-CshUTKfl.js +1 -0
  32. package/dist/doc/assets/default-D8NjjGBi.css +1 -0
  33. package/dist/doc/assets/default-DHoZWdtn.js +1 -0
  34. package/dist/doc/assets/demonstrable-B5KAWPKX.js +9 -0
  35. package/dist/doc/assets/dropdown-BDltvOgD.css +1 -0
  36. package/dist/doc/assets/dropdown-D0xbQtqT.css +1 -0
  37. package/dist/doc/assets/dropdown-D3hwsYWo.js +32 -0
  38. package/dist/doc/assets/dropdown-EPlb5xOz.js +1 -0
  39. package/dist/doc/assets/fa-brands-400-Ch568Ea9.woff2 +0 -0
  40. package/dist/doc/assets/fa-brands-400-DHHcbFjz.ttf +0 -0
  41. package/dist/doc/assets/fa-regular-400-9VThgXHM.woff2 +0 -0
  42. package/dist/doc/assets/fa-regular-400-C54-fRIQ.ttf +0 -0
  43. package/dist/doc/assets/fa-solid-900-Cm9M9sZB.ttf +0 -0
  44. package/dist/doc/assets/fa-solid-900-QWY35r5r.woff2 +0 -0
  45. package/dist/doc/assets/fa-v4compatibility-BRdYr4HJ.woff2 +0 -0
  46. package/dist/doc/assets/fa-v4compatibility-DLBX5pNp.ttf +0 -0
  47. package/dist/doc/assets/footer-BgsenAcP.js +1 -0
  48. package/dist/doc/assets/footer-Bm8ssenm.js +5 -0
  49. package/dist/doc/assets/footer-DYUKfFU3.css +1 -0
  50. package/dist/doc/assets/form-DKLHmzJQ.js +47 -0
  51. package/dist/doc/assets/form-XmHKCPrj.css +1 -0
  52. package/dist/doc/assets/form-k50YoLDD.js +1 -0
  53. package/dist/doc/assets/grid-Bh0kbzz2.css +1 -0
  54. package/dist/doc/assets/grid-BlQLubGm.css +1 -0
  55. package/dist/doc/assets/grid-BqtXNrmN.js +1 -0
  56. package/dist/doc/assets/grid-TeUBpTW_.js +14 -0
  57. package/dist/doc/assets/header-BXnWOksC.js +1 -0
  58. package/dist/doc/assets/header-Bz_A9csZ.css +1 -0
  59. package/dist/doc/assets/header-eITS5i2z.js +5 -0
  60. package/dist/doc/assets/index-7pe20t8n.js +1 -0
  61. package/dist/doc/assets/index-9U_mVUKM.css +1 -0
  62. package/dist/doc/assets/index-BQmFywQ4.js +48 -0
  63. package/dist/doc/assets/index-BSpywUIE.css +14 -0
  64. package/dist/doc/assets/index-wi3jjcqb.js +1 -0
  65. package/dist/doc/assets/input-BKMua51x.js +1 -0
  66. package/dist/doc/assets/input-BOPqansB.js +15 -0
  67. package/dist/doc/assets/input-D3l35AS9.css +1 -0
  68. package/dist/doc/assets/input-DSlxLCcA.css +1 -0
  69. package/dist/doc/assets/list-BPEuENqV.css +1 -0
  70. package/dist/doc/assets/list-CGLoBn9q.js +1 -0
  71. package/dist/doc/assets/list-CLtQXRmR.css +1 -0
  72. package/dist/doc/assets/list-n45uFw2X.js +30 -0
  73. package/dist/doc/assets/loader-BV0MDdoZ.js +1 -0
  74. package/dist/doc/assets/loader-C4g8GuOD.css +1 -0
  75. package/dist/doc/assets/loader-kFszqXxd.js +21 -0
  76. package/dist/doc/assets/modal-BQbrtOh6.js +1 -0
  77. package/dist/doc/assets/modal-C8IiekXp.css +1 -0
  78. package/dist/doc/assets/modal-DLTSg2Rm.js +18 -0
  79. package/dist/doc/assets/nav-C_eRBUvm.css +1 -0
  80. package/dist/doc/assets/nav-DL_aupT5.js +1 -0
  81. package/dist/doc/assets/nav-DQFqqSlk.js +20 -0
  82. package/dist/doc/assets/page-5bIt8sIt.js +53 -0
  83. package/dist/doc/assets/page-DtSZOZ0a.css +1 -0
  84. package/dist/doc/assets/page-HHRlPnpS.js +1 -0
  85. package/dist/doc/assets/pager-BJfdjd6d.js +1 -0
  86. package/dist/doc/assets/pager-BSfAVnS5.css +1 -0
  87. package/dist/doc/assets/pager-lLWSRkXq.js +22 -0
  88. package/dist/doc/assets/progress-BGFPfOOr.js +14 -0
  89. package/dist/doc/assets/progress-DILkrPEU.css +1 -0
  90. package/dist/doc/assets/progress-agXYCgzm.js +1 -0
  91. package/dist/doc/assets/start-CD9tFbht.css +1 -0
  92. package/dist/doc/assets/start-CqupTQKQ.js +1 -0
  93. package/dist/doc/assets/table-BawB_9__.css +1 -0
  94. package/dist/doc/assets/table-CMUxQ9C6.js +75 -0
  95. package/dist/doc/assets/table-DX3maWwn.css +1 -0
  96. package/dist/doc/assets/table-No82fyed.js +1 -0
  97. package/dist/doc/assets/tabs-B3SGp8R7.css +1 -0
  98. package/dist/doc/assets/tabs-BO11EW27.js +1 -0
  99. package/dist/doc/assets/tabs-uU4Onuid.js +11 -0
  100. package/dist/doc/assets/tag-COrA8kV9.js +25 -0
  101. package/dist/doc/assets/tag-DAiyWNFY.css +1 -0
  102. package/dist/doc/assets/tag-Do20IKxB.js +1 -0
  103. package/dist/doc/assets/toggle-BOUyuSz0.js +9 -0
  104. package/dist/doc/assets/toggle-CweBCm3j.css +1 -0
  105. package/dist/doc/assets/toggle-DazanQqx.js +1 -0
  106. package/dist/doc/assets/tooltip-94laNPly.js +1 -0
  107. package/dist/doc/assets/tooltip-CB2SgOBq.css +1 -0
  108. package/dist/doc/assets/tooltip-CpdVg_-T.js +48 -0
  109. package/dist/doc/assets/translatable-DbFxNJLL.js +1 -0
  110. package/dist/doc/assets/unit-BBuvFoj-.js +18 -0
  111. package/dist/doc/assets/unit-BziEb5aB.css +1 -0
  112. package/dist/doc/assets/unit-CEWThaCv.css +1 -0
  113. package/dist/doc/assets/unit-CiQ7QHVC.js +1 -0
  114. package/dist/doc/index.html +31 -0
  115. package/dist/dropdown-94Qb68fE.js +188 -0
  116. package/dist/dropdown-BwSLrIif.js +1 -0
  117. package/dist/footer-51s_zdw3.js +29 -0
  118. package/dist/footer-BsenaW5N.js +1 -0
  119. package/dist/form-BZpgCWGA.js +29 -0
  120. package/dist/form-ZUVvCZyS.js +1 -0
  121. package/dist/grid-CurHW85o.js +66 -0
  122. package/dist/grid-DWWix5rK.js +1 -0
  123. package/dist/header-DcGPzeye.js +29 -0
  124. package/dist/header-ZYcWwRkh.js +1 -0
  125. package/dist/index-BYlXFZ1a.js +7 -0
  126. package/dist/index-CIHzWz8S.js +1 -0
  127. package/dist/input-Dy5fCJhT.js +103 -0
  128. package/dist/input-WjGQ7q1J.js +1 -0
  129. package/dist/list-BH719nj8.js +286 -0
  130. package/dist/list-BkZK3xVW.js +1 -0
  131. package/dist/loader-BfFCffVh.js +1 -0
  132. package/dist/loader-D-dknzvs.js +60 -0
  133. package/dist/modal-ClZY58iR.js +1 -0
  134. package/dist/modal-DkygZY00.js +126 -0
  135. package/dist/nav-BD6eV2wj.js +1 -0
  136. package/dist/nav-DdIBrD1b.js +142 -0
  137. package/dist/page-BIUh-VF2.js +1 -0
  138. package/dist/page-CM5kqSQi.js +60 -0
  139. package/dist/pager-C8iFmeo8.js +1 -0
  140. package/dist/pager-CBJ3CiCZ.js +172 -0
  141. package/dist/progress-DsA7oWSK.js +59 -0
  142. package/dist/progress-d0_3-GgJ.js +1 -0
  143. package/dist/style.css +1 -0
  144. package/dist/table-8qXMDkjH.js +1 -0
  145. package/dist/table-DuvV-g2p.js +95 -0
  146. package/dist/tabs-CHwXPZS8.js +1 -0
  147. package/dist/tabs-X0RMcNvq.js +113 -0
  148. package/dist/tag-D4iZf3-b.js +48 -0
  149. package/dist/tag-viNXw7N7.js +1 -0
  150. package/dist/toggle-BjGdBPSz.js +114 -0
  151. package/dist/toggle-gSEwsuRP.js +1 -0
  152. package/dist/tooltip--n3igWe7.js +1 -0
  153. package/dist/tooltip-CIoZoCZY.js +127 -0
  154. package/dist/unit-DGlQY07B.js +1 -0
  155. package/dist/unit-Xp1FHc7U.js +41 -0
  156. package/dist/vui.esm.js +272 -0
  157. package/dist/vui.js +1 -0
  158. package/dist/vui.umd.js +1 -0
  159. package/package.json +107 -0
@@ -0,0 +1 @@
1
+ (function(t,g){typeof exports=="object"&&typeof module<"u"?module.exports=g(require("vue"),require("mitt"),require("highlight.js"),require("vue-i18n")):typeof define=="function"&&define.amd?define(["vue","mitt","highlight.js","vue-i18n"],g):(t=typeof globalThis<"u"?globalThis:t||self,t.vui=g(t.vue,t.mitt,null,t.vueI18n))})(this,function(t,g,go,v){"use strict";const N=[{icon:"fa-brands fa-vuejs",label:"Alert",name:"vui-alert",path:"/components/ui/alert/alert.vue",type:"ui",doc:{name:"view-alert",path:"/views/component/ui/alert/alert.vue"}},{icon:"fa-brands fa-vuejs",label:"Button",name:"vui-button",path:"/components/html/button/button.vue",type:"html",doc:{name:"view-button",path:"/views/component/html/button/button.vue"}},{icon:"fa-brands fa-vuejs",label:"Card",name:"vui-card",path:"/components/ui/card/card.vue",type:"ui",doc:{name:"view-card",path:"/views/component/ui/card/card.vue"}},{icon:"fa-brands fa-vuejs",label:"Checkbox",name:"vui-checkbox",path:"/components/html/checkbox/checkbox.vue",type:"html",doc:{name:"view-checkbox",path:"/views/component/html/checkbox/checkbox.vue"}},{icon:"fa-brands fa-vuejs",label:"Dropdown",name:"vui-dropdown",path:"/components/ui/dropdown/dropdown.vue",type:"ui",doc:{name:"view-dropdown",path:"/views/component/ui/dropdown/dropdown.vue"}},{icon:"fa-brands fa-vuejs",label:"Footer",name:"vui-footer",path:"/components/html/footer/footer.vue",type:"html",doc:{name:"view-footer",path:"/views/component/html/footer/footer.vue"}},{icon:"fa-brands fa-vuejs",label:"Form",name:"vui-form",path:"/components/html/form/form.vue",type:"html",doc:{name:"view-form",path:"/views/component/html/form/form.vue"}},{icon:"fa-brands fa-vuejs",label:"Header",name:"vui-header",path:"/components/html/header/header.vue",type:"html",doc:{name:"view-header",path:"/views/component/html/header/header.vue"}},{icon:"fa-brands fa-vuejs",label:"Grid",name:"vui-grid",path:"/components/layout/grid/grid.vue",type:"layout",doc:{name:"view-grid",path:"/views/component/layout/grid/grid.vue"}},{icon:"fa-brands fa-vuejs",label:"Grid unit",name:"vui-grid-unit",path:"/components/layout/unit/unit.vue",type:"layout",doc:{name:"view-grid-unit",path:"/views/component/layout/unit/unit.vue"}},{icon:"fa-brands fa-vuejs",label:"Input",name:"vui-input",path:"/components/html/input/input.vue",type:"html",doc:{name:"view-input",path:"/views/component/html/input/input.vue"}},{icon:"fa-brands fa-vuejs",label:"List",name:"vui-list",path:"/components/ui/list/list.vue",type:"ui",doc:{name:"view-list",path:"/views/component/ui/list/list.vue"}},{icon:"fa-brands fa-vuejs",label:"Loader",name:"vui-loader",path:"/components/ui/loader/loader.vue",type:"ui",doc:{name:"view-loader",path:"/views/component/ui/loader/loader.vue"}},{icon:"fa-brands fa-vuejs",label:"Modal",name:"vui-modal",path:"/components/ui/modal/modal.vue",type:"ui",doc:{name:"view-modal",path:"/views/component/ui/modal/modal.vue"}},{icon:"fa-brands fa-vuejs",label:"Nav",name:"vui-nav",path:"/components/ui/nav/nav.vue",type:"ui",doc:{name:"view-nav",path:"/views/component/ui/nav/nav.vue"}},{icon:"fa-brands fa-vuejs",label:"Page",name:"vui-page",path:"/components/ui/page/page.vue",type:"ui",doc:{name:"view-page",path:"/views/component/ui/page/page.vue"}},{icon:"fa-brands fa-vuejs",label:"Pager",name:"vui-pager",path:"/components/ui/pager/pager.vue",type:"ui",doc:{name:"view-pager",path:"/views/component/ui/pager/pager.vue"}},{icon:"fa-brands fa-vuejs",label:"Progress",name:"vui-progress",path:"/components/ui/progress/progress.vue",type:"ui",doc:{name:"view-progress",path:"/views/component/ui/progress/progress.vue"}},{icon:"fa-brands fa-vuejs",label:"Table",name:"vui-table",path:"/components/html/table/table.vue",type:"html",doc:{name:"view-table",path:"/views/component/html/table/table.vue"}},{icon:"fa-brands fa-vuejs",label:"Tabs",name:"vui-tabs",path:"/components/ui/tabs/tabs.vue",type:"ui",doc:{name:"view-tabs",path:"/views/component/ui/tabs/tabs.vue"}},{icon:"fa-brands fa-vuejs",label:"Tag",name:"vui-tag",path:"/components/ui/tag/tag.vue",type:"ui",doc:{name:"view-tag",path:"/views/component/ui/tag/tag.vue"}},{icon:"fa-brands fa-vuejs",label:"Toggle",name:"vui-toggle",path:"/components/ui/toggle/toggle.vue",type:"ui",doc:{name:"view-toggle",path:"/views/component/ui/toggle/toggle.vue"}},{icon:"fa-brands fa-vuejs",label:"Tooltip",name:"vui-tooltip",path:"/components/ui/tooltip/tooltip.vue",type:"ui",doc:{name:"view-tooltip",path:"/views/component/ui/tooltip/tooltip.vue"}}],j={install(e){e.provide("$bus",g());const o=Object.assign({"/components/html/button/button.vue":()=>Promise.resolve().then(()=>M),"/components/html/checkbox/checkbox.vue":()=>Promise.resolve().then(()=>U),"/components/html/footer/footer.vue":()=>Promise.resolve().then(()=>J),"/components/html/form/form.vue":()=>Promise.resolve().then(()=>ee),"/components/html/header/header.vue":()=>Promise.resolve().then(()=>se),"/components/html/input/input.vue":()=>Promise.resolve().then(()=>pe),"/components/html/table/table.vue":()=>Promise.resolve().then(()=>$e),"/components/layout/grid/grid.vue":()=>Promise.resolve().then(()=>Be),"/components/layout/unit/unit.vue":()=>Promise.resolve().then(()=>Ne),"/components/ui/alert/alert.vue":()=>Promise.resolve().then(()=>Ie),"/components/ui/card/card.vue":()=>Promise.resolve().then(()=>Fe),"/components/ui/dropdown/dropdown.vue":()=>Promise.resolve().then(()=>lt),"/components/ui/list/list.vue":()=>Promise.resolve().then(()=>xe),"/components/ui/loader/loader.vue":()=>Promise.resolve().then(()=>rt),"/components/ui/modal/modal.vue":()=>Promise.resolve().then(()=>$t),"/components/ui/nav/nav.vue":()=>Promise.resolve().then(()=>Ct),"/components/ui/page/page.vue":()=>Promise.resolve().then(()=>It),"/components/ui/pager/pager.vue":()=>Promise.resolve().then(()=>At),"/components/ui/progress/progress.vue":()=>Promise.resolve().then(()=>Ht),"/components/ui/tabs/tabs.vue":()=>Promise.resolve().then(()=>Zt),"/components/ui/tag/tag.vue":()=>Promise.resolve().then(()=>lo),"/components/ui/toggle/toggle.vue":()=>Promise.resolve().then(()=>po),"/components/ui/tooltip/tooltip.vue":()=>Promise.resolve().then(()=>fo)});for(const n in o){const a=n.startsWith("..")?n.slice(2):n,s=N.find(l=>l.path===a);s&&e.component(s.name,t.defineAsyncComponent(o[n]))}}},E={en:{},fr:{}},P={duration:125},h={data(){return{toggled:!1,animating:!1}},created(){this.$bus.on("outclick",e=>{this.toggled&&this.componentGroupId!==e&&this.blur()})},methods:{animate(){this.animating||(this.animating=!0,setTimeout(()=>{this.animating=!1},P.duration))},blur(){this.toggled=!1},focus(){this.toggled=!0,this.$bus.emit("outclick",this.componentGroupId)},onAnimate(e=null){this.animate(),e||e===null&&!this.toggled?this.focus():this.blur()}}},c={inject:["$bus"],props:{class:{type:String},disabled:{type:Boolean,default:!1},id:{type:String,default:null},groupId:{type:String,default:null},layout:{type:String,default:"default"},loading:{type:Boolean,default:!1},name:{type:String}},deactivated(){this.$bus.off("outclick")},created(){this.uuid=this.newId()},data(){return{uuid:null}},computed:{componentId(){return this.id?this.id:this.uuid},componentGroupId(){return this.groupId?this.groupId:this.uuid},hasModelValue(){return typeof this.modelValue<"u"},hasValue(){return typeof this.value<"u"}},methods:{hasAttribute(e){return Object.keys(this.$attrs).find(o=>o===e)},hasProp(e){return typeof this[e]<"u"},newId(){return Math.random().toString(36).slice(-6)}}},p=e=>{const o=v.useI18n();return Object.keys(e).forEach(n=>{o.mergeLocaleMessage(n,e[n])}),o},z={icon:{type:String},route:{type:Object},text:{type:String},type:{type:String,default:"button"}},u=(e,o)=>{const n=e.__vccOpts||e;for(const[a,s]of o)n[a]=s;return n},I={name:"VuiButton",mixins:[h,c],props:z,computed:{hasLabel(){var e;return((e=this.text)==null?void 0:e.length)>0||this.$slots.default}},created(){p(E)},methods:{onClick(){this.disabled||(this.onAnimate(),this.route&&this.$router.push(this.route))}}},_=["id"],T=["disabled","type"],O=t.createElementVNode("div",{class:"vui-button-loader"},null,-1);function L(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-button",`vui-button--${e.layout}`,{"vui-button--flat":e.hasAttribute("flat")},{"vui-button--with-label":l.hasLabel},{"vui-button--with-icon":e.icon},{"vui-button--toggled":e.toggled},{"vui-button--animating":!e.disabled&&e.animating},{"vui-button--loading":!e.disabled&&e.loading},{"vui-button--disabled":e.disabled},e.$props.class]),onClick:o[0]||(o[0]=t.withModifiers((...i)=>l.onClick&&l.onClick(...i),["stop"]))},[t.renderSlot(e.$slots,"prepend"),t.createElementVNode("button",{class:"vui-button-holder",disabled:e.disabled,type:e.type},[e.icon?(t.openBlock(),t.createElementBlock("i",{key:0,class:t.normalizeClass(["vui-button-icon",e.icon])},null,2)):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(e.text),1)])],8,T),O,t.renderSlot(e.$slots,"append")],10,_)}const b=u(I,[["render",L]]),M=Object.freeze(Object.defineProperty({__proto__:null,default:b},Symbol.toStringTag,{value:"Module"})),A={en:{},fr:{}},F={name:"VuiCheckbox",mixins:[c],props:{checked:{default:void 0,type:Boolean},checkedValue:{default:void 0,types:[Boolean,String,Number,null]},modelValue:{default:void 0,types:[Boolean,String,Number,null]},name:{default:void 0,type:String},uncheckedValue:{default:void 0,types:[Boolean,String,Number,null]},value:{default:void 0,types:[Boolean,String,Number,null]}},emits:["update:model-value"],data(){return{toggled:!1}},computed:{isChecked(){return this.hasProp("checked")?this.checked:this.hasProp("checkedValue")?this.toggled===this.checkedValue:this.toggled}},watch:{modelValue(e){this.toggled=e},value(e){this.toggled=e}},created(){p(A),this.hasModelValue?this.toggled=this.modelValue:this.hasValue&&(this.toggled=this.value)},methods:{onToggle(){this.disabled||(this.hasProp("checkedValue")?this.toggled=this.isChecked?this.uncheckedValue:this.checkedValue:this.toggled=!this.isChecked,this.$emit("update:model-value",this.toggled))}}},G=["id"],q=["name","disabled","required"],D=["for"];function H(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-checkbox",{"vui-checkbox--checked":l.isChecked},{"vui-checkbox--disabled":e.disabled},e.$props.class]),onClick:o[0]||(o[0]=(...i)=>l.onToggle&&l.onToggle(...i))},[t.renderSlot(e.$slots,"prepend"),t.createElementVNode("input",{name:e.name,disabled:e.disabled,required:e.hasAttribute("required"),type:"checkbox"},null,8,q),e.$slots.default?(t.openBlock(),t.createElementBlock("label",{key:0,for:e.componentId},[t.renderSlot(e.$slots,"default")],8,D)):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"append")],10,G)}const U=Object.freeze(Object.defineProperty({__proto__:null,default:u(F,[["render",H]])},Symbol.toStringTag,{value:"Module"})),X={en:{},fr:{}},K={name:"VuiFooter",mixins:[c],created(){p(X)}},R=["id"];function W(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("footer",{id:e.componentId,class:t.normalizeClass(["vui-footer",e.$props.class])},[t.renderSlot(e.$slots,"prepend"),t.renderSlot(e.$slots,"default"),t.renderSlot(e.$slots,"append")],10,R)}const J=Object.freeze(Object.defineProperty({__proto__:null,default:u(K,[["render",W]])},Symbol.toStringTag,{value:"Module"})),Q={en:{},fr:{}},Y={name:"VuiForm",mixins:[c],created(){p(Q)}},Z=["id"];function x(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("form",{id:e.componentId,class:t.normalizeClass(["vui-form",e.$props.class])},[t.renderSlot(e.$slots,"prepend"),t.renderSlot(e.$slots,"default"),t.renderSlot(e.$slots,"append")],10,Z)}const ee=Object.freeze(Object.defineProperty({__proto__:null,default:u(Y,[["render",x]])},Symbol.toStringTag,{value:"Module"})),te={en:{},fr:{}},oe={name:"VuiHeader",mixins:[c],created(){p(te)}},le=["id"];function ne(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("header",{id:e.componentId,class:t.normalizeClass(["vui-header",e.$props.class])},[t.renderSlot(e.$slots,"prepend"),t.renderSlot(e.$slots,"default"),t.renderSlot(e.$slots,"append")],10,le)}const se=Object.freeze(Object.defineProperty({__proto__:null,default:u(oe,[["render",ne]])},Symbol.toStringTag,{value:"Module"})),ie={en:{"component.input.placeholder":"Type a value ..."},fr:{}},ae={name:"VuiInput",mixins:[c],props:{modelValue:{default:void 0,types:[Boolean,String,Number,null]},maxlength:{type:Number},name:{type:String},placeholder:{default:null,types:[Boolean,String,Number,null]},type:{type:String,default:"text"},value:{default:void 0,types:[Boolean,Number,String,null]}},emits:["input","update:model-value"],data(){return{typed:null}},computed:{placeholderValue(){return this.placeholder?this.placeholder:this.$t("component.input.placeholder")}},watch:{value(e){this.typed=e},modelValue(e){this.typed=e}},created(){p(ie),this.hasModelValue?this.typed=this.modelValue:this.hasValue&&(this.typed=this.value)},methods:{onInput(e){this.typed=this.type==="number"?e.target.valueAsNumber:e.target.value,this.$emit("input",e),this.$emit("update:model-value",this.typed)}}},re=["id"],de=["value","disabled","maxlength","name","placeholder","required","type"];function ce(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-input",e.$props.class])},[t.renderSlot(e.$slots,"prepend"),t.createElementVNode("input",{value:s.typed,disabled:e.disabled,maxlength:e.maxlength,name:e.name,placeholder:l.placeholderValue,required:e.hasAttribute("required"),type:e.type,onInput:o[0]||(o[0]=(...i)=>l.onInput&&l.onInput(...i))},null,40,de),t.renderSlot(e.$slots,"append")],10,re)}const S=u(ae,[["render",ce]]),pe=Object.freeze(Object.defineProperty({__proto__:null,default:S},Symbol.toStringTag,{value:"Module"})),ue={headers:{type:Array,default:()=>[]},itemLabel:{type:String,default:"label"},itemValue:{type:String,default:"value"},items:{type:Array,default:()=>[],required:!0}},me={en:{},fr:{}},he={name:"VuiTable",mixins:[h,c],props:ue,created(){p(me)},methods:{leaf(e,o){return o.split(".").reduce((n,a)=>n&&n[a]?n[a]:null,e)}}},fe=["id"],ge=["data-label"];function be(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-table",e.$props.class])},[t.renderSlot(e.$slots,"prepend"),t.createElementVNode("table",null,[t.createElementVNode("thead",null,[t.createElementVNode("tr",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.headers,(i,r)=>t.renderSlot(e.$slots,`header.${i[e.itemValue]}`,{key:`table-${e.componentId}-header--${r}`,item:i,itemLabel:e.itemLabel,itemValue:e.itemValue,index:r},()=>[t.createElementVNode("th",{class:t.normalizeClass(i.class)},t.toDisplayString(i[e.itemLabel]),3)])),128))])]),t.createElementVNode("tbody",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.items,(i,r)=>t.renderSlot(e.$slots,"default",{key:`table-${e.componentId}-item--${r}`,index:r,item:i,itemLabel:e.itemLabel,itemValue:e.itemValue},()=>[t.createElementVNode("tr",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.headers,(d,m)=>t.renderSlot(e.$slots,`item.${d[e.itemValue]}`,{key:`table-${e.componentId}-item-td--${m}`,index:m,item:i,itemLabel:e.itemLabel,itemValue:e.itemValue},()=>[t.createElementVNode("td",{"data-label":d.label,class:t.normalizeClass(d.class)},t.toDisplayString(l.leaf(i,d.value)),11,ge)])),128))])])),128))])]),t.renderSlot(e.$slots,"append")],10,fe)}const $e=Object.freeze(Object.defineProperty({__proto__:null,default:u(he,[["render",be]])},Symbol.toStringTag,{value:"Module"})),ye={en:{},fr:{}},ke={name:"VuiGrid",mixins:[c],props:{colXs:{default:void 0,types:[Number,String]},colSm:{default:void 0,types:[Number,String]},colMd:{default:void 0,types:[Number,String]},colXl:{default:void 0,types:[Number,String]}},created(){p(ye)}},Ve=["id"];function Se(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-grid",{[`vui-grid--col-xs--${e.colXs}`]:e.colXs},{[`vui-grid--col-sm--${e.colSm}`]:e.colSm},{[`vui-grid--col-md--${e.colMd}`]:e.colMd},{[`vui-grid--col-xl--${e.colXl}`]:e.colXl},e.$props.class])},[t.renderSlot(e.$slots,"prepend"),t.renderSlot(e.$slots,"default"),t.renderSlot(e.$slots,"append")],10,Ve)}const Be=Object.freeze(Object.defineProperty({__proto__:null,default:u(ke,[["render",Se]])},Symbol.toStringTag,{value:"Module"})),Ce={en:{},fr:{}},we={name:"VuiGridUnit",mixins:[c],props:{col:{default:void 0,types:[String,Number]}},created(){p(Ce)}};function ve(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["vui-grid-unit",{[`vui-grid-unit-col--${e.col}`]:e.col},e.$props.class])},[t.renderSlot(e.$slots,"prepend"),t.renderSlot(e.$slots,"default"),t.renderSlot(e.$slots,"append")],2)}const Ne=Object.freeze(Object.defineProperty({__proto__:null,default:u(we,[["render",ve]])},Symbol.toStringTag,{value:"Module"})),je={en:{},fr:{}},Ee={name:"VuiAlert",mixins:[c],props:{icon:{type:String},text:{type:String}},created(){p(je)}},Pe=["id"];function ze(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-alert",`vui-alert--${e.layout}`,e.$props.class])},[t.renderSlot(e.$slots,"prepend"),t.renderSlot(e.$slots,"icon",{},()=>[e.icon?(t.openBlock(),t.createElementBlock("i",{key:0,class:t.normalizeClass(["vui-alert-icon",e.icon])},null,2)):t.createCommentVNode("",!0)]),t.renderSlot(e.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(e.text),1)]),t.renderSlot(e.$slots,"append")],10,Pe)}const B=u(Ee,[["render",ze]]),Ie=Object.freeze(Object.defineProperty({__proto__:null,default:B},Symbol.toStringTag,{value:"Module"})),C={en:{},fr:{}},_e={name:"VuiCard",mixins:[c],created(){p(C)}},Te=["id"],Oe={key:0,class:"vui-card-header"},Le={key:1,class:"vui-card-body"},Me={key:2,class:"vui-card-footer"};function Ae(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-card",`vui-card--${e.layout}`,{"vui-card--flat":e.hasAttribute("flat")},e.$props.class])},[t.renderSlot(e.$slots,"prepend"),e.$slots.header?(t.openBlock(),t.createElementBlock("div",Oe,[t.renderSlot(e.$slots,"header")])):t.createCommentVNode("",!0),e.$slots.body||e.$slots.default?(t.openBlock(),t.createElementBlock("div",Le,[t.renderSlot(e.$slots,"body"),t.renderSlot(e.$slots,"default")])):t.createCommentVNode("",!0),e.$slots.footer?(t.openBlock(),t.createElementBlock("div",Me,[t.renderSlot(e.$slots,"footer")])):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"append")],10,Te)}const Fe=Object.freeze(Object.defineProperty({__proto__:null,default:u(_e,[["render",Ae]])},Symbol.toStringTag,{value:"Module"})),Ge={en:{"component.dropdown.placeholder":"Select a value ..."},fr:{}},qe={disableFiltering:{type:Boolean,default:!1},items:{type:Array,required:!0},itemLabel:{type:String,default:"label"},itemValue:{type:String,default:"value"},modelValue:{default:void 0,types:[Boolean,Number,Object,String,null]},placeholder:{types:[Boolean,Number,String]},value:{default:void 0,types:[Boolean,Object,Number,String,null]}};function f(e){return e!=null&&typeof e=="object"&&e["@@functional/placeholder"]===!0}function $(e){return function o(n){return arguments.length===0||f(n)?o:e.apply(this,arguments)}}function De(e){return function o(n,a){switch(arguments.length){case 0:return o;case 1:return f(n)?o:$(function(s){return e(n,s)});default:return f(n)&&f(a)?o:f(n)?$(function(s){return e(s,a)}):f(a)?$(function(s){return e(n,s)}):e(n,a)}}}var He=De(function(o,n){for(var a={},s={},l=0,i=o.length;l<i;)s[o[l]]=1,l+=1;for(var r in n)s.hasOwnProperty(r)||(a[r]=n[r]);return a});const Ue={en:{},fr:{}},Xe={name:"VuiList",mixins:[h,c],props:{autoclose:{type:Boolean,default:!0},disableFiltering:{type:Boolean,default:!1},expanded:{type:Boolean,default:!1},keyword:{type:String},items:{type:Array,required:!0},itemLabel:{type:String,default:"label"},itemValue:{type:String,default:"value"},modelValue:{default:void 0,types:[Boolean,Number,Object,String]},selectable:{type:Boolean},title:{type:String},value:{default:void 0,types:[Boolean,Number,Object,String]}},emits:["update:model-value"],data(){return{last:null,open:{},selected:null}},computed:{hasKeyword(){var e;return!this.disableFiltering&&((e=this.keyword)==null?void 0:e.length)},list(){return this.items.reduce((e,o)=>(this.isGroup(o)?e.push({...o,$$id:this.newId(),value:o[this.itemValue].reduce((n,a)=>!this.hasKeyword||this.match(a)?[...n,this.mapItem(a,this.newId())]:n,[])}):(!this.hasKeyword||this.match(o))&&e.push(this.mapItem(o,this.newId())),e),[])}},watch:{items(){this.autoexpand()},modelValue(e){this.selected=this.mapItem(e)},value(e){this.selected=this.mapItem(e)}},created(){p(Ue),this.hasModelValue?this.selected=this.mapItem(this.modelValue):this.hasValue&&(this.selected=this.mapItem(this.value)),this.autoexpand()},methods:{autoexpand(){this.open=this.items.reduce((e,o,n)=>{if(this.isGroup(o)){const s=o[this.itemValue].findIndex(l=>this.isSelected(l));if(this.expanded||s>-1)return{...e,[n]:!0}}return e},{})},isAnimating(e){const{animating:o,last:n}=this;return n===e&&o},isGroup(e){return Array.isArray(e==null?void 0:e[this.itemValue])},isObject(e){const o=this.itemValue;return this.isGroup(e)?typeof e[o][0]=="object":typeof e=="object"},isSelected(e){return!e.disabled&&typeof this.selected<"u"?typeof e=="object"?this.selected&&this.selected[this.itemValue]===e[this.itemValue]:this.selected&&this.selected===e:!1},isToggled(e){const{last:o,open:n,toggled:a}=this;return o===e&&n[e]&&a},match(e){return typeof e=="object"?`${e[this.itemLabel]}`.includes(this.keyword):`${e}`.includes(this.keyword)},mapItem(e,o){const n=typeof e=="object"?e:{[this.itemLabel]:e,[this.itemValue]:e};return o?{...n,$$id:o}:n},onClick(e){if(!this.disabled&&this.selectable){const o=He(["$$id"],e),n=this.isObject(o)&&this.hasAttribute("return-object")?o:o[this.itemValue];this.selected=this.isSelected(o)?null:o,o.route&&this.$router.push(o.route),this.$emit("update:model-value",n)}},onToggle(e){this.disabled||(this.last=e,this.autoclose?this.open={[e]:!this.open[e]}:this.open[e]=!this.open[e],this.onAnimate(this.open[e]))}}},Ke=["id"],Re={key:0,class:"vui-list-title"},We={class:"vui-list-items"},Je=["onClick"],Qe=["onClick"],Ye=["onClick"];function Ze(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-list",{"vui-list--flat":e.hasAttribute("flat")},e.$props.class])},[t.renderSlot(e.$slots,"prepend"),e.title?(t.openBlock(),t.createElementBlock("div",Re,[t.renderSlot(e.$slots,"placeholder",{item:e.title},()=>[t.createTextVNode(t.toDisplayString(e.title),1)])])):t.createCommentVNode("",!0),t.createElementVNode("div",We,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.list,(i,r)=>(t.openBlock(),t.createElementBlock("div",{key:i.$$id,class:t.normalizeClass([{"vui-list-items-item":!l.isGroup(i)},{"vui-list-items-group-item":l.isGroup(i)}])},[l.isGroup(i)?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([{"vui-list-items-item-label":!l.isGroup(i)},{"vui-list-items-item-label--selectable":e.selectable},{"vui-list-items-item-label--selected":l.isSelected(i)}]),onClick:()=>l.onClick(i)},[i.icon?(t.openBlock(),t.createElementBlock("i",{key:0,class:t.normalizeClass(["vui-list-items-item-label-icon",i.icon])},null,2)):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"item",{index:r,item:i,itemLabel:e.itemLabel,itemValue:e.itemValue},()=>[t.createTextVNode(t.toDisplayString(i[e.itemLabel]),1)])],10,Je)),l.isGroup(i)?(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createElementVNode("div",{class:t.normalizeClass(["vui-list-items-item-group-label",{"vui-list-items-item-group-label--toggled":l.isToggled(r)},{"vui-list-items-item-group-label--animating":l.isAnimating(r)},{"vui-list-items-item-group-label--open":s.open[r]||l.hasKeyword}]),onClick:t.withModifiers(()=>l.onToggle(r),["stop"])},[t.renderSlot(e.$slots,"group-item",{index:r,item:i,itemLabel:e.itemLabel,itemValue:e.itemValue},()=>[t.createTextVNode(t.toDisplayString(i[e.itemLabel]),1)])],10,Qe),s.open[r]||l.hasKeyword?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(i[e.itemValue],(d,m)=>(t.openBlock(),t.createElementBlock("div",{key:d.$$id,class:t.normalizeClass(["vui-list-items-item-label",{"vui-list-items-item-label--selectable":e.selectable},{"vui-list-items-item-label--selected":l.isSelected(d)}]),onClick:()=>l.onClick(d)},[d.icon?(t.openBlock(),t.createElementBlock("i",{key:0,class:t.normalizeClass(["vui-list-items-item-label-icon",d.icon])},null,2)):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"item",{index:m,item:d,itemLabel:e.itemLabel,itemValue:e.itemValue},()=>[t.createTextVNode(t.toDisplayString(d[e.itemLabel]),1)])],10,Ye))),128)):t.createCommentVNode("",!0)],64)):t.createCommentVNode("",!0)],2))),128))]),t.renderSlot(e.$slots,"append")],10,Ke)}const y=u(Xe,[["render",Ze]]),xe=Object.freeze(Object.defineProperty({__proto__:null,default:y},Symbol.toStringTag,{value:"Module"})),et={name:"VuiDropdown",components:{VuiInput:S,VuiList:y},mixins:[h,c],props:qe,emits:["input","update:model-value"],data(){return{keyword:null,selected:null}},computed:{listTitle(){return this.selected?this.placeholderLabel:null},placeholderValue(){const{itemValue:e,selected:o}=this,n=typeof(o==null?void 0:o[e])<"u"?o[e]:o;return n===null?this.placeholderLabel:this.labelFromItem(n)},placeholderLabel(){return this.placeholder?this.placeholder:this.$t("component.dropdown.placeholder")}},watch:{modelValue(e){this.selected=e},value(e){this.selected=e}},created(){p(Ge),this.hasModelValue?this.selected=this.modelValue:this.hasValue&&(this.selected=this.value)},methods:{labelFromChild(e,o,n){const{itemValue:a,itemLabel:s}=this;return e[a].reduce((l,i)=>i[a]===n?i[s]:l,o)},labelFromItem(e){const{itemValue:o,itemLabel:n}=this;return this.items.reduce((a,s)=>Array.isArray(s[o])?this.labelFromChild(s,a,e):s[o]===e?s[n]:a,e)},onClick(){this.disabled||this.onAnimate()},onInput(e){this.$emit("input",e),this.onAnimate(!0),this.keyword=e.target.value?e.target.value:null},onToggle(e){this.keyword=null,this.blur(),this.hasProp("value")||(this.selected=e),this.$emit("update:model-value",e)}}},tt=["id"];function ot(e,o,n,a,s,l){const i=t.resolveComponent("vui-input"),r=t.resolveComponent("vui-list");return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-dropdown",e.$props.class])},[t.renderSlot(e.$slots,"prepend"),t.createElementVNode("div",{class:t.normalizeClass(["vui-dropdown-placeholder",{"vui-dropdown-placeholder--toggled":e.toggled},{"vui-dropdown-placeholder--animating":e.animating},{"vui-dropdown-placeholder--disabled":e.disabled}]),onClick:o[0]||(o[0]=t.withModifiers((...d)=>l.onClick&&l.onClick(...d),["stop"]))},[t.renderSlot(e.$slots,"keyword",{keyword:s.keyword},()=>[t.createVNode(i,{value:s.keyword,type:"text",class:"vui-dropdown-placeholder-label",placeholder:l.placeholderValue,onInput:l.onInput},null,8,["value","placeholder","onInput"])])],2),e.toggled?(t.openBlock(),t.createBlock(r,t.mergeProps({key:0,modelValue:s.selected,"onUpdate:modelValue":o[1]||(o[1]=d=>s.selected=d)},e.$attrs,{class:"vui-dropdown-list","group-id":e.componentGroupId,"disable-filtering":e.disableFiltering,disabled:e.disabled,items:e.items,"item-label":e.itemLabel,"item-value":e.itemValue,keyword:s.keyword,selectable:!0,title:l.listTitle,"onUpdate:modelValue":l.onToggle}),t.createSlots({_:2},[e.$slots.placeholder?{name:"placeholder",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"placeholder")]),key:"0"}:void 0,e.$slots["group-item"]?{name:"group-item",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"group-item")]),key:"1"}:void 0,e.$slots.item?{name:"item",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"item")]),key:"2"}:void 0]),1040,["modelValue","group-id","disable-filtering","disabled","items","item-label","item-value","keyword","title","onUpdate:modelValue"])):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"append")],10,tt)}const lt=Object.freeze(Object.defineProperty({__proto__:null,default:u(et,[["render",ot]])},Symbol.toStringTag,{value:"Module"})),nt={en:{"component.loader.text":"It's loading..."},fr:{}},st={name:"VuiLoader",components:{VuiAlert:B},mixins:[c],props:{icon:{type:String,default:"fa-sharp fa-solid fa-spinner"},text:{type:String}},created(){p(nt)}},it={class:"vui-loader-body"};function at(e,o,n,a,s,l){const i=t.resolveComponent("vui-alert");return t.openBlock(),t.createBlock(i,{id:e.componentId,class:t.normalizeClass(["vui-loader",`vui-loader--${e.layout}`,{"vui-loader--flat":e.hasAttribute("flat")},e.$props.class])},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"prepend"),t.renderSlot(e.$slots,"icon",{},()=>[t.createElementVNode("i",{class:t.normalizeClass(["vui-loader-icon",e.icon])},null,2)]),t.renderSlot(e.$slots,"default",{},()=>[t.createElementVNode("span",it,t.toDisplayString(e.text?e.text:e.$t("component.loader.text")),1)]),t.renderSlot(e.$slots,"append")]),_:3},8,["id","class"])}const rt=Object.freeze(Object.defineProperty({__proto__:null,default:u(st,[["render",at]])},Symbol.toStringTag,{value:"Module"})),dt={en:{"component.button.close":"Close"},fr:{}},ct={name:"VuiModal",components:{VuiButton:b},mixins:[c],props:{loading:{type:Boolean},modelValue:{default:void 0,type:Boolean},showFooter:{type:Boolean},showFooterClose:{type:Boolean},showHeader:{type:Boolean},showHeaderClose:{type:Boolean},title:{type:String},value:{default:void 0,type:Boolean}},emits:["update:model-value"],data(){return{isVisible:!1}},computed:{isHeaderVisible(){return this.$slots.header||this.showHeader||this.showHeaderClose},isFooterVisible(){return this.$slots.footer||this.showFooter||this.showFooterClose}},watch:{modelValue(e){this.isVisible=e},value(e){this.isVisible=e}},created(){p(dt),this.hasModelValue?this.isVisible=this.modelValue:this.hasValue&&(this.isVisible=this.value)},methods:{onToggle(){this.disabled||(this.isVisible=!this.isVisible,this.$emit("update:model-value",this.isVisible))}}},pt=["id"],ut={class:"vui-modal-content"},mt={key:0,class:"vui-modal-content-header"},ht={key:0,class:"vui-modal-content-header-title"},ft={key:1,class:"vui-modal-content-body"},gt={key:2,class:"vui-modal-content-footer"};function bt(e,o,n,a,s,l){const i=t.resolveComponent("vui-button");return s.isVisible?(t.openBlock(),t.createElementBlock("div",{key:0,id:e.componentId,class:t.normalizeClass(["vui-modal",e.$props.class])},[t.renderSlot(e.$slots,"prepend"),t.createElementVNode("div",ut,[l.isHeaderVisible?(t.openBlock(),t.createElementBlock("div",mt,[e.title?(t.openBlock(),t.createElementBlock("span",ht,t.toDisplayString(e.title),1)):t.createCommentVNode("",!0),e.showHeaderClose?(t.openBlock(),t.createElementBlock("i",{key:1,class:"fa-regular fa-circle-xmark",onClick:o[0]||(o[0]=(...r)=>l.onToggle&&l.onToggle(...r))})):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"header")])):t.createCommentVNode("",!0),e.$slots.body||e.$slots.default?(t.openBlock(),t.createElementBlock("div",ft,[t.renderSlot(e.$slots,"body"),t.renderSlot(e.$slots,"default")])):t.createCommentVNode("",!0),l.isFooterVisible?(t.openBlock(),t.createElementBlock("div",gt,[e.showHeaderClose?(t.openBlock(),t.createBlock(i,{key:0,text:e.$t("component.button.close"),onClick:l.onToggle},null,8,["text","onClick"])):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"footer")])):t.createCommentVNode("",!0)]),t.renderSlot(e.$slots,"append")],10,pt)):t.createCommentVNode("",!0)}const $t=Object.freeze(Object.defineProperty({__proto__:null,default:u(ct,[["render",bt]])},Symbol.toStringTag,{value:"Module"})),yt={en:{},fr:{}},kt={name:"VuiNav",components:{VuiList:y},mixins:[c],props:{items:{type:Array,required:!0},itemLabel:{type:String},itemValue:{type:String},modelValue:{default:void 0,types:[Boolean,Number,Object,String]},showIcons:{type:Boolean,default:!0},value:{default:void 0,types:[Boolean,Number,Object,String]}},emits:["update:model-value"],data(){return{selected:null}},watch:{modelValue(e){this.selected=e},value(e){this.selected=e}},created(){p(yt),this.hasModelValue?this.selected=this.modelValue:this.hasValue&&(this.selected=this.value)},methods:{onClick(e){this.disabled||this.$emit("update:model-value",e)}}},Vt=["id"],St={key:1,class:"vui-list-items-item-label-text"};function Bt(e,o,n,a,s,l){const i=t.resolveComponent("router-link"),r=t.resolveComponent("vui-list");return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-nav",{"vui-nav--flat":e.hasAttribute("flat")},e.$props.class])},[t.renderSlot(e.$slots,"prepend"),t.createVNode(r,{modelValue:s.selected,"onUpdate:modelValue":[o[0]||(o[0]=d=>s.selected=d),l.onClick],class:"vui-nav-list","group-id":e.componentGroupId,disabled:e.disabled,"item-label":e.itemLabel,"item-value":e.itemValue,items:e.items,selectable:!e.disabled},{item:t.withCtx(({index:d,item:m,itemValue:k,itemLabel:V})=>[t.renderSlot(e.$slots,"item",{index:d,item:m,itemLabel:V,itemValue:k},()=>[e.showIcons?(t.openBlock(),t.createElementBlock("i",{key:0,class:t.normalizeClass(["fa-solid",{"fa-location-dot":!d},{"fa-chevron-right":d}])},null,2)):t.createCommentVNode("",!0),m.route?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",St,t.toDisplayString(k?m[V]:m),1)),m.route?(t.openBlock(),t.createBlock(i,{key:2,to:m.route,class:"vui-list-items-item-label-text"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(k?m[V]:m),1)]),_:2},1032,["to"])):t.createCommentVNode("",!0)])]),_:3},8,["modelValue","group-id","disabled","item-label","item-value","items","selectable","onUpdate:modelValue"]),t.renderSlot(e.$slots,"append")],10,Vt)}const w=u(kt,[["render",Bt]]),Ct=Object.freeze(Object.defineProperty({__proto__:null,default:w},Symbol.toStringTag,{value:"Module"})),wt={en:{},fr:{}},vt={name:"VuiPage",mixins:[h,c],created(){p(wt)},methods:{outclick(){this.$bus.emit("outclick",this.componentGroupId)}}},Nt=["id"],jt={key:0,class:"vui-page-header"},Et={key:1,class:"vui-page-body"},Pt={key:2,class:"vui-page-footer"};function zt(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-page",`vui-page--${e.layout}`,{"vui-page--flat":e.hasAttribute("flat")},e.$props.class]),onClick:o[0]||(o[0]=(...i)=>l.outclick&&l.outclick(...i))},[t.renderSlot(e.$slots,"prepend"),e.$slots.header?(t.openBlock(),t.createElementBlock("div",jt,[t.renderSlot(e.$slots,"header")])):t.createCommentVNode("",!0),e.$slots.body||e.$slots.default?(t.openBlock(),t.createElementBlock("div",Et,[t.renderSlot(e.$slots,"body"),t.renderSlot(e.$slots,"default")])):t.createCommentVNode("",!0),e.$slots.footer?(t.openBlock(),t.createElementBlock("div",Pt,[t.renderSlot(e.$slots,"footer")])):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"append")],10,Nt)}const It=Object.freeze(Object.defineProperty({__proto__:null,default:u(vt,[["render",zt]])},Symbol.toStringTag,{value:"Module"})),_t={en:{"page.component.pager.doc.prop.count":"Total number of paginated items","page.component.pager.doc.prop.disabled":"Binds the disabled state condition","page.component.pager.doc.prop.loading":"Binds the loading state","page.component.pager.doc.prop.size":"Number of paginated items per page","page.component.pager.doc.prop.value":"Selected item in the pager","page.component.pager.doc.prop.v-model":"Binds the model changes of pager","page.component.pager.doc.slot.first":"Slot for first page button","page.component.pager.doc.slot.last":"Slot for last page button","page.component.pager.doc.slot.previous":"Slot for previous page button","page.component.pager.doc.slot.next":"Slot for next page button"},fr:{}},Tt={name:"VuiPager",components:{VuiButton:b,VuiNav:w},mixins:[h,c],props:{count:{type:Number,default:0},modelValue:{default:void 0,type:Number},value:{default:void 0,type:Number},size:{type:Number,default:25}},emits:["update:model-value"],data(){return{page:1}},computed:{isLast(){return this.page===this.last},last(){return Math.ceil(this.count/this.size)},pages(){if(this.last){const e=[...Array.from({length:this.last},(a,s)=>s+1)],o=e.slice(0,this.page),n=e.slice(this.page,e.length);return[...o.slice(-(n.length>2?2:2+(2-n.length))),...n.slice(0,o.length>2?2:2+(2-o.length))]}return[]}},watch:{modelValue(e){this.page=e},value(e){this.page=e}},created(){p(_t),this.hasModelValue?this.page=this.modelValue:this.hasValue&&(this.page=this.value)},methods:{onFirst(){!this.disabled&&this.page>1&&(this.page=1,this.onPage())},onLast(){!this.disabled&&!this.isLast&&(this.page=this.last,this.onPage())},onNext(){!this.disabled&&!this.isLast&&(this.page++,this.onPage())},onPrevious(){!this.disabled&&this.page>1&&(this.page--,this.onPage())},onPage(){this.$emit("update:model-value",this.page)}}},Ot=["id"],Lt={class:"vui-pager-content"};function Mt(e,o,n,a,s,l){const i=t.resolveComponent("vui-button"),r=t.resolveComponent("vui-nav");return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-pager",e.$props.class])},[t.renderSlot(e.$slots,"prepend"),t.createElementVNode("div",Lt,[t.renderSlot(e.$slots,"first",{},()=>[t.createVNode(i,t.mergeProps(e.$attrs,{disabled:s.page===1,icon:"fa-solid fa-angles-left",class:"vui-button--first",onClick:l.onFirst}),null,16,["disabled","onClick"])]),t.renderSlot(e.$slots,"previous",{},()=>[t.createVNode(i,t.mergeProps(e.$attrs,{disabled:s.page===1,icon:"fa-solid fa-chevron-left",class:"vui-button--previous",onClick:l.onPrevious}),null,16,["disabled","onClick"])]),t.renderSlot(e.$slots,"pages",{},()=>[t.createElementVNode("div",{class:t.normalizeClass(["ellipse",{visible:l.last>4&&s.page+2>4}])}," ... ",2),t.createVNode(r,t.mergeProps({modelValue:s.page,"onUpdate:modelValue":o[0]||(o[0]=d=>s.page=d)},e.$attrs,{flat:e.hasAttribute("flat"),items:l.pages,"show-icons":!1,"onUpdate:modelValue":l.onPage}),null,16,["modelValue","flat","items","onUpdate:modelValue"]),t.createElementVNode("div",{class:t.normalizeClass(["ellipse",{visible:l.last>4&&s.page+2<l.last}])}," ... ",2)]),t.renderSlot(e.$slots,"next",{},()=>[t.createVNode(i,t.mergeProps(e.$attrs,{disabled:l.isLast,icon:"fa-solid fa-chevron-right",class:"vui-button--next",onClick:l.onNext}),null,16,["disabled","onClick"])]),t.renderSlot(e.$slots,"previous",{},()=>[t.createVNode(i,t.mergeProps(e.$attrs,{disabled:l.isLast,icon:"fa-solid fa-angles-right",class:"vui-button--last",onClick:l.onLast}),null,16,["disabled","onClick"])])]),t.renderSlot(e.$slots,"append")],10,Ot)}const At=Object.freeze(Object.defineProperty({__proto__:null,default:u(Tt,[["render",Mt]])},Symbol.toStringTag,{value:"Module"})),Ft={en:{},fr:{}},Gt={name:"VuiProgress",mixins:[c],props:{min:{type:Number,required:!0},max:{type:Number,required:!0},value:{type:Number,required:!0}},computed:{width(){const e=Math.abs(this.value),o=Math.abs(this.min),n=Math.abs(this.max);return`${Math.round(e/(o+n)*100)}%`}},created(){p(Ft)}},qt=["id"];function Dt(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-progress",e.$props.class])},[t.renderSlot(e.$slots,"prepend"),t.createElementVNode("div",{class:t.normalizeClass(["vui-progress-bar",`vui-progress-bar--${e.layout}`])},[t.createElementVNode("div",{class:"vui-progress-bar-cursor",style:t.normalizeStyle({width:l.width})},null,4)],2),t.renderSlot(e.$slots,"append")],10,qt)}const Ht=Object.freeze(Object.defineProperty({__proto__:null,default:u(Gt,[["render",Dt]])},Symbol.toStringTag,{value:"Module"})),Ut={en:{},fr:{}},Xt={name:"VuiTabs",mixins:[c],props:{icon:{type:String},items:{type:Array,required:!0},itemLabel:{type:String,default:"label"},itemValue:{type:String,default:"value"},modelValue:{type:String},value:{type:String}},emits:["update:model-value"],data(){return{active:null}},computed:{tabs(){return this.items.map(e=>({...e,$$id:this.newId()}))}},watch:{modelValue(e){this.active=e},value(e){this.active=e}},created(){var e;if(p(Ut),this.hasModelValue)this.active=this.modelValue;else if(this.hasValue)this.active=this.value;else if((e=this.items)!=null&&e.length){const o=this.items[0];this.active=o[this.itemValue]}},methods:{toggle(e){this.disabled||(this.active=e,this.$emit("update:model-value",this.active))}}},Kt=["id"],Rt={class:"vui-tabs-tabs"},Wt=["onClick"],Jt={class:"label"},Qt={class:"vui-tabs-slots"};function Yt(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-tabs",e.$props.class])},[t.renderSlot(e.$slots,"prepend"),t.createElementVNode("div",Rt,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.tabs,i=>(t.openBlock(),t.createElementBlock("div",{key:i.$$id,class:t.normalizeClass(["vui-tabs-tabs-tab",{"vui-tabs-tabs-tab--with-icon":e.icon},{"vui-tabs-tabs-tab--active":i[e.itemValue]===s.active}]),onClick:()=>l.toggle(i[e.itemValue])},[e.icon?(t.openBlock(),t.createElementBlock("i",{key:0,class:t.normalizeClass(["vui-tabs-tabs-tab-icon",e.icon])},null,2)):t.createCommentVNode("",!0),t.createElementVNode("span",Jt,t.toDisplayString(i[e.itemLabel]),1)],10,Wt))),128))]),t.createElementVNode("div",Qt,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.items,(i,r)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:`slot-${i.$$id}`},[i[e.itemValue]===s.active?t.renderSlot(e.$slots,i[e.itemValue],{key:0,index:r}):t.createCommentVNode("",!0)],64))),128))]),t.renderSlot(e.$slots,"append")],10,Kt)}const Zt=Object.freeze(Object.defineProperty({__proto__:null,default:u(Xt,[["render",Yt]])},Symbol.toStringTag,{value:"Module"})),xt={en:{},fr:{}},eo={name:"VuiTag",mixins:[c],props:{icon:{type:String},text:{type:String}},created(){p(xt)}},to=["id"];function oo(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{id:e.componentId,class:t.normalizeClass(["vui-tag",`vui-tag--${e.layout}`,{"vui-tag--with-icon":e.icon},e.$props.class])},[t.renderSlot(e.$slots,"prepend"),e.icon?(t.openBlock(),t.createElementBlock("i",{key:0,class:t.normalizeClass(["vui-tag-icon",e.icon])},null,2)):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(e.text),1)]),t.renderSlot(e.$slots,"append")],10,to)}const lo=Object.freeze(Object.defineProperty({__proto__:null,default:u(eo,[["render",oo]])},Symbol.toStringTag,{value:"Module"})),no={en:{},fr:{}},so={name:"VuiToggle",mixins:[c],props:{checked:{default:void 0,type:Boolean},checkedValue:{default:void 0,types:[Boolean,String,Number,null]},modelValue:{default:void 0,types:[Boolean,String,Number,null]},name:{type:String},uncheckedValue:{default:void 0,types:[Boolean,String,Number,null]},value:{default:void 0,types:[Boolean,String,Number,null]}},emits:["update:model-value"],data(){return{toggled:!1}},computed:{isChecked(){return this.hasProp("checked")?this.checked:this.hasProp("checkedValue")?this.toggled===this.checkedValue:this.toggled}},watch:{modelValue(e){this.toggled=e},value(e){this.toggled=e}},created(){p(no),this.hasModelValue?this.toggled=this.modelValue:this.hasValue&&(this.toggled=this.value)},methods:{onToggle(){this.disabled||(this.hasProp("checkedValue")?this.toggled=this.isChecked?this.uncheckedValue:this.checkedValue:this.toggled=!this.isChecked,this.$emit("update:model-value",this.toggled))}}},io=["id","name"],ao=t.createElementVNode("div",{class:"vui-toggle-slider"},[t.createElementVNode("div",{class:"vui-toggle-slider-button"})],-1),ro=["for"];function co(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{id:e.componentId,name:e.componentId,class:t.normalizeClass(["vui-toggle",{"vui-toggle--checked":l.isChecked},{"vui-toggle--disabled":e.disabled},e.$props.class]),onClick:o[0]||(o[0]=t.withModifiers((...i)=>l.onToggle&&l.onToggle(...i),["stop"]))},[t.renderSlot(e.$slots,"prepend"),ao,e.$slots.default?(t.openBlock(),t.createElementBlock("label",{key:0,class:"vui-toggle-label",for:e.componentId},[t.renderSlot(e.$slots,"default")],8,ro)):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"append")],10,io)}const po=Object.freeze(Object.defineProperty({__proto__:null,default:u(so,[["render",co]])},Symbol.toStringTag,{value:"Module"})),uo={name:"VuiTooltip",mixins:[c],props:{icon:{type:String},position:{type:String,default:"right"},text:{type:String},modelValue:{default:void 0,type:Boolean},value:{default:void 0,type:Boolean}},emits:["update:model-value"],data(){return{dimension:{content:{},holder:{}},show:!1}},computed:{display(){return this.show?"block":"none"},left(){const{content:e,holder:o}=this.dimension;switch(this.position){case"left":return o.left-(e.width+15);case"bottom":case"top":{const n=e.width-o.width;return o.left-n/2}case"right":default:return o.right+15}},top(){const{content:e,holder:o}=this.dimension;switch(this.position){case"bottom":return o.top+o.height+15;case"top":return o.top-e.height-15;case"left":case"right":default:return o.top-o.height/2}}},watch:{async modelValue(e){this.show=e,e&&(await this.$nextTick(),this.setPosition())},async value(e){this.show=e,e&&(await this.$nextTick(),this.setPosition())}},created(){p(C),this.hasModelValue&&(this.show=this.modelValue),this.hasValue&&(this.show=this.value),this.$bus.on("outclick",()=>{this.disabled||(this.show=!1,this.$emit("update:model-value",this.show))})},methods:{setPosition(){this.dimension.content=this.$refs.tooltip.getBoundingClientRect(),this.dimension.holder=this.$parent.$el.getBoundingClientRect()}}},mo=["id"];function ho(e,o,n,a,s,l){return t.openBlock(),t.createElementBlock("div",{id:e.componentId,ref:"tooltip",class:t.normalizeClass(["vui-tooltip",{"vui-tooltip--with-icon":e.icon},e.$props.class]),style:t.normalizeStyle({position:"fixed",display:l.display,top:`${l.top}px`,left:`${l.left}px`})},[t.createElementVNode("i",{class:t.normalizeClass(["vui-tooltip-pointer",`vui-tooltip-pointer--${e.position}`])},null,2),e.icon?(t.openBlock(),t.createElementBlock("i",{key:0,class:t.normalizeClass(["vui-tooltip-icon",e.icon])},null,2)):t.createCommentVNode("",!0),e.$slots.default?t.renderSlot(e.$slots,"default",{key:1}):t.createCommentVNode("",!0),e.text?(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[t.createTextVNode(t.toDisplayString(e.text),1)],64)):t.createCommentVNode("",!0)],14,mo)}const fo=Object.freeze(Object.defineProperty({__proto__:null,default:u(uo,[["render",ho]])},Symbol.toStringTag,{value:"Module"}));return j});
package/package.json ADDED
@@ -0,0 +1,107 @@
1
+ {
2
+ "author": "Christophe BRAGARD",
3
+ "description": "Another yet Vue UI library",
4
+ "homepage": "https://github.com/e-xode/vui#readme",
5
+ "name": "@e-xode/vui",
6
+ "license": "MIT",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "main": "./dist/vui.js",
11
+ "module": "./dist/vui.esm.js",
12
+ ".": {
13
+ "import": "./dist/vui.js",
14
+ "require": "./dist/vui.esm.js"
15
+ },
16
+ "./style.css": {
17
+ "import": "./dist/style.css",
18
+ "require": "./dist/style.css"
19
+ },
20
+ "version": "0.6.5",
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/e-xode/vui.git"
24
+ },
25
+ "bugs": {
26
+ "url": "https://github.com/e-xode/vui/issues"
27
+ },
28
+ "scripts": {
29
+ "build": "npm run build:components && npm run build:doc",
30
+ "build:components": "vite --config vite.components.mjs build",
31
+ "build:doc": "vite --config vite.doc.mjs build src/doc",
32
+ "dev": "vite --host --config vite.doc.mjs src/doc",
33
+ "lint": "eslint --ext .js,.mjs,.vue src",
34
+ "lint:fix": "eslint --fix --ext .js,.mjs,.vue src",
35
+ "preview": "vite --config vite.doc.mjs preview src/doc",
36
+ "test:unit": "vitest --config vite.components.mjs run",
37
+ "test:unit:coverage": "vitest --config vite.components.mjs run --coverage",
38
+ "test:unit:watch": "vitest --config vite.components.mjs"
39
+ },
40
+ "babel": {
41
+ "presets": [
42
+ [
43
+ "@babel/preset-env"
44
+ ]
45
+ ]
46
+ },
47
+ "eslintConfig": {
48
+ "root": true,
49
+ "extends": [
50
+ "plugin:vue/vue3-recommended",
51
+ "eslint:recommended",
52
+ "prettier"
53
+ ],
54
+ "parserOptions": {
55
+ "ecmaVersion": "latest"
56
+ },
57
+ "rules": {
58
+ "comma-dangle": ["error", "never"],
59
+ "indent": ["error", 4, { "SwitchCase": 1 }],
60
+ "no-console": ["error"],
61
+ "quotes": ["error", "single"],
62
+ "semi": ["error", "never"],
63
+ "vue/attributes-order": ["error"],
64
+ "vue/require-explicit-emits": ["error"],
65
+ "vue/html-closing-bracket-newline": ["error"],
66
+ "vue/html-indent": ["error", 4],
67
+ "vue/multi-word-component-names": "off",
68
+ "vue/no-v-html": "off",
69
+ "vue/order-in-components": ["error"],
70
+ "vue/require-default-prop": ["error"],
71
+ "vue/require-prop-types": ["error"],
72
+ "vue/v-on-event-hyphenation": ["error"]
73
+ }
74
+ },
75
+ "dependencies": {
76
+ "axios": "1.6.8",
77
+ "dayjs": "1.11.10",
78
+ "@fortawesome/fontawesome-free": "6.5.2",
79
+ "highlight.js": "11.9.0",
80
+ "mitt": "3.0.1",
81
+ "sass": "^1.72.0",
82
+ "vue": "^3.4.21",
83
+ "vue-i18n": "^9.10.2",
84
+ "vue-router": "^4.3.0",
85
+ "vuetify": "^3.5.13",
86
+ "vuex": "^4.1.0"
87
+ },
88
+ "devDependencies": {
89
+ "@babel/core": "^7.24.3",
90
+ "@babel/preset-env": "^7.24.3",
91
+ "@rushstack/eslint-patch": "^1.10.1",
92
+ "@types/jsdom": "^21.1.6",
93
+ "@types/node": "^20.12.2",
94
+ "@vitejs/plugin-vue": "^5.0.4",
95
+ "@vitest/coverage-istanbul": "^1.4.0",
96
+ "@vue/test-utils": "^2.4.5",
97
+ "eslint": "^8.57.0",
98
+ "eslint-config-prettier": "^9.1.0",
99
+ "eslint-plugin-vue": "^9.24.0",
100
+ "jsdom": "^24.0.0",
101
+ "msw": "2.2.13",
102
+ "prettier": "3.2.5",
103
+ "ramda": "^0.29.1",
104
+ "vite": "^5.2.7",
105
+ "vitest": "^1.4.0"
106
+ }
107
+ }