1
0
Michael Bromley 4 долоо хоног өмнө
parent
commit
46bd583b0f
24 өөрчлөгдсөн 200 нэмэгдсэн , 50 устгасан
  1. 2 5
      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. 26 0
      docs/docs/reference/dashboard/components/channel-chip.md
  4. 6 4
      docs/docs/reference/dashboard/detail-views/use-detail-page.md
  5. 6 4
      docs/docs/reference/dashboard/detail-views/use-generated-form.md
  6. 1 1
      docs/docs/reference/dashboard/extensions-api/data-tables.md
  7. 6 0
      docs/docs/reference/dashboard/extensions-api/navigation.md
  8. 2 2
      docs/docs/reference/dashboard/extensions-api/page-blocks.md
  9. 4 4
      docs/docs/reference/dashboard/extensions-api/routes.md
  10. 1 1
      docs/docs/reference/dashboard/form-components/number-input.md
  11. 1 1
      docs/docs/reference/dashboard/hooks/use-channel.md
  12. 26 0
      docs/docs/reference/dashboard/hooks/use-drag-and-drop.md
  13. 34 0
      docs/docs/reference/dashboard/hooks/use-sorted-languages.md
  14. 1 1
      docs/docs/reference/dashboard/list-views/bulk-actions.md
  15. 19 5
      docs/docs/reference/dashboard/list-views/data-table.md
  16. 15 1
      docs/docs/reference/dashboard/list-views/list-page.md
  17. 18 1
      docs/docs/reference/dashboard/list-views/paginated-list-data-table.md
  18. 3 3
      docs/docs/reference/dashboard/page-layout/page-action-bar.md
  19. 6 6
      docs/docs/reference/dashboard/page-layout/page-block.md
  20. 1 1
      docs/docs/reference/dashboard/page-layout/page-title.md
  21. 13 1
      docs/docs/reference/dashboard/vite-plugin/vendure-dashboard-plugin.md
  22. 2 2
      docs/docs/reference/typescript-api/data-access/list-query-builder.md
  23. 3 3
      docs/docs/reference/typescript-api/services/role-service.md
  24. 3 3
      docs/docs/reference/typescript-api/services/zone-service.md

+ 2 - 5
docs/docs/reference/core-plugins/admin-ui-plugin/admin-ui-plugin-options.md

@@ -63,12 +63,9 @@ 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" />
+<MemberInfo kind="property" type={`boolean`}  since="3.4.0"  />
+
 
-:::warning Deprecated
-This option is deprecated and no longer has any effect.
 
-Previously used when running the AdminUiPlugin at the same time as the new `DashboardPlugin` to avoid conflicts, but this is no longer necessary as the schemas use different type names.
-:::
 
 </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="146" packageName="@vendure/admin-ui-plugin" />
+<GenerationInfo sourceFile="packages/admin-ui-plugin/src/plugin.ts" sourceLine="147" packageName="@vendure/admin-ui-plugin" />
 
 :::warning Deprecated
 From Vendure v3.5.0, the Angular-based Admin UI has been replaced by the new [React Admin Dashboard](/guides/extending-the-dashboard/getting-started/).

+ 26 - 0
docs/docs/reference/dashboard/components/channel-chip.md

@@ -0,0 +1,26 @@
+---
+title: "ChannelChip"
+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';
+
+
+## ChannelChip
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/components/shared/channel-chip.tsx" sourceLine="18" packageName="@vendure/dashboard" since="3.5.2" />
+
+A component for displaying a channel as a chip.
+
+```ts title="Signature"
+function ChannelChip(props: Readonly<ChannelChipProps>): void
+```
+Parameters
+
+### props
+
+<MemberInfo kind="parameter" type={`Readonly&#60;ChannelChipProps&#62;`} />
+

+ 6 - 4
docs/docs/reference/dashboard/detail-views/use-detail-page.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## useDetailPage
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/use-detail-page.ts" sourceLine="238" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/use-detail-page.ts" sourceLine="240" packageName="@vendure/dashboard" since="3.3.0" />
 
 **Status: Developer Preview**
 
