Kaynağa Gözat

docs: Generate all docs

Michael Bromley 5 ay önce
ebeveyn
işleme
c085985c48
49 değiştirilmiş dosya ile 823 ekleme ve 619 silme
  1. 8 0
      docs/docs/reference/core-plugins/admin-ui-plugin/admin-ui-plugin-options.md
  2. 1 1
      docs/docs/reference/core-plugins/admin-ui-plugin/index.md
  3. 4 4
      docs/docs/reference/core-plugins/elasticsearch-plugin/elasticsearch-options.md
  4. 5 13
      docs/docs/reference/core-plugins/email-plugin/email-utils.md
  5. 0 41
      docs/docs/reference/dashboard/components/data-table-bulk-actions.md
  6. 9 3
      docs/docs/reference/dashboard/components/list-page.md
  7. 2 2
      docs/docs/reference/dashboard/components/page-block.md
  8. 0 67
      docs/docs/reference/dashboard/extensions/dashboard-action-bar-item.md
  9. 1 3
      docs/docs/reference/dashboard/extensions/dashboard-base-widget-props.md
  10. 0 39
      docs/docs/reference/dashboard/extensions/dashboard-custom-form-component.md
  11. 0 35
      docs/docs/reference/dashboard/extensions/dashboard-custom-form-components.md
  12. 0 41
      docs/docs/reference/dashboard/extensions/dashboard-data-table-display-component.md
  13. 0 61
      docs/docs/reference/dashboard/extensions/dashboard-data-table-extension-definition.md
  14. 0 47
      docs/docs/reference/dashboard/extensions/dashboard-detail-form-display-component.md
  15. 0 47
      docs/docs/reference/dashboard/extensions/dashboard-detail-form-input-component.md
  16. 15 10
      docs/docs/reference/dashboard/extensions/dashboard-extension.md
  17. 0 60
      docs/docs/reference/dashboard/extensions/dashboard-page-block-definition.md
  18. 1 1
      docs/docs/reference/dashboard/extensions/dashboard-widget-definition.md
  19. 1 3
      docs/docs/reference/dashboard/extensions/dashboard-widget-instance.md
  20. 124 0
      docs/docs/reference/dashboard/extensions/data-table.md
  21. 1 1
      docs/docs/reference/dashboard/extensions/define-dashboard-extension.md
  22. 129 0
      docs/docs/reference/dashboard/extensions/detail-forms.md
  23. 66 0
      docs/docs/reference/dashboard/extensions/form-components.md
  24. 152 0
      docs/docs/reference/dashboard/extensions/layout.md
  25. 147 0
      docs/docs/reference/dashboard/extensions/login.md
  26. 103 0
      docs/docs/reference/dashboard/extensions/navigation.md
  27. 0 49
      docs/docs/reference/dashboard/extensions/page-block-location.md
  28. 1 1
      docs/docs/reference/dashboard/hooks/use-channel.md
  29. 0 12
      docs/docs/reference/graphql-api/admin/input-types.md
  30. 24 24
      docs/docs/reference/graphql-api/admin/mutations.md
  31. 0 14
      docs/docs/reference/graphql-api/admin/object-types.md
  32. 8 23
      docs/docs/reference/graphql-api/admin/queries.md
  33. 1 1
      docs/docs/reference/typescript-api/common/language-code.md
  34. 1 1
      docs/docs/reference/typescript-api/common/permission.md
  35. 1 1
      docs/docs/reference/typescript-api/configuration/default-config.md
  36. 1 1
      docs/docs/reference/typescript-api/configuration/settings-store-fields.md
  37. 1 1
      docs/docs/reference/typescript-api/custom-fields/custom-field-config.md
  38. 1 1
      docs/docs/reference/typescript-api/custom-fields/index.md
  39. 1 1
      docs/docs/reference/typescript-api/custom-fields/struct-custom-field-config.md
  40. 1 1
      docs/docs/reference/typescript-api/custom-fields/struct-field-config.md
  41. 1 1
      docs/docs/reference/typescript-api/custom-fields/typed-custom-single-field-config.md
  42. 1 1
      docs/docs/reference/typescript-api/settings-store/cleanup-orphaned-settings-store-entries-options.md
  43. 1 1
      docs/docs/reference/typescript-api/settings-store/cleanup-orphaned-settings-store-entries-result.md
  44. 1 1
      docs/docs/reference/typescript-api/settings-store/orphaned-settings-store-entry.md
  45. 1 1
      docs/docs/reference/typescript-api/settings-store/set-settings-store-value-result.md
  46. 1 1
      docs/docs/reference/typescript-api/settings-store/settings-store-field-config.md
  47. 1 1
      docs/docs/reference/typescript-api/settings-store/settings-store-registration.md
  48. 5 1
      docs/docs/reference/typescript-api/settings-store/settings-store-scope-function.md
  49. 1 1
      docs/docs/reference/typescript-api/settings-store/settings-store-scopes.md

+ 8 - 0
docs/docs/reference/core-plugins/admin-ui-plugin/admin-ui-plugin-options.md

