import './styles/bagel.css'

export * from './components'
export * from './components/form/useBagelFormState'
export * from './composables'
// Dialog (native <dialog> based)
export * from './dialog'
export * from './directives'
// Form Flow
export * from './form-flow/form-flow'
export { default as FormFlow } from './form-flow/FormFlow.vue'
export { default as MultiStepForm } from './form-flow/MultiStepForm.vue'
// i18n exports
export {
	bagelinkLocales,
	type CreateBagelI18nOptions,
	createI18n,
	type MessageSchema,
	resolveI18n,
	type TranslatableString,
	useI18n,
} from './i18n'
export { type BagelOptions, BagelVue, getI18n } from './plugins/bagel'
export { ModalPlugin, useModal } from './plugins/useModal'

export { type BagelToastOptions, type ToastApi, ToastPlugin, useToast } from './plugins/useToast'

export * from './types'
export * from './utils'
export * from './utils/allCountries'
export * from './utils/BagelFormUtils'
export * from './utils/calendar/dateUtils'

export * from './utils/constants'
export * from './utils/elementUtils'
export * from './utils/filterRef'
export * from './utils/ipapi'
export * from './utils/useSearch'