@@ -104,7 +104,9 @@ interface DetailPageOptions<T extends TypedDocumentNode<any, any>, C extends Typ
     entityName?: string;
     createDocument?: C;
     updateDocument?: U;
-    setValuesForUpdate: (entity: NonNullable<ResultOf<T>[EntityField]>) => VariablesOf<U>[VarNameUpdate];
+    setValuesForUpdate: (
+        entity: NonNullable<ResultOf<T>[EntityField]>,
+    ) => WithLooseCustomFields<VariablesOf<U>[VarNameUpdate]>;
     transformCreateInput?: (input: VariablesOf<C>[VarNameCreate]) => VariablesOf<C>[VarNameCreate];
     transformUpdateInput?: (input: VariablesOf<U>[VarNameUpdate]) => VariablesOf<U>[VarNameUpdate];
     onSuccess?: (entity: ResultOf<C>[keyof ResultOf<C>] | ResultOf<U>[keyof ResultOf<U>]) => void;
@@ -154,7 +156,7 @@ The document to create the entity.
 The document to update the entity.
 ### setValuesForUpdate
 
-<MemberInfo kind="property" type={`(entity: NonNullable&#60;ResultOf&#60;T&#62;[EntityField]&#62;) =&#62; VariablesOf&#60;U&#62;[VarNameUpdate]`}   />
+<MemberInfo kind="property" type={`(         entity: NonNullable&#60;ResultOf&#60;T&#62;[EntityField]&#62;,     ) =&#62; WithLooseCustomFields&#60;VariablesOf&#60;U&#62;[VarNameUpdate]&#62;`}   />
 
 The function to set the values for the update document.
 ### transformCreateInput
@@ -184,7 +186,7 @@ The function to call when the update is successful.
 
 ## UseDetailPageResult
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/use-detail-page.ts" sourceLine="156" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/use-detail-page.ts" sourceLine="158" packageName="@vendure/dashboard" since="3.3.0" />
 
 
 

+ 6 - 4
docs/docs/reference/dashboard/detail-views/use-generated-form.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## useGeneratedForm
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/form-engine/use-generated-form.tsx" sourceLine="80" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/form-engine/use-generated-form.tsx" sourceLine="86" packageName="@vendure/dashboard" since="3.3.0" />
 
 This hook is used to create a form from a document and an entity.
 It will create a form with the fields defined in the document's input type.
@@ -51,7 +51,7 @@ Parameters
 
 ## GeneratedFormOptions
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/form-engine/use-generated-form.tsx" sourceLine="20" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/form-engine/use-generated-form.tsx" sourceLine="24" packageName="@vendure/dashboard" since="3.3.0" />
 
 Options for the useGeneratedForm hook.
 
@@ -63,7 +63,9 @@ interface GeneratedFormOptions<T extends TypedDocumentNode<any, any>, VarName ex
     customFieldConfig?: any[];
     setValues: (
         entity: NonNullable<E>,
-    ) => VarName extends keyof VariablesOf<T> ? VariablesOf<T>[VarName] : VariablesOf<T>;
+    ) => WithLooseCustomFields<
+        VarName extends keyof VariablesOf<T> ? VariablesOf<T>[VarName] : VariablesOf<T>
+    >;
     onSubmit?: (
         values: VarName extends keyof VariablesOf<T> ? VariablesOf<T>[VarName] : VariablesOf<T>,
     ) => void;
@@ -94,7 +96,7 @@ The entity to use to generate the form.
 
 ### setValues
 
-<MemberInfo kind="property" type={`(         entity: NonNullable&#60;E&#62;,     ) =&#62; VarName extends keyof VariablesOf&#60;T&#62; ? VariablesOf&#60;T&#62;[VarName] : VariablesOf&#60;T&#62;`}   />
+<MemberInfo kind="property" type={`(         entity: NonNullable&#60;E&#62;,     ) =&#62; WithLooseCustomFields&#60;         VarName extends keyof VariablesOf&#60;T&#62; ? VariablesOf&#60;T&#62;[VarName] : VariablesOf&#60;T&#62;     &#62;`}   />
 
 
 ### onSubmit