@@ -22,6 +22,7 @@ interface AdminUiPluginOptions {
     hostname?: string;
     app?: AdminUiAppConfig | AdminUiAppDevModeConfig;
     adminUiConfig?: Partial<AdminUiConfig>;
+    compatibilityMode?: boolean;
 }
 ```
 
@@ -60,6 +61,13 @@ version, e.g. one pre-compiled with one or more ui extensions.
 
 Allows the contents of the `vendure-ui-config.json` file to be set, e.g.
 for specifying the Vendure GraphQL API host, available UI languages, etc.
+### compatibilityMode
+
+<MemberInfo kind="property" type={`boolean`}  since="3.4.0"  />
+
+If you are running the AdminUiPlugin at the same time as the new {@link DashboardPlugin}, you should
+set this to `true` in order to avoid a conflict caused by both plugins defining the same
+schema extensions.
 
 
 </div>

+ 1 - 1
docs/docs/reference/core-plugins/admin-ui-plugin/index.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## AdminUiPlugin
 
-<GenerationInfo sourceFile="packages/admin-ui-plugin/src/plugin.ts" sourceLine="130" packageName="@vendure/admin-ui-plugin" />
+<GenerationInfo sourceFile="packages/admin-ui-plugin/src/plugin.ts" sourceLine="139" packageName="@vendure/admin-ui-plugin" />
 
 This plugin starts a static server for the Admin UI app, and proxies it via the `/admin/` path of the main Vendure server.
 

+ 4 - 4
docs/docs/reference/core-plugins/elasticsearch-plugin/elasticsearch-options.md

@@ -192,8 +192,8 @@ The `public` (default = `true`) property is used to reveal or hide the property
 If this property is set to `false` it's not accessible in the `customMappings` field but it's still getting
 parsed to the elasticsearch index.
 
-This config option defines custom mappings which are accessible when the "groupByProduct"
-input options is set to `true`. In addition, custom variant mappings can be accessed by using
+This config option defines custom mappings which are accessible when the "groupByProduct" or "groupBySKU"
+input options is set to `true` (Do not set both to true at the same time). In addition, custom variant mappings can be accessed by using
 the `customProductVariantMappings` field, which is always available.
 
 *Example*
@@ -244,8 +244,8 @@ query SearchProducts($input: SearchInput!) {
 
 <MemberInfo kind="property" type={`{         [fieldName: string]: CustomMapping&#60;[<a href='/reference/typescript-api/entities/product-variant#productvariant'>ProductVariant</a>, <a href='/reference/typescript-api/common/language-code#languagecode'>LanguageCode</a>, <a href='/reference/typescript-api/common/injector#injector'>Injector</a>, <a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>]&#62;;     }`}   />
 
-This config option defines custom mappings which are accessible when the "groupByProduct"
-input options is set to `false`. In addition, custom product mappings can be accessed by using
+This config option defines custom mappings which are accessible when the "groupByProduct" and "groupBySKU"
+input options are both set to `false`. In addition, custom product mappings can be accessed by using
 the `customProductMappings` field, which is always available.
 
 *Example*

+ 5 - 13
docs/docs/reference/core-plugins/email-plugin/email-utils.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## transformOrderLineAssetUrls
 
-<GenerationInfo sourceFile="packages/email-plugin/src/handler/default-email-handlers.ts" sourceLine="101" packageName="@vendure/email-plugin" />
+<GenerationInfo sourceFile="packages/email-plugin/src/handler/default-email-handlers.ts" sourceLine="106" packageName="@vendure/email-plugin" />
 
 Applies the configured `AssetStorageStrategy.toAbsoluteUrl()` function to each of the
 OrderLine's `featuredAsset.preview` properties, so that they can be correctly displayed
@@ -40,27 +40,19 @@ Parameters
 
 
 
-## hydrateShippingLines
+## shippingLinesWithMethod
 
-<GenerationInfo sourceFile="packages/email-plugin/src/handler/default-email-handlers.ts" sourceLine="122" packageName="@vendure/email-plugin" />
+<GenerationInfo sourceFile="packages/email-plugin/src/handler/default-email-handlers.ts" sourceLine="127" packageName="@vendure/email-plugin" />
 
-Ensures that the ShippingLines are hydrated so that we can use the
+Ensures that the ShippingLines have a shippingMethod so that we can use the
 `shippingMethod.name` property in the email template.
 
 ```ts title="Signature"
-function hydrateShippingLines(ctx: RequestContext, order: Order, injector: Injector): Promise<ShippingLine[]>
+function shippingLinesWithMethod(order: Order): ShippingLine[]
 ```
 Parameters
 
-### ctx
-
-<MemberInfo kind="parameter" type={`<a href='/reference/typescript-api/request/request-context#requestcontext'>RequestContext</a>`} />
-
 ### order
 
 <MemberInfo kind="parameter" type={`<a href='/reference/typescript-api/entities/order#order'>Order</a>`} />
 
-### injector
-
-<MemberInfo kind="parameter" type={`<a href='/reference/typescript-api/common/injector#injector'>Injector</a>`} />
-

+ 0 - 41
docs/docs/reference/dashboard/components/data-table-bulk-actions.md

@@ -1,41 +0,0 @@
----
-title: "DataTableBulkActions"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## BulkAction
-
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/data-table.ts" sourceLine="45" packageName="@vendure/dashboard" since="3.4.0" />
-
-**Status: Developer Preview**
-
-A bulk action is a component that will be rendered in the bulk actions dropdown.
-
-```ts title="Signature"
-type BulkAction = {
-    order?: number;
-    component: BulkActionComponent<any>;
-}
-```
-
-<div className="members-wrapper">
-
-### order
-
-<MemberInfo kind="property" type={`number`}   />
-
-
-### component
-
-<MemberInfo kind="property" type={`BulkActionComponent&#60;any&#62;`}   />
-
-
-
-
-</div>

+ 9 - 3
docs/docs/reference/dashboard/components/list-page.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## ListPage
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/list-page.tsx" sourceLine="69" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/list-page.tsx" sourceLine="76" packageName="@vendure/dashboard" since="3.3.0" />
 
 **Status: Developer Preview**
 
@@ -30,7 +30,7 @@ Parameters
 
 ## ListPageProps
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/list-page.tsx" sourceLine="30" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/list-page.tsx" sourceLine="31" packageName="@vendure/dashboard" since="3.3.0" />
 
 **Status: Developer Preview**
 
@@ -56,6 +56,7 @@ interface ListPageProps<T extends TypedDocumentNode<U, V>, U extends ListQuerySh
     transformData?: (data: any[]) => any[];
     setTableOptions?: (table: TableOptions<any>) => TableOptions<any>;
     bulkActions?: BulkAction[];
+    registerRefresher?: PaginatedListRefresherRegisterFn;
 }
 ```
 
@@ -148,7 +149,12 @@ interface ListPageProps<T extends TypedDocumentNode<U, V>, U extends ListQuerySh
 
 ### bulkActions
 
-<MemberInfo kind="property" type={`<a href='/reference/dashboard/components/data-table-bulk-actions#bulkaction'>BulkAction</a>[]`}   />
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/data-table#bulkaction'>BulkAction</a>[]`}   />
+
+
+### registerRefresher
+
+<MemberInfo kind="property" type={`PaginatedListRefresherRegisterFn`}   />
 
 
 

+ 2 - 2
docs/docs/reference/dashboard/components/page-block.md

