# GridTypeProvider

> _Since v0.1.0_

Provides application-wide type defaults for all descendant grids.

Wrap your application (or part of it) with this provider to make
type-level renderers and editors available to all TbwGrid components.

```ts
const GridTypeProvider: DefineComponent<ExtractPropTypes<{ defaults: { type: PropType<TypeDefaultsMap>; required: true } }>, () => VNode<RendererNode, RendererElement, object>[] | undefined, object, object, object, ComponentOptionsMixin, ComponentOptionsMixin, object, string, PublicProps, ToResolvedProps<ExtractPropTypes<{ defaults: { type: PropType<TypeDefaultsMap>; required: true } }>, object>, object, object, object, object, string, ComponentProvideOptions, true, object, any>
```

#### Example

```vue
<script setup>
import { GridTypeProvider, type TypeDefaultsMap } from '@toolbox-web/grid-vue';
import { h } from 'vue';
import CountryBadge from './CountryBadge.vue';

const typeDefaults: TypeDefaultsMap = {
  country: {
    renderer: (ctx) => h(CountryBadge, { code: ctx.value }),
  },
};
</script>

<template>
  <GridTypeProvider :defaults="typeDefaults">
    <App />
  </GridTypeProvider>
</template>
```
