{"version":3,"file":"collapse.mjs","sources":["../../src/components/collapse/Collapse.vue","../../src/components/collapse/index.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useId } from \"vue\";\n\nimport { getDefault } from \"@/utils/config\";\nimport { defineClasses } from \"@/composables\";\n\nimport type { CollapseProps } from \"./props\";\n\n/**\n * An easy way to toggle what you want.\n * @displayName Collapse\n * @style _collapse.scss\n */\ndefineOptions({\n    isOruga: true,\n    name: \"OCollapse\",\n    configField: \"collapse\",\n});\n\nconst props = withDefaults(defineProps<CollapseProps>(), {\n    override: undefined,\n    open: true,\n    expanded: false,\n    animation: () => getDefault(\"collapse.animation\", \"fade\"),\n    position: () => getDefault(\"collapse.position\", \"top\"),\n    contentId: () => useId(),\n    triggerId: () => useId(),\n});\n\nconst emits = defineEmits<{\n    /**\n     * open prop two-way binding\n     * @param value {boolean} updated open prop\n     */\n    \"update:open\": [value: boolean];\n    /** on collapse opened */\n    open: [];\n    /** on collapse closed */\n    close: [];\n}>();\n\nconst isOpen = defineModel<boolean>(\"open\", { default: true });\n\n/** Toggle and emit events */\nfunction toggle(): void {\n    isOpen.value = !isOpen.value;\n    if (isOpen.value) emits(\"open\");\n    else emits(\"close\");\n}\n\n// --- Computed Component Classes ---\n\nconst rootClasses = defineClasses(\n    [\"rootClass\", \"o-collapse\"],\n    [\n        \"positionClass\",\n        \"o-collapse--\",\n        computed(() => props.position),\n        computed(() => !!props.position),\n    ],\n);\n\nconst triggerClasses = defineClasses(\n    [\"triggerClass\", \"o-collapse__trigger\"],\n    [\n        \"expandedClass\",\n        \"o-collapse__trigger--expanded\",\n        null,\n        computed(() => props.expanded),\n    ],\n);\n\nconst contentClasses = defineClasses([\"contentClass\", \"o-collapse__content\"]);\n</script>\n\n<template>\n    <div data-oruga=\"collapse\" :class=\"rootClasses\">\n        <div\n            :id=\"triggerId\"\n            :class=\"triggerClasses\"\n            role=\"button\"\n            tabindex=\"0\"\n            :aria-controls=\"contentId\"\n            :aria-expanded=\"isOpen\"\n            @click=\"toggle\"\n            @keydown.enter.prevent=\"toggle\"\n            @keydown.space.prevent=\"toggle\">\n            <!--\n                @slot Define the collapse trigger\n                @binding {boolean} open collapse open state \n             -->\n            <slot name=\"trigger\" :open=\"isOpen\" />\n        </div>\n\n        <Transition :name=\"animation\">\n            <div\n                v-show=\"isOpen\"\n                :id=\"contentId\"\n                :class=\"contentClasses\"\n                :aria-labelledby=\"triggerId\">\n                <!--\n                    @slot Default content\n                -->\n                <slot />\n            </div>\n        </Transition>\n    </div>\n</template>\n","import type { App, Plugin } from \"vue\";\n\nimport Collapse from \"./Collapse.vue\";\n\nimport { registerComponent } from \"@/utils/plugins\";\n\n/** export collapse plugin */\nexport default {\n    install(app: App) {\n        registerComponent(app, Collapse);\n    },\n} as Plugin;\n\n/** export collapse components */\nexport { Collapse as OCollapse };\n"],"names":["_useModel","_createElementBlock","_unref","_createElementVNode","triggerId","contentId","_renderSlot","_createVNode","_Transition","animation","Collapse"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,UAAM,QAAQ;AAUd,UAAM,QAAQ;AAYd,UAAM,SAASA,SAAoB,SAAC,MAAyB;AAG7D,aAAS,SAAe;AACpB,aAAO,QAAQ,CAAC,OAAO;AACvB,UAAI,OAAO,MAAO,OAAM,MAAM;AAAA,iBACnB,OAAO;AAAA,IACtB;AAIA,UAAM,cAAc;AAAA,MAChB,CAAC,aAAa,YAAY;AAAA,MAC1B;AAAA,QACI;AAAA,QACA;AAAA,QACA,SAAS,MAAM,MAAM,QAAQ;AAAA,QAC7B,SAAS,MAAM,CAAC,CAAC,MAAM,QAAQ;AAAA,MAAA;AAAA,IACnC;AAGJ,UAAM,iBAAiB;AAAA,MACnB,CAAC,gBAAgB,qBAAqB;AAAA,MACtC;AAAA,QACI;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,MAAM,MAAM,QAAQ;AAAA,MAAA;AAAA,IACjC;AAGJ,UAAM,iBAAiB,cAAc,CAAC,gBAAgB,qBAAqB,CAAC;;0BAIxEC,mBA8BM,OAAA;AAAA,QA9BD,cAAW;AAAA,QAAY,sBAAOC,MAAA,WAAA,CAAW;AAAA,MAAA;QAC1CC,mBAeM,OAAA;AAAA,UAdD,IAAIC,KAAAA;AAAAA,UACJ,sBAAOF,MAAA,cAAA,CAAc;AAAA,UACtB,MAAK;AAAA,UACL,UAAS;AAAA,UACR,iBAAeG,KAAAA;AAAAA,UACf,iBAAe,OAAA;AAAA,UACf,SAAO;AAAA,UACP,WAAO;AAAA,mCAAgB,QAAM,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;AAAA,mCACN,QAAM,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;AAAA,UAAA;AAAA;UAK9BC,WAAsC,KAAA,QAAA,WAAA,EAAhB,MAAM,OAAA,OAAM;AAAA,QAAA;QAGtCC,YAWaC,YAAA,EAXA,MAAMC,KAAAA,aAAS;AAAA,2BACxB,MASM;AAAA,2BATNN,mBASM,OAAA;AAAA,cAPD,IAAIE,KAAAA;AAAAA,cACJ,sBAAOH,MAAA,cAAA,CAAc;AAAA,cACrB,mBAAiBE,KAAAA;AAAAA,YAAAA;cAIlBE,WAAQ,KAAA,QAAA,SAAA;AAAA,YAAA;sBAPA,OAAA,KAAM;AAAA,YAAA;;;;;;;;ACzF9B,MAAA,QAAe;AAAA,EACX,QAAQ,KAAU;AACd,sBAAkB,KAAKI,SAAQ;AAAA,EACnC;AACJ;"}