@@ -86,7 +86,7 @@ type PageBlockProps = {
 
 ## FullWidthPageBlock
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="444" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="452" packageName="@vendure/dashboard" since="3.3.0" />
 
 **Status: Developer Preview**
 
@@ -106,7 +106,7 @@ Parameters
 
 ## CustomFieldsPageBlock
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="469" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="477" packageName="@vendure/dashboard" since="3.3.0" />
 
 **Status: Developer Preview**
 

+ 0 - 67
docs/docs/reference/dashboard/extensions/dashboard-action-bar-item.md

@@ -1,67 +0,0 @@
----
-title: "DashboardActionBarItem"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## DashboardActionBarItem
-
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/layout.ts" sourceLine="19" packageName="@vendure/dashboard" since="3.3.0" />
-
-**Status: Developer Preview**
-
-Allows you to define custom action bar items for any page in the dashboard.
-
-```ts title="Signature"
-interface DashboardActionBarItem {
-    pageId: string;
-    component: React.FunctionComponent<{ context: PageContextValue }>;
-    type?: 'button' | 'dropdown';
-    requiresPermission?: string | string[];
-}
-```
-
-<div className="members-wrapper">
-
-### pageId
-
-<MemberInfo kind="property" type={`string`}   />
-
-The ID of the page where the action bar item should be displayed.
-### component
-
-<MemberInfo kind="property" type={`React.FunctionComponent&#60;{ context: PageContextValue }&#62;`}   />
-
-A React component that will be rendered in the action bar.
-### type
-
-<MemberInfo kind="property" type={`'button' | 'dropdown'`} default={`'button'`}   />
-
-The type of action bar item to display. Defaults to `button`.
-The 'dropdown' type is used to display the action bar item as a dropdown menu item.
-
-When using the dropdown type, use a suitable [dropdown item](https://ui.shadcn.com/docs/components/dropdown-menu)
-component, such as:
-
-```tsx
-import { DropdownMenuItem } from '@vendure/dashboard';
-
-// ...
-
-{
-  component: () => <DropdownMenuItem>My Item</DropdownMenuItem>
-}
-```
-### requiresPermission
-
-<MemberInfo kind="property" type={`string | string[]`}   />
-
-Any permissions that are required to display this action bar item.
-
-
-</div>

+ 1 - 3
docs/docs/reference/dashboard/extensions/dashboard-base-widget-props.md

@@ -11,9 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## DashboardBaseWidgetProps
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/widgets.ts" sourceLine="12" packageName="@vendure/dashboard" since="3.3.0" />
-
-**Status: Developer Preview**
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/widgets.ts" sourceLine="10" packageName="@vendure/dashboard" since="3.3.0" />
 
 Base props interface for dashboard widgets.
 

+ 0 - 39
docs/docs/reference/dashboard/extensions/dashboard-custom-form-component.md

@@ -1,39 +0,0 @@
----
-title: "DashboardCustomFormComponent"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## DashboardCustomFormComponent
-
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/form-components.ts" sourceLine="12" packageName="@vendure/dashboard" since="3.4.0" />
-
-Allows you to define custom form components for custom fields in the dashboard.
-
-```ts title="Signature"
-interface DashboardCustomFormComponent {
-    id: string;
-    component: React.FunctionComponent<CustomFormComponentInputProps>;
-}
-```
-
-<div className="members-wrapper">
-
-### id
-
-<MemberInfo kind="property" type={`string`}   />
-
-
-### component
-
-<MemberInfo kind="property" type={`React.FunctionComponent&#60;CustomFormComponentInputProps&#62;`}   />
-
-
-
-
-</div>

+ 0 - 35
docs/docs/reference/dashboard/extensions/dashboard-custom-form-components.md

@@ -1,35 +0,0 @@
----
-title: "DashboardCustomFormComponents"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## DashboardCustomFormComponents
-
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/form-components.ts" sourceLine="25" packageName="@vendure/dashboard" since="3.4.0" />
-
-Interface for registering custom field components in the dashboard.
-For input and display components, use the co-located approach with detailForms.
-
-```ts title="Signature"
-interface DashboardCustomFormComponents {
-    customFields?: DashboardCustomFormComponent[];
-}
-```
-
-<div className="members-wrapper">
-
-### customFields
-
-<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/dashboard-custom-form-component#dashboardcustomformcomponent'>DashboardCustomFormComponent</a>[]`}   />
-
-Custom form components for custom fields. These are used when rendering
-custom fields in forms.
-
-
-</div>

+ 0 - 41
docs/docs/reference/dashboard/extensions/dashboard-data-table-display-component.md

@@ -1,41 +0,0 @@
----
-title: "DashboardDataTableDisplayComponent"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## DashboardDataTableDisplayComponent
-
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/data-table.ts" sourceLine="12" packageName="@vendure/dashboard" since="3.4.0" />
-
-Allows you to define custom display components for specific columns in data tables.
-The pageId is already defined in the data table extension, so only the column name is needed.
-
-```ts title="Signature"
-interface DashboardDataTableDisplayComponent {
-    column: string;
-    component: React.ComponentType<{ value: any; [key: string]: any }>;
-}
-```
-
-<div className="members-wrapper">
-
-### column
-
-<MemberInfo kind="property" type={`string`}   />
-
-The name of the column where this display component should be used.
-### component
-
-<MemberInfo kind="property" type={`React.ComponentType&#60;{ value: any; [key: string]: any }&#62;`}   />
-
-The React component that will be rendered as the display.
-It should accept `value` and other standard display props.
-
-
-</div>

+ 0 - 61
docs/docs/reference/dashboard/extensions/dashboard-data-table-extension-definition.md

@@ -1,61 +0,0 @@
----
-title: "DashboardDataTableExtensionDefinition"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## DashboardDataTableExtensionDefinition
-
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/data-table.ts" sourceLine="59" packageName="@vendure/dashboard" since="3.4.0" />
-
-**Status: Developer Preview**
-
-This allows you to customize aspects of existing data tables in the dashboard.
-
-```ts title="Signature"
-interface DashboardDataTableExtensionDefinition {
-    pageId: string;
-    blockId?: string;
-    bulkActions?: BulkAction[];
-    extendListDocument?: string | DocumentNode | (() => DocumentNode | string);
-    displayComponents?: DashboardDataTableDisplayComponent[];
-}
-```
-
-<div className="members-wrapper">
-
-### pageId
-
-<MemberInfo kind="property" type={`string`}   />
-
-The ID of the page where the data table is located, e.g. `'product-list'`, `'order-list'`.
-### blockId
-
-<MemberInfo kind="property" type={`string`}   />
-
-The ID of the data table block. Defaults to `'list-table'`, which is the default blockId
-for the standard list pages. However, some other pages may use a different blockId,
-such as `'product-variants-table'` on the `'product-detail'` page.
-### bulkActions
-
-<MemberInfo kind="property" type={`<a href='/reference/dashboard/components/data-table-bulk-actions#bulkaction'>BulkAction</a>[]`}   />
-
-An array of additional bulk actions that will be available on the data table.
-### extendListDocument
-
-<MemberInfo kind="property" type={`string | DocumentNode | (() =&#62; DocumentNode | string)`}   />
-
-Allows you to extend the list document for the data table.
-### displayComponents
-
-<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/dashboard-data-table-display-component#dashboarddatatabledisplaycomponent'>DashboardDataTableDisplayComponent</a>[]`}   />
-
-Custom display components for specific columns in the data table.
-
-
-</div>

+ 0 - 47
docs/docs/reference/dashboard/extensions/dashboard-detail-form-display-component.md

@@ -1,47 +0,0 @@
----
-title: "DashboardDetailFormDisplayComponent"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## DashboardDetailFormDisplayComponent
-
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/detail-forms.ts" sourceLine="42" packageName="@vendure/dashboard" since="3.4.0" />
-
-Allows you to define custom display components for specific fields in detail forms.
-The pageId is already defined in the detail form extension, so only the blockId and field are needed.
-
-```ts title="Signature"
-interface DashboardDetailFormDisplayComponent {
-    blockId: string;
-    field: string;
-    component: DataDisplayComponent;
-}
-```
-
-<div className="members-wrapper">
-
-### blockId
-
-<MemberInfo kind="property" type={`string`}   />
-
-The ID of the block where this display component should be used.
-### field
-
-<MemberInfo kind="property" type={`string`}   />
-
-The name of the field where this display component should be used.
-### component
-
-<MemberInfo kind="property" type={`DataDisplayComponent`}   />
-
-The React component that will be rendered as the display.
-It should accept `value` and other standard display props.
-
-
-</div>

+ 0 - 47
docs/docs/reference/dashboard/extensions/dashboard-detail-form-input-component.md

@@ -1,47 +0,0 @@
----
-title: "DashboardDetailFormInputComponent"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## DashboardDetailFormInputComponent
-
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/detail-forms.ts" sourceLine="15" packageName="@vendure/dashboard" since="3.4.0" />
-
-Allows you to define custom input components for specific fields in detail forms.
-The pageId is already defined in the detail form extension, so only the blockId and field are needed.
-
-```ts title="Signature"
-interface DashboardDetailFormInputComponent {
-    blockId: string;
-    field: string;
-    component: DataInputComponent;
-}
-```
-
-<div className="members-wrapper">
-
-### blockId
-
-<MemberInfo kind="property" type={`string`}   />
-
-The ID of the block where this input component should be used.
-### field
-
-<MemberInfo kind="property" type={`string`}   />
-
-The name of the field where this input component should be used.
-### component
-
-<MemberInfo kind="property" type={`DataInputComponent`}   />
-
-The React component that will be rendered as the input.
-It should accept `value`, `onChange`, and other standard input props.
-
-
-</div>

+ 15 - 10
docs/docs/reference/dashboard/extensions/dashboard-extension.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## DashboardExtension
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/extension-api-types.ts" sourceLine="23" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/extension-api-types.ts" sourceLine="24" packageName="@vendure/dashboard" since="3.3.0" />
 
 **Status: Developer Preview**
 
@@ -28,6 +28,7 @@ interface DashboardExtension {
     customFormComponents?: DashboardCustomFormComponents;
     dataTables?: DashboardDataTableExtensionDefinition[];
     detailForms?: DashboardDetailFormExtensionDefinition[];
+    login?: DashboardLoginExtensions;
 }
 ```
 
@@ -35,22 +36,22 @@ interface DashboardExtension {
 
 ### routes
 
-<MemberInfo kind="property" type={`DashboardRouteDefinition[]`}   />
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/navigation#dashboardroutedefinition'>DashboardRouteDefinition</a>[]`}   />
 
 Allows you to define custom routes such as list or detail views.
 ### navSections
 
-<MemberInfo kind="property" type={`DashboardNavSectionDefinition[]`}   />
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/navigation#dashboardnavsectiondefinition'>DashboardNavSectionDefinition</a>[]`}   />
 
 Allows you to define custom nav sections for the dashboard.
 ### pageBlocks
 
-<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/dashboard-page-block-definition#dashboardpageblockdefinition'>DashboardPageBlockDefinition</a>[]`}   />
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/layout#dashboardpageblockdefinition'>DashboardPageBlockDefinition</a>[]`}   />
 
 Allows you to define custom page blocks for any page in the dashboard.
 ### actionBarItems
 
-<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/dashboard-action-bar-item#dashboardactionbaritem'>DashboardActionBarItem</a>[]`}   />
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/layout#dashboardactionbaritem'>DashboardActionBarItem</a>[]`}   />
 
 Allows you to define custom action bar items for any page in the dashboard.
 ### alerts
@@ -66,20 +67,24 @@ Allows you to define custom routes for the dashboard, which will render the
 given components and optionally also add a nav menu item.
 ### customFormComponents
 
-<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/dashboard-custom-form-components#dashboardcustomformcomponents'>DashboardCustomFormComponents</a>`}   />
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/form-components#dashboardcustomformcomponents'>DashboardCustomFormComponents</a>`}   />
 
-Unified registration for custom form components including custom field components,
-input components, and display components.
+Unified registration for custom form custom field components.
 ### dataTables
 
-<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/dashboard-data-table-extension-definition#dashboarddatatableextensiondefinition'>DashboardDataTableExtensionDefinition</a>[]`}   />
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/data-table#dashboarddatatableextensiondefinition'>DashboardDataTableExtensionDefinition</a>[]`}   />
 
 Allows you to customize aspects of existing data tables in the dashboard.
 ### detailForms
 
-<MemberInfo kind="property" type={`DashboardDetailFormExtensionDefinition[]`}   />
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/detail-forms#dashboarddetailformextensiondefinition'>DashboardDetailFormExtensionDefinition</a>[]`}   />
 
+Allows you to customize the detail form for any page in the dashboard.
+### login
 
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/login#dashboardloginextensions'>DashboardLoginExtensions</a>`}   />
+
+Allows you to customize the login page with custom components.
 
 
 </div>

+ 0 - 60
docs/docs/reference/dashboard/extensions/dashboard-page-block-definition.md

@@ -1,60 +0,0 @@
----
-title: "DashboardPageBlockDefinition"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## DashboardPageBlockDefinition
-
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/layout.ts" sourceLine="87" packageName="@vendure/dashboard" since="3.3.0" />
-
-**Status: Developer Preview**
-
-This allows you to insert a custom component into a specific location
-on any page in the dashboard.
-
-```ts title="Signature"
-interface DashboardPageBlockDefinition {
-    id: string;
-    title?: React.ReactNode;
-    location: PageBlockLocation;
-    component: React.FunctionComponent<{ context: PageContextValue }>;
-    requiresPermission?: string | string[];
-}
-```
-
-<div className="members-wrapper">
-
-### id
-
-<MemberInfo kind="property" type={`string`}   />
-
-
-### title
-
-<MemberInfo kind="property" type={`React.ReactNode`}   />
-
-
-### location
-
-<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/page-block-location#pageblocklocation'>PageBlockLocation</a>`}   />
-
-
-### component
-
-<MemberInfo kind="property" type={`React.FunctionComponent&#60;{ context: PageContextValue }&#62;`}   />
-
-
-### requiresPermission
-
-<MemberInfo kind="property" type={`string | string[]`}   />
-
-
-
-
-</div>

+ 1 - 1
docs/docs/reference/dashboard/extensions/dashboard-widget-definition.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## DashboardWidgetDefinition
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/widgets.ts" sourceLine="66" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/widgets.ts" sourceLine="62" packageName="@vendure/dashboard" since="3.3.0" />
 
 **Status: Developer Preview**
 

+ 1 - 3
docs/docs/reference/dashboard/extensions/dashboard-widget-instance.md

@@ -11,9 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## DashboardWidgetInstance
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/widgets.ts" sourceLine="29" packageName="@vendure/dashboard" since="3.3.0" />
-
-**Status: Developer Preview**
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/widgets.ts" sourceLine="25" packageName="@vendure/dashboard" since="3.3.0" />
 
 Represents an instance of a dashboard widget with its layout and configuration.
 

+ 124 - 0
docs/docs/reference/dashboard/extensions/data-table.md

@@ -0,0 +1,124 @@
+---
+title: "DataTable"
+isDefaultIndex: false
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+import MemberInfo from '@site/src/components/MemberInfo';
+import GenerationInfo from '@site/src/components/GenerationInfo';
+import MemberDescription from '@site/src/components/MemberDescription';
+
+
+## DashboardDataTableDisplayComponent
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/data-table.ts" sourceLine="13" packageName="@vendure/dashboard" since="3.4.0" />
+
+Allows you to define custom display components for specific columns in data tables.
+The pageId is already defined in the data table extension, so only the column name is needed.
+
+```ts title="Signature"
+interface DashboardDataTableDisplayComponent {
+    column: string;
+    component: React.ComponentType<{ value: any; [key: string]: any }>;
+}
+```
+
+<div className="members-wrapper">
+
+### column
+
+<MemberInfo kind="property" type={`string`}   />
+
+The name of the column where this display component should be used.
+### component
+
+<MemberInfo kind="property" type={`React.ComponentType&#60;{ value: any; [key: string]: any }&#62;`}   />
+
+The React component that will be rendered as the display.
+It should accept `value` and other standard display props.
+
+
+</div>
+
+
+## BulkAction
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/data-table.ts" sourceLine="46" packageName="@vendure/dashboard" since="3.4.0" />
+
+**Status: Developer Preview**
+
+A bulk action is a component that will be rendered in the bulk actions dropdown.
+
+```ts title="Signature"
+type BulkAction = {
+    order?: number;
+    component: BulkActionComponent<any>;
+}
+```
+
+<div className="members-wrapper">
+
+### order
+
+<MemberInfo kind="property" type={`number`}   />
+
+Optional order number to control the position of this bulk action in the dropdown.
+A larger number will appear lower in the list.
+### component
+
+<MemberInfo kind="property" type={`BulkActionComponent&#60;any&#62;`}   />
+
+The React component that will be rendered as the bulk action item.
+
+
+</div>
+
+
+## DashboardDataTableExtensionDefinition
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/data-table.ts" sourceLine="68" packageName="@vendure/dashboard" since="3.4.0" />
+
+This allows you to customize aspects of existing data tables in the dashboard.
+
+```ts title="Signature"
+interface DashboardDataTableExtensionDefinition {
+    pageId: string;
+    blockId?: string;
+    bulkActions?: BulkAction[];
+    extendListDocument?: string | DocumentNode | (() => DocumentNode | string);
+    displayComponents?: DashboardDataTableDisplayComponent[];
+}
+```
+
+<div className="members-wrapper">
+
+### pageId
+
+<MemberInfo kind="property" type={`string`}   />
+
+The ID of the page where the data table is located, e.g. `'product-list'`, `'order-list'`.
+### blockId
+
+<MemberInfo kind="property" type={`string`}   />
+
+The ID of the data table block. Defaults to `'list-table'`, which is the default blockId
+for the standard list pages. However, some other pages may use a different blockId,
+such as `'product-variants-table'` on the `'product-detail'` page.
+### bulkActions
+
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/data-table#bulkaction'>BulkAction</a>[]`}   />
+
+An array of additional bulk actions that will be available on the data table.
+### extendListDocument
+
+<MemberInfo kind="property" type={`string | DocumentNode | (() =&#62; DocumentNode | string)`}   />
+
+Allows you to extend the list document for the data table.
+### displayComponents
+
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/data-table#dashboarddatatabledisplaycomponent'>DashboardDataTableDisplayComponent</a>[]`}   />
+
+Custom display components for specific columns in the data table.
+
+
+</div>

+ 1 - 1
docs/docs/reference/dashboard/extensions/define-dashboard-extension.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## defineDashboardExtension
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/define-dashboard-extension.ts" sourceLine="37" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/define-dashboard-extension.ts" sourceLine="38" packageName="@vendure/dashboard" since="3.3.0" />
 
 **Status: Developer Preview**
 

+ 129 - 0
docs/docs/reference/dashboard/extensions/detail-forms.md

@@ -0,0 +1,129 @@
+---
+title: "DetailForms"
+isDefaultIndex: false
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+import MemberInfo from '@site/src/components/MemberInfo';
+import GenerationInfo from '@site/src/components/GenerationInfo';
+import MemberDescription from '@site/src/components/MemberDescription';
+
+
+## DashboardDetailFormInputComponent
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/detail-forms.ts" sourceLine="16" packageName="@vendure/dashboard" since="3.4.0" />
+
+Allows you to define custom input components for specific fields in detail forms.
+The pageId is already defined in the detail form extension, so only the blockId and field are needed.
+
+```ts title="Signature"
+interface DashboardDetailFormInputComponent {
+    blockId: string;
+    field: string;
+    component: DataInputComponent;
+}
+```
+
+<div className="members-wrapper">
+
+### blockId
+
+<MemberInfo kind="property" type={`string`}   />
+
+The ID of the block where this input component should be used.
+### field
+
+<MemberInfo kind="property" type={`string`}   />
+
+The name of the field where this input component should be used.
+### component
+
+<MemberInfo kind="property" type={`DataInputComponent`}   />
+
+The React component that will be rendered as the input.
+It should accept `value`, `onChange`, and other standard input props.
+
+
+</div>
+
+
+## DashboardDetailFormDisplayComponent
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/detail-forms.ts" sourceLine="44" packageName="@vendure/dashboard" since="3.4.0" />
+
+Allows you to define custom display components for specific fields in detail forms.
+The pageId is already defined in the detail form extension, so only the blockId and field are needed.
+
+```ts title="Signature"
+interface DashboardDetailFormDisplayComponent {
+    blockId: string;
+    field: string;
+    component: DataDisplayComponent;
+}
+```
+
+<div className="members-wrapper">
+
+### blockId
+
+<MemberInfo kind="property" type={`string`}   />
+
+The ID of the block where this display component should be used.
+### field
+
+<MemberInfo kind="property" type={`string`}   />
+
+The name of the field where this display component should be used.
+### component
+
+<MemberInfo kind="property" type={`DataDisplayComponent`}   />
+
+The React component that will be rendered as the display.
+It should accept `value` and other standard display props.
+
+
+</div>
+
+
+## DashboardDetailFormExtensionDefinition
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/detail-forms.ts" sourceLine="72" packageName="@vendure/dashboard" since="3.4.0" />
+
+Allows you to extend existing detail forms (e.g. on the product detail or customer detail pages)
+with custom GraphQL queries, input components, and display components.
+
+```ts title="Signature"
+interface DashboardDetailFormExtensionDefinition {
+    pageId: string;
+    extendDetailDocument?: string | DocumentNode | (() => DocumentNode | string);
+    inputs?: DashboardDetailFormInputComponent[];
+    displays?: DashboardDetailFormDisplayComponent[];
+}
+```
+
+<div className="members-wrapper">
+
+### pageId
+
+<MemberInfo kind="property" type={`string`}   />
+
+The ID of the page where the detail form is located, e.g. `'product-detail'`, `'order-detail'`.
+### extendDetailDocument
+
+<MemberInfo kind="property" type={`string | DocumentNode | (() =&#62; DocumentNode | string)`}   />
+
+Extends the GraphQL query used to fetch data for the detail page, allowing you to add additional
+fields that can be used by custom input or display components.
+### inputs
+
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/detail-forms#dashboarddetailforminputcomponent'>DashboardDetailFormInputComponent</a>[]`}   />
+
+Custom input components for specific fields in the detail form.
+### displays
+
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/detail-forms#dashboarddetailformdisplaycomponent'>DashboardDetailFormDisplayComponent</a>[]`}   />
+
+Custom display components for specific fields in the detail form.
+
+
+</div>

+ 66 - 0
docs/docs/reference/dashboard/extensions/form-components.md

@@ -0,0 +1,66 @@
+---
+title: "FormComponents"
+isDefaultIndex: false
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+import MemberInfo from '@site/src/components/MemberInfo';
+import GenerationInfo from '@site/src/components/GenerationInfo';
+import MemberDescription from '@site/src/components/MemberDescription';
+
+
+## DashboardCustomFormComponent
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/form-components.ts" sourceLine="13" packageName="@vendure/dashboard" since="3.4.0" />
+
+Allows you to define custom form components for custom fields in the dashboard.
+
+```ts title="Signature"
+interface DashboardCustomFormComponent {
+    id: string;
+    component: React.FunctionComponent<CustomFormComponentInputProps>;
+}
+```
+
+<div className="members-wrapper">
+
+### id
+
+<MemberInfo kind="property" type={`string`}   />
+
+A unique identifier for the custom form component. It is a good practice to namespace
+these IDs to avoid naming collisions, for example `"my-plugin.markdown-editor"`.
+### component
+
+<MemberInfo kind="property" type={`React.FunctionComponent&#60;CustomFormComponentInputProps&#62;`}   />
+
+The React component that will be rendered as the custom form input.
+
+
+</div>
+
+
+## DashboardCustomFormComponents
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/form-components.ts" sourceLine="36" packageName="@vendure/dashboard" since="3.4.0" />
+
+Interface for registering custom field components in the dashboard.
+For input and display components, use the co-located approach with detailForms.
+
+```ts title="Signature"
+interface DashboardCustomFormComponents {
+    customFields?: DashboardCustomFormComponent[];
+}
+```
+
+<div className="members-wrapper">
+
+### customFields
+
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/form-components#dashboardcustomformcomponent'>DashboardCustomFormComponent</a>[]`}   />
+
+Custom form components for custom fields. These are used when rendering
+custom fields in forms.
+
+
+</div>

+ 152 - 0
docs/docs/reference/dashboard/extensions/layout.md

@@ -0,0 +1,152 @@
+---
+title: "Layout"
+isDefaultIndex: false
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+import MemberInfo from '@site/src/components/MemberInfo';
+import GenerationInfo from '@site/src/components/GenerationInfo';
+import MemberDescription from '@site/src/components/MemberDescription';
+
+
+## DashboardActionBarItem
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/layout.ts" sourceLine="18" packageName="@vendure/dashboard" since="3.3.0" />
+
+Allows you to define custom action bar items for any page in the dashboard.
+
+```ts title="Signature"
+interface DashboardActionBarItem {
+    pageId: string;
+    component: React.FunctionComponent<{ context: PageContextValue }>;
+    type?: 'button' | 'dropdown';
+    requiresPermission?: string | string[];
+}
+```
+
+<div className="members-wrapper">
+
+### pageId
+
+<MemberInfo kind="property" type={`string`}   />
+
+The ID of the page where the action bar item should be displayed.
+### component
+
+<MemberInfo kind="property" type={`React.FunctionComponent&#60;{ context: PageContextValue }&#62;`}   />
+
+A React component that will be rendered in the action bar.
+### type
+
+<MemberInfo kind="property" type={`'button' | 'dropdown'`} default={`'button'`}   />
+
+The type of action bar item to display. Defaults to `button`.
+The 'dropdown' type is used to display the action bar item as a dropdown menu item.
+
+When using the dropdown type, use a suitable [dropdown item](https://ui.shadcn.com/docs/components/dropdown-menu)
+component, such as:
+
+```tsx
+import { DropdownMenuItem } from '@vendure/dashboard';
+
+// ...
+
+{
+  component: () => <DropdownMenuItem>My Item</DropdownMenuItem>
+}
+```
+### requiresPermission
+
+<MemberInfo kind="property" type={`string | string[]`}   />
+
+Any permissions that are required to display this action bar item.
+
+
+</div>
+
+
+## PageBlockLocation
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/layout.ts" sourceLine="69" packageName="@vendure/dashboard" since="3.3.0" />
+
+The location of a page block in the dashboard. The location can be found by turning on
+"developer mode" in the dashboard user menu (bottom left corner) and then
+clicking the `< />` icon when hovering over a page block.
+
+```ts title="Signature"
+type PageBlockLocation = {
+    pageId: string;
+    position: PageBlockPosition;
+    column: 'main' | 'side';
+}
+```
+
+<div className="members-wrapper">
+
+### pageId
+
+<MemberInfo kind="property" type={`string`}   />
+
+
+### position
+
+<MemberInfo kind="property" type={`PageBlockPosition`}   />
+
+
+### column
+
+<MemberInfo kind="property" type={`'main' | 'side'`}   />
+
+
+
+
+</div>
+
+
+## DashboardPageBlockDefinition
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/layout.ts" sourceLine="84" packageName="@vendure/dashboard" since="3.3.0" />
+
+This allows you to insert a custom component into a specific location
+on any page in the dashboard.
+
+```ts title="Signature"
+interface DashboardPageBlockDefinition {
+    id: string;
+    title?: React.ReactNode;
+    location: PageBlockLocation;
+    component: React.FunctionComponent<{ context: PageContextValue }>;
+    requiresPermission?: string | string[];
+}
+```
+
+<div className="members-wrapper">
+
+### id
+
+<MemberInfo kind="property" type={`string`}   />
+
+
+### title
+
+<MemberInfo kind="property" type={`React.ReactNode`}   />
+
+
+### location
+
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/layout#pageblocklocation'>PageBlockLocation</a>`}   />
+
+
+### component
+
+<MemberInfo kind="property" type={`React.FunctionComponent&#60;{ context: PageContextValue }&#62;`}   />
+
+
+### requiresPermission
+
+<MemberInfo kind="property" type={`string | string[]`}   />
+
+
+
+
+</div>

+ 147 - 0
docs/docs/reference/dashboard/extensions/login.md

@@ -0,0 +1,147 @@
+---
+title: "Login"
+isDefaultIndex: false
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+import MemberInfo from '@site/src/components/MemberInfo';
+import GenerationInfo from '@site/src/components/GenerationInfo';
+import MemberDescription from '@site/src/components/MemberDescription';
+
+
+## LoginLogoExtension
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/login.ts" sourceLine="11" packageName="@vendure/dashboard" since="3.4.0" />
+
+Defines a custom logo component for the login page.
+
+```ts title="Signature"
+interface LoginLogoExtension {
+    component: React.ComponentType;
+}
+```
+
+<div className="members-wrapper">
+
+### component
+
+<MemberInfo kind="property" type={`React.ComponentType`}   />
+
+A React component that will replace the default Vendure logo.
+
+
+</div>
+
+
+## LoginBeforeFormExtension
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/login.ts" sourceLine="27" packageName="@vendure/dashboard" since="3.4.0" />
+
+Defines content to display before the login form.
+
+```ts title="Signature"
+interface LoginBeforeFormExtension {
+    component: React.ComponentType;
+}
+```
+
+<div className="members-wrapper">
+
+### component
+
+<MemberInfo kind="property" type={`React.ComponentType`}   />
+
+A React component that will be rendered before the login form.
+
+
+</div>
+
+
+## LoginAfterFormExtension
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/login.ts" sourceLine="43" packageName="@vendure/dashboard" since="3.4.0" />
+
+Defines content to display after the login form.
+
+```ts title="Signature"
+interface LoginAfterFormExtension {
+    component: React.ComponentType;
+}
+```
+
+<div className="members-wrapper">
+
+### component
+
+<MemberInfo kind="property" type={`React.ComponentType`}   />
+
+A React component that will be rendered after the login form.
+
+
+</div>
+
+
+## LoginImageExtension
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/login.ts" sourceLine="59" packageName="@vendure/dashboard" since="3.4.0" />
+
+Defines a custom login image component that replaces the default image panel.
+
+```ts title="Signature"
+interface LoginImageExtension {
+    component: React.ComponentType;
+}
+```
+
+<div className="members-wrapper">
+
+### component
+
+<MemberInfo kind="property" type={`React.ComponentType`}   />
+
+A React component that will replace the default login image panel.
+
+
+</div>
+
+
+## DashboardLoginExtensions
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/login.ts" sourceLine="75" packageName="@vendure/dashboard" since="3.4.0" />
+
+Defines all available login page extensions.
+
+```ts title="Signature"
+interface DashboardLoginExtensions {
+    logo?: LoginLogoExtension;
+    beforeForm?: LoginBeforeFormExtension;
+    afterForm?: LoginAfterFormExtension;
+    loginImage?: LoginImageExtension;
+}
+```
+
+<div className="members-wrapper">
+
+### logo
+
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/login#loginlogoextension'>LoginLogoExtension</a>`}   />
+
+Custom logo component to replace the default Vendure logo.
+### beforeForm
+
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/login#loginbeforeformextension'>LoginBeforeFormExtension</a>`}   />
+
+Component to render before the login form.
+### afterForm
+
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/login#loginafterformextension'>LoginAfterFormExtension</a>`}   />
+
+Component to render after the login form.
+### loginImage
+
+<MemberInfo kind="property" type={`<a href='/reference/dashboard/extensions/login#loginimageextension'>LoginImageExtension</a>`}   />
+
+Custom login image component to replace the default image panel.
+
+
+</div>

+ 103 - 0
docs/docs/reference/dashboard/extensions/navigation.md

@@ -0,0 +1,103 @@
+---
+title: "Navigation"
+isDefaultIndex: false
+generated: true
+---
+<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
+import MemberInfo from '@site/src/components/MemberInfo';
+import GenerationInfo from '@site/src/components/GenerationInfo';
+import MemberDescription from '@site/src/components/MemberDescription';
+
+
+## DashboardRouteDefinition
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/navigation.ts" sourceLine="15" packageName="@vendure/dashboard" since="3.4.0" />
+
+Defines a custom route for the dashboard with optional navigation menu integration.
+
+```ts title="Signature"
+interface DashboardRouteDefinition {
+    component: (route: AnyRoute) => React.ReactNode;
+    path: string;
+    navMenuItem?: Partial<NavMenuItem> & { sectionId: string };
+    loader?: RouteOptions['loader'];
+}
+```
+
+<div className="members-wrapper">
+
+### component
+
+<MemberInfo kind="property" type={`(route: AnyRoute) =&#62; React.ReactNode`}   />
+
+The React component that will be rendered for this route.
+### path
+
+<MemberInfo kind="property" type={`string`}   />
+
+The URL path for this route, e.g. '/my-custom-page'.
+### navMenuItem
+
+<MemberInfo kind="property" type={`Partial&#60;<a href='/reference/admin-ui-api/nav-menu/nav-menu-item#navmenuitem'>NavMenuItem</a>&#62; &#38; { sectionId: string }`}   />
+
+Optional navigation menu item configuration to add this route to the nav menu
+on the left side of the dashboard.
+### loader
+
+<MemberInfo kind="property" type={`RouteOptions['loader']`}   />
+
+Optional loader function to fetch data before the route renders.
+The value is a Tanstack Router
+[loader function](https://tanstack.com/router/latest/docs/framework/react/guide/data-loading#route-loaders)
+
+
+</div>
+
+
+## DashboardNavSectionDefinition
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/navigation.ts" sourceLine="49" packageName="@vendure/dashboard" since="3.4.0" />
+
+Defines a custom navigation section in the dashboard sidebar.
+
+```ts title="Signature"
+interface DashboardNavSectionDefinition {
+    id: string;
+    title: string;
+    icon?: LucideIcon;
+    order?: number;
+}
+```
+
+<div className="members-wrapper">
+
+### id
+
+<MemberInfo kind="property" type={`string`}   />
+
+A unique identifier for the navigation section.
+### title
+
+<MemberInfo kind="property" type={`string`}   />
+
+The display title for the navigation section.
+### icon
+
+<MemberInfo kind="property" type={`LucideIcon`}   />
+
+Optional icon to display next to the section title. The icons should
+be imported from `'lucide-react'`.
+
+*Example*
+
+```ts
+import { PlusIcon } from 'lucide-react';
+```
+### order
+
+<MemberInfo kind="property" type={`number`}   />
+
+Optional order number to control the position of this section in the sidebar.
+
+
+</div>

+ 0 - 49
docs/docs/reference/dashboard/extensions/page-block-location.md

@@ -1,49 +0,0 @@
----
-title: "PageBlockLocation"
-isDefaultIndex: false
-generated: true
----
-<!-- This file was generated from the Vendure source. Do not modify. Instead, re-run the "docs:build" script -->
-import MemberInfo from '@site/src/components/MemberInfo';
-import GenerationInfo from '@site/src/components/GenerationInfo';
-import MemberDescription from '@site/src/components/MemberDescription';
-
-
-## PageBlockLocation
-
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/layout.ts" sourceLine="71" packageName="@vendure/dashboard" since="3.3.0" />
-
-**Status: Developer Preview**
-
-The location of a page block in the dashboard. The location can be found by turning on
-"developer mode" in the dashboard user menu (bottom left corner) and then
-clicking the `< />` icon when hovering over a page block.
-
-```ts title="Signature"
-type PageBlockLocation = {
-    pageId: string;
-    position: PageBlockPosition;
-    column: 'main' | 'side';
-}
-```
-
-<div className="members-wrapper">
-
-### pageId
-
-<MemberInfo kind="property" type={`string`}   />
-
-
-### position
-
-<MemberInfo kind="property" type={`PageBlockPosition`}   />
-
-
-### column
-
-<MemberInfo kind="property" type={`'main' | 'side'`}   />
-
-
-
-
-</div>

+ 1 - 1
docs/docs/reference/dashboard/hooks/use-channel.md

@@ -25,7 +25,7 @@ function useChannel(): void
 
 ## ChannelContext
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/providers/channel-provider.tsx" sourceLine="52" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/providers/channel-provider.tsx" sourceLine="53" packageName="@vendure/dashboard" since="3.3.0" />
 
 **Status: Developer Preview**
 

+ 0 - 12
docs/docs/reference/graphql-api/admin/input-types.md

@@ -2023,18 +2023,6 @@ import MemberDescription from '@site/src/components/MemberDescription';
 <div class="graphql-code-line ">attempts: <a href="/reference/graphql-api/admin/enums#sortorder">SortOrder</a></div>
 
 
-<div class="graphql-code-line top-level">&#125;</div>
-</div>
-
-## KeyValueInput
-
-<div class="graphql-code-block">
-<div class="graphql-code-line top-level">input <span class="graphql-code-identifier">KeyValueInput</span> &#123;</div>
-<div class="graphql-code-line ">key: <a href="/reference/graphql-api/admin/object-types#string">String</a>!</div>
-
-<div class="graphql-code-line ">value: <a href="/reference/graphql-api/admin/object-types#json">JSON</a>!</div>
-
-
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 

+ 24 - 24
docs/docs/reference/graphql-api/admin/mutations.md

@@ -409,6 +409,18 @@ import MemberDescription from '@site/src/components/MemberDescription';
 <div class="graphql-code-line ">createFacet(input: <a href="/reference/graphql-api/admin/input-types#createfacetinput">CreateFacetInput</a>!): <a href="/reference/graphql-api/admin/object-types#facet">Facet</a>!</div>
 
 
+<div class="graphql-code-line top-level">&#125;</div>
+</div>
+
+## createFacetValue
+<div class="graphql-code-block">
+<div class="graphql-code-line top-level comment">"""</div>
+<div class="graphql-code-line top-level comment">Create a single FacetValue</div>
+<div class="graphql-code-line top-level comment">"""</div>
+<div class="graphql-code-line top-level">type <span class="graphql-code-identifier">Mutation</span> &#123;</div>
+<div class="graphql-code-line ">createFacetValue(input: <a href="/reference/graphql-api/admin/input-types#createfacetvalueinput">CreateFacetValueInput</a>!): <a href="/reference/graphql-api/admin/object-types#facetvalue">FacetValue</a>!</div>
+
+
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 
@@ -1481,30 +1493,6 @@ import MemberDescription from '@site/src/components/MemberDescription';
 <div class="graphql-code-line ">setDraftOrderShippingMethod(orderId: <a href="/reference/graphql-api/admin/object-types#id">ID</a>!, shippingMethodId: <a href="/reference/graphql-api/admin/object-types#id">ID</a>!): <a href="/reference/graphql-api/admin/object-types#setordershippingmethodresult">SetOrderShippingMethodResult</a>!</div>
 
 
-<div class="graphql-code-line top-level">&#125;</div>
-</div>
-
-## setKeyValue
-<div class="graphql-code-block">
-<div class="graphql-code-line top-level comment">"""</div>
-<div class="graphql-code-line top-level comment">Set a single key-value pair (automatically scoped based on field configuration)</div>
-<div class="graphql-code-line top-level comment">"""</div>
-<div class="graphql-code-line top-level">type <span class="graphql-code-identifier">Mutation</span> &#123;</div>
-<div class="graphql-code-line ">setKeyValue(input: <a href="/reference/graphql-api/admin/input-types#keyvalueinput">KeyValueInput</a>!): <a href="/reference/graphql-api/admin/object-types#setkeyvalueresult">SetKeyValueResult</a>!</div>
-
-
-<div class="graphql-code-line top-level">&#125;</div>
-</div>
-
-## setKeyValues
-<div class="graphql-code-block">
-<div class="graphql-code-line top-level comment">"""</div>
-<div class="graphql-code-line top-level comment">Set multiple key-value pairs in a transaction (each automatically scoped)</div>
-<div class="graphql-code-line top-level comment">"""</div>
-<div class="graphql-code-line top-level">type <span class="graphql-code-identifier">Mutation</span> &#123;</div>
-<div class="graphql-code-line ">setKeyValues(inputs: [<a href="/reference/graphql-api/admin/input-types#keyvalueinput">KeyValueInput</a>!]!): [<a href="/reference/graphql-api/admin/object-types#setkeyvalueresult">SetKeyValueResult</a>!]!</div>
-
-
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 
@@ -1748,6 +1736,18 @@ import MemberDescription from '@site/src/components/MemberDescription';
 <div class="graphql-code-line ">updateFacet(input: <a href="/reference/graphql-api/admin/input-types#updatefacetinput">UpdateFacetInput</a>!): <a href="/reference/graphql-api/admin/object-types#facet">Facet</a>!</div>
 
 
+<div class="graphql-code-line top-level">&#125;</div>
+</div>
+
+## updateFacetValue
+<div class="graphql-code-block">
+<div class="graphql-code-line top-level comment">"""</div>
+<div class="graphql-code-line top-level comment">Update a single FacetValue</div>
+<div class="graphql-code-line top-level comment">"""</div>
+<div class="graphql-code-line top-level">type <span class="graphql-code-identifier">Mutation</span> &#123;</div>
+<div class="graphql-code-line ">updateFacetValue(input: <a href="/reference/graphql-api/admin/input-types#updatefacetvalueinput">UpdateFacetValueInput</a>!): <a href="/reference/graphql-api/admin/object-types#facetvalue">FacetValue</a>!</div>
+
+
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 

+ 0 - 14
docs/docs/reference/graphql-api/admin/object-types.md

@@ -3713,20 +3713,6 @@ import MemberDescription from '@site/src/components/MemberDescription';
 <div class="graphql-code-line "><a href="/reference/graphql-api/admin/object-types#order">Order</a> | <a href="/reference/graphql-api/admin/object-types#emailaddressconflicterror">EmailAddressConflictError</a></div>
 </div>
 
-## SetKeyValueResult
-
-<div class="graphql-code-block">
-<div class="graphql-code-line top-level">type <span class="graphql-code-identifier">SetKeyValueResult</span> &#123;</div>
-<div class="graphql-code-line ">key: <a href="/reference/graphql-api/admin/object-types#string">String</a>!</div>
-
-<div class="graphql-code-line ">result: <a href="/reference/graphql-api/admin/object-types#boolean">Boolean</a>!</div>
-
-<div class="graphql-code-line ">error: <a href="/reference/graphql-api/admin/object-types#string">String</a></div>
-
-
-<div class="graphql-code-line top-level">&#125;</div>
-</div>
-
 ## SetOrderShippingMethodResult
 
 <div class="graphql-code-block">

+ 8 - 23
docs/docs/reference/graphql-api/admin/queries.md

@@ -205,52 +205,37 @@ import MemberDescription from '@site/src/components/MemberDescription';
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 
-## facetValues
+## facetValue
 <div class="graphql-code-block">
 <div class="graphql-code-line top-level">type <span class="graphql-code-identifier">Query</span> &#123;</div>
-<div class="graphql-code-line ">facetValues(options: <a href="/reference/graphql-api/admin/input-types#facetvaluelistoptions">FacetValueListOptions</a>): <a href="/reference/graphql-api/admin/object-types#facetvaluelist">FacetValueList</a>!</div>
+<div class="graphql-code-line ">facetValue(id: <a href="/reference/graphql-api/admin/object-types#id">ID</a>!): <a href="/reference/graphql-api/admin/object-types#facetvalue">FacetValue</a></div>
 
 
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 
-## facets
-<div class="graphql-code-block">
-<div class="graphql-code-line top-level">type <span class="graphql-code-identifier">Query</span> &#123;</div>
-<div class="graphql-code-line ">facets(options: <a href="/reference/graphql-api/admin/input-types#facetlistoptions">FacetListOptions</a>): <a href="/reference/graphql-api/admin/object-types#facetlist">FacetList</a>!</div>
-
-
-<div class="graphql-code-line top-level">&#125;</div>
-</div>
-
-## fulfillmentHandlers
+## facetValues
 <div class="graphql-code-block">
 <div class="graphql-code-line top-level">type <span class="graphql-code-identifier">Query</span> &#123;</div>
-<div class="graphql-code-line ">fulfillmentHandlers: [<a href="/reference/graphql-api/admin/object-types#configurableoperationdefinition">ConfigurableOperationDefinition</a>!]!</div>
+<div class="graphql-code-line ">facetValues(options: <a href="/reference/graphql-api/admin/input-types#facetvaluelistoptions">FacetValueListOptions</a>): <a href="/reference/graphql-api/admin/object-types#facetvaluelist">FacetValueList</a>!</div>
 
 
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 
-## getKeyValue
+## facets
 <div class="graphql-code-block">
-<div class="graphql-code-line top-level comment">"""</div>
-<div class="graphql-code-line top-level comment">Get value for a specific key (automatically scoped based on field configuration)</div>
-<div class="graphql-code-line top-level comment">"""</div>
 <div class="graphql-code-line top-level">type <span class="graphql-code-identifier">Query</span> &#123;</div>
-<div class="graphql-code-line ">getKeyValue(key: <a href="/reference/graphql-api/admin/object-types#string">String</a>!): <a href="/reference/graphql-api/admin/object-types#json">JSON</a></div>
+<div class="graphql-code-line ">facets(options: <a href="/reference/graphql-api/admin/input-types#facetlistoptions">FacetListOptions</a>): <a href="/reference/graphql-api/admin/object-types#facetlist">FacetList</a>!</div>
 
 
 <div class="graphql-code-line top-level">&#125;</div>
 </div>
 
-## getKeyValues
+## fulfillmentHandlers
 <div class="graphql-code-block">
-<div class="graphql-code-line top-level comment">"""</div>
-<div class="graphql-code-line top-level comment">Get multiple key-value pairs (each automatically scoped)</div>
-<div class="graphql-code-line top-level comment">"""</div>
 <div class="graphql-code-line top-level">type <span class="graphql-code-identifier">Query</span> &#123;</div>
-<div class="graphql-code-line ">getKeyValues(keys: [<a href="/reference/graphql-api/admin/object-types#string">String</a>!]!): <a href="/reference/graphql-api/admin/object-types#json">JSON</a></div>
+<div class="graphql-code-line ">fulfillmentHandlers: [<a href="/reference/graphql-api/admin/object-types#configurableoperationdefinition">ConfigurableOperationDefinition</a>!]!</div>
 
 
 <div class="graphql-code-line top-level">&#125;</div>

+ 1 - 1
docs/docs/reference/typescript-api/common/language-code.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## LanguageCode
 
-<GenerationInfo sourceFile="packages/common/src/generated-types.ts" sourceLine="2269" packageName="@vendure/common" />
+<GenerationInfo sourceFile="packages/common/src/generated-types.ts" sourceLine="2264" packageName="@vendure/common" />
 
 Languages in the form of a ISO 639-1 language code with optional
 region or script modifier (e.g. de_AT). The selection available is based

+ 1 - 1
docs/docs/reference/typescript-api/common/permission.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## Permission
 
-<GenerationInfo sourceFile="packages/common/src/generated-types.ts" sourceLine="4482" packageName="@vendure/common" />
+<GenerationInfo sourceFile="packages/common/src/generated-types.ts" sourceLine="4477" packageName="@vendure/common" />
 
 Permissions for administrators and customers. Used to control access to
 GraphQL resolvers via the <a href='/reference/typescript-api/request/allow-decorator#allow'>Allow</a> decorator.

+ 1 - 1
docs/docs/reference/typescript-api/configuration/default-config.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## defaultConfig
 
-<GenerationInfo sourceFile="packages/core/src/config/default-config.ts" sourceLine="72" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/default-config.ts" sourceLine="68" packageName="@vendure/core" />
 
 The default configuration settings which are used if not explicitly overridden in the bootstrap() call.
 

+ 1 - 1
docs/docs/reference/typescript-api/configuration/settings-store-fields.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## SettingsStoreFields
 
-<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="107" packageName="@vendure/core" since="3.4.0" />
+<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="111" packageName="@vendure/core" since="3.4.0" />
 
 This is how SettingsStoreFields are defined in the <a href='/reference/typescript-api/configuration/vendure-config#vendureconfig'>VendureConfig</a> object.
 

+ 1 - 1
docs/docs/reference/typescript-api/custom-fields/custom-field-config.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## CustomFieldConfig
 
-<GenerationInfo sourceFile="packages/core/src/config/custom-field/custom-field-types.ts" sourceLine="228" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/custom-field/custom-field-types.ts" sourceLine="237" packageName="@vendure/core" />
 
 An object used to configure a custom field.
 

+ 1 - 1
docs/docs/reference/typescript-api/custom-fields/index.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## CustomFields
 
-<GenerationInfo sourceFile="packages/core/src/config/custom-field/custom-field-types.ts" sourceLine="264" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/custom-field/custom-field-types.ts" sourceLine="273" packageName="@vendure/core" />
 
 Most entities can have additional fields added to them by defining an array of <a href='/reference/typescript-api/custom-fields/custom-field-config#customfieldconfig'>CustomFieldConfig</a>objects on against the corresponding key.
 

+ 1 - 1
docs/docs/reference/typescript-api/custom-fields/struct-custom-field-config.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## StructCustomFieldConfig
 
-<GenerationInfo sourceFile="packages/core/src/config/custom-field/custom-field-types.ts" sourceLine="215" packageName="@vendure/core" since="3.1.0" />
+<GenerationInfo sourceFile="packages/core/src/config/custom-field/custom-field-types.ts" sourceLine="224" packageName="@vendure/core" since="3.1.0" />
 
 Configures a "struct" custom field.
 

+ 1 - 1
docs/docs/reference/typescript-api/custom-fields/struct-field-config.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## StructFieldConfig
 
-<GenerationInfo sourceFile="packages/core/src/config/custom-field/custom-field-types.ts" sourceLine="200" packageName="@vendure/core" since="3.1.0" />
+<GenerationInfo sourceFile="packages/core/src/config/custom-field/custom-field-types.ts" sourceLine="209" packageName="@vendure/core" since="3.1.0" />
 
 Configures an individual field of a "struct" custom field. The individual fields share
 the same API as the top-level custom fields, with the exception that they do not support the

+ 1 - 1
docs/docs/reference/typescript-api/custom-fields/typed-custom-single-field-config.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## TypedCustomSingleFieldConfig
 
-<GenerationInfo sourceFile="packages/core/src/config/custom-field/custom-field-types.ts" sourceLine="75" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/config/custom-field/custom-field-types.ts" sourceLine="84" packageName="@vendure/core" />
 
 Configures a custom field on an entity in the <a href='/reference/typescript-api/custom-fields/#customfields'>CustomFields</a> config object.
 

+ 1 - 1
docs/docs/reference/typescript-api/settings-store/cleanup-orphaned-settings-store-entries-options.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## CleanupOrphanedSettingsStoreEntriesOptions
 
-<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="236" packageName="@vendure/core" since="3.4.0" />
+<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="240" packageName="@vendure/core" since="3.4.0" />
 
 Options for cleaning up orphaned settings store entries.
 

+ 1 - 1
docs/docs/reference/typescript-api/settings-store/cleanup-orphaned-settings-store-entries-result.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## CleanupOrphanedSettingsStoreEntriesResult
 
-<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="274" packageName="@vendure/core" since="3.4.0" />
+<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="278" packageName="@vendure/core" since="3.4.0" />
 
 Result of a cleanup operation for orphaned settings store entries.
 

+ 1 - 1
docs/docs/reference/typescript-api/settings-store/orphaned-settings-store-entry.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## OrphanedSettingsStoreEntry
 
-<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="203" packageName="@vendure/core" since="3.4.0" />
+<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="207" packageName="@vendure/core" since="3.4.0" />
 
 Represents an orphaned settings store entry that no longer has a corresponding
 field definition in the configuration.

+ 1 - 1
docs/docs/reference/typescript-api/settings-store/set-settings-store-value-result.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## SetSettingsStoreValueResult
 
-<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="175" packageName="@vendure/core" since="3.4.0" />
+<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="179" packageName="@vendure/core" since="3.4.0" />
 
 Result type for settings store set operations, providing detailed feedback
 about the success or failure of each operation.

+ 1 - 1
docs/docs/reference/typescript-api/settings-store/settings-store-field-config.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## SettingsStoreFieldConfig
 
-<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="37" packageName="@vendure/core" since="3.4.0" />
+<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="41" packageName="@vendure/core" since="3.4.0" />
 
 Configuration for a settings store field, defining how it should be stored,
 scoped, validated, and accessed.

+ 1 - 1
docs/docs/reference/typescript-api/settings-store/settings-store-registration.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## SettingsStoreRegistration
 
-<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="85" packageName="@vendure/core" since="3.4.0" />
+<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="89" packageName="@vendure/core" since="3.4.0" />
 
 Configuration for registering a namespace of settings store fields.
 

+ 5 - 1
docs/docs/reference/typescript-api/settings-store/settings-store-scope-function.md

@@ -31,5 +31,9 @@ const userAndChannelScope: SettingsStoreScopeFunction = ({ ctx }) =>
 ```
 
 ```ts title="Signature"
-type SettingsStoreScopeFunction = (params: { key: string; value?: any; ctx: RequestContext }) => string
+type SettingsStoreScopeFunction = (params: {
+    key: string;
+    value?: any;
+    ctx: RequestContext;
+}) => string
 ```

+ 1 - 1
docs/docs/reference/typescript-api/settings-store/settings-store-scopes.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## SettingsStoreScopes
 
-<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="140" packageName="@vendure/core" since="3.4.0" />
+<GenerationInfo sourceFile="packages/core/src/config/settings-store/settings-store-types.ts" sourceLine="144" packageName="@vendure/core" since="3.4.0" />
 
 Pre-built scope functions for common scoping patterns.