@ark-ui/vue
Version:
A collection of unstyled, accessible UI components for Vue, utilizing state machines for seamless interaction.
75 lines (68 loc) • 2.78 kB
JavaScript
'use strict';
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const vue = require('vue');
const toast = require('@zag-js/toast');
const vue$1 = require('@zag-js/vue');
const useEnvironmentContext = require('../../providers/environment/use-environment-context.cjs');
const useLocaleContext = require('../../providers/locale/use-locale-context.cjs');
const useForwardExpose = require('../../utils/use-forward-expose.cjs');
const factory = require('../factory.cjs');
const toasterItem_vue_vue_type_script_setup_true_lang = require('./toaster-item.vue.cjs');
function _interopNamespaceDefault(e) {
const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
if (e) {
for (const k in e) {
if (k !== 'default') {
const d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: () => e[k]
});
}
}
}
n.default = e;
return Object.freeze(n);
}
const toast__namespace = /*#__PURE__*/_interopNamespaceDefault(toast);
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
__name: "toaster",
props: {
toaster: {},
asChild: { type: Boolean }
},
setup(__props) {
const props = __props;
const locale = useLocaleContext.useLocaleContext(useLocaleContext.DEFAULT_LOCALE);
const env = useEnvironmentContext.useEnvironmentContext(useEnvironmentContext.DEFAULT_ENVIRONMENT);
const service = vue$1.useMachine(toast__namespace.group.machine, {
store: props.toaster,
id: vue.useId(),
dir: locale?.value.dir,
getRootNode: env?.value.getRootNode
});
const api = vue.computed(() => toast__namespace.group.connect(service, vue$1.normalizeProps));
useForwardExpose.useForwardExpose();
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.unref(factory.ark).div, vue.normalizeProps(vue.guardReactiveProps(api.value.getGroupProps())), {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(api.value.getToasts(), (toastItem, index) => {
return vue.openBlock(), vue.createBlock(toasterItem_vue_vue_type_script_setup_true_lang.default, {
key: toastItem.id,
value: toastItem,
parent: vue.unref(service),
index
}, {
default: vue.withCtx((slotProps) => [
vue.renderSlot(_ctx.$slots, "default", vue.mergeProps({ ref_for: true }, slotProps))
]),
_: 3
}, 8, ["value", "parent", "index"]);
}), 128))
]),
_: 3
}, 16);
};
}
});
exports.default = _sfc_main;