diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7c17c59..b213657 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,14 @@
+# 0.4.0
+### Features
+ - New `itemDefaults` prop to create default options for all selectable items can be created.
+
+ - New `createItemDefaults(options: ItemDefaults)` function for default options, this function will wrap `wrapperComponentOrTag` with `markRaw` if component is given.
+
+### Bug Fixes
+ - Fixed not wrapping functional components with `markRaw` in `item()` and `itemGroup()`.
+
+
+
# 0.3.1
### Bug Fixes
- Fixed types of hooks/events.
diff --git a/README.md b/README.md
index 28de98a..40cd04d 100644
--- a/README.md
+++ b/README.md
@@ -92,6 +92,9 @@ Let's explain everything step by step.
// onMounted, Composables, Keyboard Handling (see examples) and more setup specific stuff.
// NOTE: This function will only run once on setup phase.
setup?: (context: Context) => void;
+
+ // Default options for all selectable items.
+ itemDefaults?: ItemDefaults;
}
```
@@ -459,6 +462,51 @@ Let's explain everything step by step.
}
```
+## Item Defaults
+If you want to give default options to all selectable items, you can use `itemDefaults: ItemDefaults` prop.
+
+
+It is recommended to use `createItemDefaults(options?: Partial)` function to create options because if `wrapperComponentOrTag` is component it'll be wrapped by `markRaw` not to slow performance.
+
+```html
+
+
+
+
+
+```
## Context
Context is an object of functions, you can access it via `setup` prop and `template ref`.
diff --git a/package.json b/package.json
index c7f30a5..fd8b5fa 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "vue-selectable-items",
- "version": "0.3.1",
+ "version": "0.4.0",
"main": "dist/index.js",
"module": "dist/index.mjs",
"types": "dist/types/index.d.ts",