+ 1 - 1
docs/docs/reference/dashboard/extensions-api/data-tables.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## DashboardDataTableExtensionDefinition
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/data-table.ts" sourceLine="129" packageName="@vendure/dashboard" since="3.4.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/data-table.ts" sourceLine="131" packageName="@vendure/dashboard" since="3.4.0" />
 
 This allows you to customize aspects of existing data tables in the dashboard.
 

+ 6 - 0
docs/docs/reference/dashboard/extensions-api/navigation.md

@@ -24,6 +24,7 @@ interface DashboardNavSectionDefinition {
     title: string;
     icon?: LucideIcon;
     order?: number;
+    placement?: 'top' | 'bottom';
 }
 ```
 
@@ -56,6 +57,11 @@ import { PlusIcon } from 'lucide-react';
 <MemberInfo kind="property" type={`number`}   />
 
 Optional order number to control the position of this section in the sidebar.
+### placement
+
+<MemberInfo kind="property" type={`'top' | 'bottom'`}   />
+
+Optional placement to control the position of this section in the sidebar.
 
 
 </div>

+ 2 - 2
docs/docs/reference/dashboard/extensions-api/page-blocks.md

@@ -121,7 +121,7 @@ clicking the `< />` icon when hovering over a page block.
 type PageBlockLocation = {
     pageId: string;
     position: PageBlockPosition;
-    column: 'main' | 'side';
+    column: 'main' | 'side' | 'full';
 }
 ```
 
