{"version":3,"file":"collapse.cjs","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","defineClasses","computed","registerComponent","Collapse"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,UAAM,QAAQ;AAUd,UAAM,QAAQ;AAYR,UAAA,SAASA,IAAAA,SAAqB,SAAA,MAAyB;AAG7D,aAAS,SAAe;AACb,aAAA,QAAQ,CAAC,OAAO;AACnB,UAAA,OAAO,MAAO,OAAM,MAAM;AAAA,iBACnB,OAAO;AAAA,IAAA;AAKtB,UAAM,cAAcC,cAAA;AAAA,MAChB,CAAC,aAAa,YAAY;AAAA,MAC1B;AAAA,QACI;AAAA,QACA;AAAA,QACAC,aAAS,MAAM,MAAM,QAAQ;AAAA,QAC7BA,aAAS,MAAM,CAAC,CAAC,MAAM,QAAQ;AAAA,MAAA;AAAA,IAEvC;AAEA,UAAM,iBAAiBD,cAAA;AAAA,MACnB,CAAC,gBAAgB,qBAAqB;AAAA,MACtC;AAAA,QACI;AAAA,QACA;AAAA,QACA;AAAA,QACAC,IAAA,SAAS,MAAM,MAAM,QAAQ;AAAA,MAAA;AAAA,IAErC;AAEA,UAAM,iBAAiBD,cAAA,cAAc,CAAC,gBAAgB,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjE5E,MAAe,QAAA;AAAA,EACX,QAAQ,KAAU;AACdE,WAAA,kBAAkB,KAAKC,SAAQ;AAAA,EAAA;AAEvC;;;"}