@@ -139,7 +139,7 @@ type PageBlockLocation = {
 
 ### column
 
-<MemberInfo kind="property" type={`'main' | 'side'`}   />
+<MemberInfo kind="property" type={`'main' | 'side' | 'full'`}   />
 
 
 

+ 4 - 4
docs/docs/reference/dashboard/extensions-api/routes.md

@@ -20,8 +20,8 @@ interface DashboardRouteDefinition {
     component: (route: AnyRoute) => React.ReactNode;
     path: string;
     navMenuItem?: Partial<NavMenuItem> & { sectionId: string };
-    loader?: RouteOptions['loader'];
-    validateSearch?: RouteOptions['validateSearch'];
+    loader?: RouteOptions<any>['loader'];
+    validateSearch?: RouteOptions<any>['validateSearch'];
     authenticated?: boolean;
 }
 ```
@@ -50,14 +50,14 @@ this item should appear in. It can also point to custom nav menu sections that
 have been defined using the `navSections` extension property.
 ### loader
 
-<MemberInfo kind="property" type={`RouteOptions['loader']`}   />
+<MemberInfo kind="property" type={`RouteOptions&#60;any&#62;['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)
 ### validateSearch
 
-<MemberInfo kind="property" type={`RouteOptions['validateSearch']`}   />
+<MemberInfo kind="property" type={`RouteOptions&#60;any&#62;['validateSearch']`}   />
 
 Optional search parameter validation function.
 The value is a Tanstack Router

+ 1 - 1
docs/docs/reference/dashboard/form-components/number-input.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## NumberInput
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/components/data-input/number-input.tsx" sourceLine="20" packageName="@vendure/dashboard" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/components/data-input/number-input.tsx" sourceLine="23" packageName="@vendure/dashboard" />
 
 A component for displaying a numeric value.
 

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

@@ -29,7 +29,7 @@ function useChannel(): void
 
 ## ChannelContext
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/providers/channel-provider.tsx" sourceLine="65" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/providers/channel-provider.tsx" sourceLine="71" packageName="@vendure/dashboard" since="3.3.0" />
 
 Provides information about the active channel, and the means to set a new
 active channel.

+ 26 - 0
docs/docs/reference/dashboard/hooks/use-drag-and-drop.md

@@ -0,0 +1,26 @@
+---
+title: "UseDragAndDrop"
+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';
+
+
+## useDragAndDrop
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/hooks/use-drag-and-drop.ts" sourceLine="22" packageName="@vendure/dashboard" since="3.3.0" />
+
+Provides the sensors and state management for drag and drop functionality.
+
+```ts title="Signature"
+function useDragAndDrop<TData = any>(options: UseDragAndDropOptions<TData>): void
+```
+Parameters
+
+### options
+
+<MemberInfo kind="parameter" type={`UseDragAndDropOptions&#60;TData&#62;`} />
+

+ 34 - 0
docs/docs/reference/dashboard/hooks/use-sorted-languages.md

@@ -0,0 +1,34 @@
+---
+title: "UseSortedLanguages"
+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';
+
+
+## useSortedLanguages
+
+<GenerationInfo sourceFile="packages/dashboard/src/lib/hooks/use-sorted-languages.ts" sourceLine="28" packageName="@vendure/dashboard" />
+
+This hook takes an array of language codes and returns a sorted array of language objects
+with code and localized label, sorted alphabetically by the label.
+
+*Example*
+
+```ts
+const sortedLanguages = useSortedLanguages(['en', 'fr', 'de']);
+// Returns: [{ code: 'de', label: 'German' }, { code: 'en', label: 'English' }, { code: 'fr', label: 'French' }]
+```
+
+```ts title="Signature"
+function useSortedLanguages(availableLanguages?: string[] | null): SortedLanguage[]
+```
+Parameters
+
+### availableLanguages
+
+<MemberInfo kind="parameter" type={`string[] | null`} />
+

+ 1 - 1
docs/docs/reference/dashboard/list-views/bulk-actions.md

@@ -112,7 +112,7 @@ Parameters
 
 ## BulkAction
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/data-table.ts" sourceLine="107" packageName="@vendure/dashboard" since="3.4.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/data-table.ts" sourceLine="109" packageName="@vendure/dashboard" since="3.4.0" />
 
 A bulk action is a component that will be rendered in the bulk actions dropdown.
 

+ 19 - 5
docs/docs/reference/dashboard/list-views/data-table.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## DataTable
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/components/data-table/data-table.tsx" sourceLine="93" packageName="@vendure/dashboard" since="3.4.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/components/data-table/data-table.tsx" sourceLine="164" packageName="@vendure/dashboard" since="3.4.0" />
 
 A data table which includes sorting, filtering, pagination, bulk actions, column controls etc.
 
@@ -30,7 +30,7 @@ Parameters
 
 ## DataTableProps
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/components/data-table/data-table.tsx" sourceLine="54" packageName="@vendure/dashboard" since="3.4.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/components/data-table/data-table.tsx" sourceLine="113" packageName="@vendure/dashboard" since="3.4.0" />
 
 Props for configuring the <a href='/reference/dashboard/list-views/data-table#datatable'>DataTable</a>.
 
@@ -56,6 +56,8 @@ interface DataTableProps<TData> {
     bulkActions?: BulkAction[];
     setTableOptions?: (table: TableOptions<TData>) => TableOptions<TData>;
     onRefresh?: () => void;
+    onReorder?: (oldIndex: number, newIndex: number, item: TData, allItems?: TData[]) => void | Promise<void>;
+    disableDragAndDrop?: boolean;
 }
 ```
 
@@ -162,6 +164,18 @@ when needed.
 <MemberInfo kind="property" type={`() =&#62; void`}   />
 
 
+### onReorder
+
+<MemberInfo kind="property" type={`(oldIndex: number, newIndex: number, item: TData, allItems?: TData[]) =&#62; void | Promise&#60;void&#62;`}   />
+
+Callback when items are reordered via drag and drop.
+When provided, enables drag-and-drop functionality.
+The fourth parameter provides all items for context-aware reordering.
+### disableDragAndDrop
+
+<MemberInfo kind="property" type={`boolean`}   />
+
+When true, drag and drop will be disabled. This will only have an effect if the onReorder prop is also set
 
 
 </div>
@@ -169,7 +183,7 @@ when needed.
 
 ## DashboardDataTableDisplayComponent
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/data-table.ts" sourceLine="16" packageName="@vendure/dashboard" since="3.4.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/extension-api/types/data-table.ts" sourceLine="18" 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.
@@ -177,7 +191,7 @@ The pageId is already defined in the data table extension, so only the column na
 ```ts title="Signature"
 interface DashboardDataTableDisplayComponent {
     column: string;
-    component: React.ComponentType<DataDisplayComponentProps<CellContext<any, any>>>;
+    component: DataTableDisplayComponent;
 }
 ```
 
@@ -190,7 +204,7 @@ interface DashboardDataTableDisplayComponent {
 The name of the column where this display component should be used.
 ### component
 
-<MemberInfo kind="property" type={`React.ComponentType&#60;DataDisplayComponentProps&#60;CellContext&#60;any, any&#62;&#62;&#62;`}   />
+<MemberInfo kind="property" type={`DataTableDisplayComponent`}   />
 
 The React component that will be rendered as the display.
 It should accept `value` and other standard display props.

+ 15 - 1
docs/docs/reference/dashboard/list-views/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="459" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/page/list-page.tsx" sourceLine="475" packageName="@vendure/dashboard" since="3.3.0" />
 
 Auto-generates a list page with columns generated based on the provided query document fields.
 
@@ -141,6 +141,8 @@ interface ListPageProps<T extends TypedDocumentNode<U, V>, U extends ListQuerySh
     setTableOptions?: (table: TableOptions<any>) => TableOptions<any>;
     bulkActions?: BulkAction[];
     registerRefresher?: PaginatedListRefresherRegisterFn;
+    onReorder?: (oldIndex: number, newIndex: number, item: any) => void | Promise<void>;
+    disableDragAndDrop?: boolean;
 }
 ```
 
@@ -478,6 +480,18 @@ See the <a href='/reference/dashboard/list-views/bulk-actions#bulkaction'>BulkAc
 Register a function that allows you to assign a refresh function for
 this list. The function can be assigned to a ref and then called when
 the list needs to be refreshed.
+### onReorder
+
+<MemberInfo kind="property" type={`(oldIndex: number, newIndex: number, item: any) =&#62; void | Promise&#60;void&#62;`}   />
+
+Callback when items are reordered via drag and drop.
+Only applies to top-level items. When provided, enables drag-and-drop functionality.
+### disableDragAndDrop
+
+<MemberInfo kind="property" type={`boolean`}   />
+
+When true, drag and drop will be disabled. This will only have an effect if the onReorder prop is also set Useful when filtering or searching.
+Defaults to false. Only relevant when `onReorder` is provided.
 
 
 </div>

+ 18 - 1
docs/docs/reference/dashboard/list-views/paginated-list-data-table.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## PaginatedListDataTable
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/components/shared/paginated-list-data-table.tsx" sourceLine="351" packageName="@vendure/dashboard" since="3.4.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/components/shared/paginated-list-data-table.tsx" sourceLine="366" packageName="@vendure/dashboard" since="3.4.0" />
 
 A wrapper around the <a href='/reference/dashboard/list-views/data-table#datatable'>DataTable</a> component, which automatically configures functionality common to
 list queries that implement the `PaginatedList` interface, which is the common way of representing lists
@@ -160,6 +160,12 @@ interface PaginatedListDataTableProps<T extends TypedDocumentNode<U, V>, U exten
     transformData?: (data: PaginatedListItemFields<T>[]) => PaginatedListItemFields<T>[];
     setTableOptions?: (table: TableOptions<any>) => TableOptions<any>;
     registerRefresher?: PaginatedListRefresherRegisterFn;
+    onReorder?: (
+        oldIndex: number,
+        newIndex: number,
+        item: PaginatedListItemFields<T>,
+    ) => void | Promise<void>;
+    disableDragAndDrop?: boolean;
 }
 ```
 
@@ -285,6 +291,17 @@ interface PaginatedListDataTableProps<T extends TypedDocumentNode<U, V>, U exten
 <MemberInfo kind="property" type={`PaginatedListRefresherRegisterFn`}   />
 
 
+### onReorder
+
+<MemberInfo kind="property" type={`(         oldIndex: number,         newIndex: number,         item: PaginatedListItemFields&#60;T&#62;,     ) =&#62; void | Promise&#60;void&#62;`}   />
+
+Callback when items are reordered via drag and drop.
+When provided, enables drag-and-drop functionality.
+### disableDragAndDrop
+
+<MemberInfo kind="property" type={`boolean`}   />
+
+When true, drag and drop will be disabled. This will only have an effect if the onReorder prop is also set
 
 
 </div>

+ 3 - 3
docs/docs/reference/dashboard/page-layout/page-action-bar.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## PageActionBar
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="322" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="351" packageName="@vendure/dashboard" since="3.3.0" />
 
 *
 A component for displaying the main actions for a page. This should be used inside the <a href='/reference/dashboard/page-layout/page#page'>Page</a> component.
@@ -31,7 +31,7 @@ Parameters
 
 ## PageActionBarLeft
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="344" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="373" packageName="@vendure/dashboard" since="3.3.0" />
 
 The PageActionBarLeft component should be used to display the left content of the action bar.
 
@@ -48,7 +48,7 @@ Parameters
 
 ## PageActionBarRight
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="437" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="466" packageName="@vendure/dashboard" since="3.3.0" />
 
 The PageActionBarRight component should be used to display the right content of the action bar.
 

+ 6 - 6
docs/docs/reference/dashboard/page-layout/page-block.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## PageBlock
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="562" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="591" packageName="@vendure/dashboard" since="3.3.0" />
 
 *
 A component for displaying a block of content on a page. This should be used inside the <a href='/reference/dashboard/page-layout/#pagelayout'>PageLayout</a> component.
@@ -39,14 +39,14 @@ Parameters
 
 ## PageBlockProps
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="511" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="540" packageName="@vendure/dashboard" since="3.3.0" />
 
 Props used to configure the <a href='/reference/dashboard/page-layout/page-block#pageblock'>PageBlock</a> component.
 
 ```ts title="Signature"
 type PageBlockProps = {
     children?: React.ReactNode;
-    column: 'main' | 'side';
+    column: 'main' | 'side' | 'full';
     blockId?: string;
     title?: React.ReactNode | string;
     description?: React.ReactNode | string;
@@ -63,7 +63,7 @@ type PageBlockProps = {
 The content of the block.
 ### column
 
-<MemberInfo kind="property" type={`'main' | 'side'`}   />
+<MemberInfo kind="property" type={`'main' | 'side' | 'full'`}   />
 
 Which column this block should appear in
 ### blockId
@@ -93,7 +93,7 @@ An optional set of CSS classes to apply to the block.
 
 ## FullWidthPageBlock
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="609" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="638" packageName="@vendure/dashboard" since="3.3.0" />
 
 **Status: Developer Preview**
 
@@ -113,7 +113,7 @@ Parameters
 
 ## CustomFieldsPageBlock
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="639" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="668" packageName="@vendure/dashboard" since="3.3.0" />
 
 *
 A component for displaying an auto-generated form for custom fields on a page.

+ 1 - 1
docs/docs/reference/dashboard/page-layout/page-title.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## PageTitle
 
-<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="307" packageName="@vendure/dashboard" since="3.3.0" />
+<GenerationInfo sourceFile="packages/dashboard/src/lib/framework/layout-engine/page-layout.tsx" sourceLine="336" packageName="@vendure/dashboard" since="3.3.0" />
 
 A component for displaying the title of a page. This should be used inside the <a href='/reference/dashboard/page-layout/page#page'>Page</a> component.
 

+ 13 - 1
docs/docs/reference/dashboard/vite-plugin/vendure-dashboard-plugin.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## vendureDashboardPlugin
 
-<GenerationInfo sourceFile="packages/dashboard/vite/vite-plugin-vendure-dashboard.ts" sourceLine="154" packageName="@vendure/dashboard" since="3.4.0" />
+<GenerationInfo sourceFile="packages/dashboard/vite/vite-plugin-vendure-dashboard.ts" sourceLine="166" packageName="@vendure/dashboard" since="3.4.0" />
 
 This is the Vite plugin which powers the Vendure Dashboard, including:
 
@@ -102,6 +102,18 @@ type VitePluginVendureDashboardOptions = {
      * the location based on the location of the `@vendure/core` package.
      */
     pluginPackageScanner?: PackageScannerConfig;
+    /**
+     * @description
+     * Allows you to specify the module system to use when compiling and loading your Vendure config.
+     * By default, the compiler will use CommonJS, but you can set it to `esm` if you are using
+     * ES Modules in your Vendure project.
+     *
+     * **Status** Developer preview. If you are using ESM please try this out and provide us with feedback!
+     *
+     * @since 3.5.1
+     * @default 'commonjs'
+     */
+    module?: 'commonjs' | 'esm';
     /**
      * @description
      * Allows you to selectively disable individual plugins.

+ 2 - 2
docs/docs/reference/typescript-api/data-access/list-query-builder.md

@@ -11,7 +11,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## ListQueryBuilder
 
-<GenerationInfo sourceFile="packages/core/src/service/helpers/list-query-builder/list-query-builder.ts" sourceLine="201" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/service/helpers/list-query-builder/list-query-builder.ts" sourceLine="207" packageName="@vendure/core" />
 
 This helper class is used when fetching entities the database from queries which return a <a href='/reference/typescript-api/common/paginated-list#paginatedlist'>PaginatedList</a> type.
 These queries all follow the same format:
@@ -121,7 +121,7 @@ to join that relation.
 
 ## ExtendedListQueryOptions
 
-<GenerationInfo sourceFile="packages/core/src/service/helpers/list-query-builder/list-query-builder.ts" sourceLine="42" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/service/helpers/list-query-builder/list-query-builder.ts" sourceLine="48" packageName="@vendure/core" />
 
 Options which can be passed to the ListQueryBuilder's `build()` method.
 

+ 3 - 3
docs/docs/reference/typescript-api/services/role-service.md

@@ -11,13 +11,13 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## RoleService
 
-<GenerationInfo sourceFile="packages/core/src/service/services/role.service.ts" sourceLine="53" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/service/services/role.service.ts" sourceLine="55" packageName="@vendure/core" />
 
 Contains methods relating to <a href='/reference/typescript-api/entities/role#role'>Role</a> entities.
 
 ```ts title="Signature"
 class RoleService {
-    constructor(connection: TransactionalConnection, channelService: ChannelService, listQueryBuilder: ListQueryBuilder, configService: ConfigService, eventBus: EventBus, requestContextCache: RequestContextCacheService)
+    constructor(connection: TransactionalConnection, channelService: ChannelService, listQueryBuilder: ListQueryBuilder, configService: ConfigService, eventBus: EventBus, requestContextCache: RequestContextCacheService, cacheService: CacheService)
     initRoles() => ;
     findAll(ctx: RequestContext, options?: ListQueryOptions<Role>, relations?: RelationPaths<Role>) => Promise<PaginatedList<Role>>;
     findOne(ctx: RequestContext, roleId: ID, relations?: RelationPaths<Role>) => Promise<Role | undefined>;
@@ -39,7 +39,7 @@ class RoleService {
 
 ### constructor
 
-<MemberInfo kind="method" type={`(connection: <a href='/reference/typescript-api/data-access/transactional-connection#transactionalconnection'>TransactionalConnection</a>, channelService: <a href='/reference/typescript-api/services/channel-service#channelservice'>ChannelService</a>, listQueryBuilder: <a href='/reference/typescript-api/data-access/list-query-builder#listquerybuilder'>ListQueryBuilder</a>, configService: ConfigService, eventBus: <a href='/reference/typescript-api/events/event-bus#eventbus'>EventBus</a>, requestContextCache: <a href='/reference/typescript-api/cache/request-context-cache-service#requestcontextcacheservice'>RequestContextCacheService</a>) => RoleService`}   />
+<MemberInfo kind="method" type={`(connection: <a href='/reference/typescript-api/data-access/transactional-connection#transactionalconnection'>TransactionalConnection</a>, channelService: <a href='/reference/typescript-api/services/channel-service#channelservice'>ChannelService</a>, listQueryBuilder: <a href='/reference/typescript-api/data-access/list-query-builder#listquerybuilder'>ListQueryBuilder</a>, configService: ConfigService, eventBus: <a href='/reference/typescript-api/events/event-bus#eventbus'>EventBus</a>, requestContextCache: <a href='/reference/typescript-api/cache/request-context-cache-service#requestcontextcacheservice'>RequestContextCacheService</a>, cacheService: <a href='/reference/typescript-api/cache/cache-service#cacheservice'>CacheService</a>) => RoleService`}   />
 
 
 ### initRoles

+ 3 - 3
docs/docs/reference/typescript-api/services/zone-service.md

@@ -11,13 +11,13 @@ import MemberDescription from '@site/src/components/MemberDescription';
 
 ## ZoneService
 
-<GenerationInfo sourceFile="packages/core/src/service/services/zone.service.ts" sourceLine="37" packageName="@vendure/core" />
+<GenerationInfo sourceFile="packages/core/src/service/services/zone.service.ts" sourceLine="38" packageName="@vendure/core" />
 
 Contains methods relating to <a href='/reference/typescript-api/entities/zone#zone'>Zone</a> entities.
 
 ```ts title="Signature"
 class ZoneService {
-    constructor(connection: TransactionalConnection, configService: ConfigService, eventBus: EventBus, translator: TranslatorService, listQueryBuilder: ListQueryBuilder)
+    constructor(connection: TransactionalConnection, configService: ConfigService, eventBus: EventBus, translator: TranslatorService, listQueryBuilder: ListQueryBuilder, customFieldRelationService: CustomFieldRelationService)
     findAll(ctx: RequestContext, options?: ListQueryOptions<Zone>) => Promise<PaginatedList<Zone>>;
     findOne(ctx: RequestContext, zoneId: ID) => Promise<Zone | undefined>;
     getAllWithMembers(ctx: RequestContext) => Promise<Zone[]>;
@@ -33,7 +33,7 @@ class ZoneService {
 
 ### constructor
 
-<MemberInfo kind="method" type={`(connection: <a href='/reference/typescript-api/data-access/transactional-connection#transactionalconnection'>TransactionalConnection</a>, configService: ConfigService, eventBus: <a href='/reference/typescript-api/events/event-bus#eventbus'>EventBus</a>, translator: <a href='/reference/typescript-api/service-helpers/translator-service#translatorservice'>TranslatorService</a>, listQueryBuilder: <a href='/reference/typescript-api/data-access/list-query-builder#listquerybuilder'>ListQueryBuilder</a>) => ZoneService`}   />
+<MemberInfo kind="method" type={`(connection: <a href='/reference/typescript-api/data-access/transactional-connection#transactionalconnection'>TransactionalConnection</a>, configService: ConfigService, eventBus: <a href='/reference/typescript-api/events/event-bus#eventbus'>EventBus</a>, translator: <a href='/reference/typescript-api/service-helpers/translator-service#translatorservice'>TranslatorService</a>, listQueryBuilder: <a href='/reference/typescript-api/data-access/list-query-builder#listquerybuilder'>ListQueryBuilder</a>, customFieldRelationService: CustomFieldRelationService) => ZoneService`}   />
 
 
 ### findAll