ding-react-admin 2.0.0 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +254 -195
  3. package/dist/index.css +1 -0
  4. package/dist/index.js +1773 -1170
  5. package/dist/src/components/NavMenuLabel.d.ts +8 -0
  6. package/dist/src/components/NavMenuLabel.d.ts.map +1 -0
  7. package/dist/src/components/NavMenuSearch.d.ts +9 -0
  8. package/dist/src/components/NavMenuSearch.d.ts.map +1 -0
  9. package/dist/src/components/ScrollableArea.d.ts +10 -0
  10. package/dist/src/components/ScrollableArea.d.ts.map +1 -0
  11. package/dist/src/components/index.d.ts +3 -0
  12. package/dist/src/components/index.d.ts.map +1 -1
  13. package/dist/src/context/AuthProvider.d.ts +2 -0
  14. package/dist/src/context/AuthProvider.d.ts.map +1 -1
  15. package/dist/src/crud/FormGlobalErrorsAlert.d.ts +5 -0
  16. package/dist/src/crud/FormGlobalErrorsAlert.d.ts.map +1 -0
  17. package/dist/src/crud/ResourceForm.d.ts +1 -4
  18. package/dist/src/crud/ResourceForm.d.ts.map +1 -1
  19. package/dist/src/crud/ResourceFormModal.d.ts +7 -1
  20. package/dist/src/crud/ResourceFormModal.d.ts.map +1 -1
  21. package/dist/src/crud/ResourceRecordForm.d.ts +27 -0
  22. package/dist/src/crud/ResourceRecordForm.d.ts.map +1 -0
  23. package/dist/src/crud/fields/ReferenceField.d.ts +12 -2
  24. package/dist/src/crud/fields/ReferenceField.d.ts.map +1 -1
  25. package/dist/src/crud/fields/ReferenceInputActions.d.ts +16 -0
  26. package/dist/src/crud/fields/ReferenceInputActions.d.ts.map +1 -0
  27. package/dist/src/crud/fields/ReferenceManyField.d.ts +10 -1
  28. package/dist/src/crud/fields/ReferenceManyField.d.ts.map +1 -1
  29. package/dist/src/crud/filters/ReferenceFilter.d.ts +1 -1
  30. package/dist/src/crud/filters/ReferenceFilter.d.ts.map +1 -1
  31. package/dist/src/crud/index.d.ts +5 -0
  32. package/dist/src/crud/index.d.ts.map +1 -1
  33. package/dist/src/crud/types.d.ts +12 -0
  34. package/dist/src/crud/types.d.ts.map +1 -1
  35. package/dist/src/crud/utils/choiceSelectionUtils.d.ts +10 -0
  36. package/dist/src/crud/utils/choiceSelectionUtils.d.ts.map +1 -0
  37. package/dist/src/crud/utils/choiceSelectionUtils.test.d.ts +2 -0
  38. package/dist/src/crud/utils/choiceSelectionUtils.test.d.ts.map +1 -0
  39. package/dist/src/crud/utils/formErrors.d.ts +18 -7
  40. package/dist/src/crud/utils/formErrors.d.ts.map +1 -1
  41. package/dist/src/crud/utils/formErrors.test.d.ts +2 -0
  42. package/dist/src/crud/utils/formErrors.test.d.ts.map +1 -0
  43. package/dist/src/crud/utils/prepareFormSubmitBody.d.ts +1 -0
  44. package/dist/src/crud/utils/prepareFormSubmitBody.d.ts.map +1 -1
  45. package/dist/src/crud/utils/referenceSelectNotFoundContent.d.ts +4 -0
  46. package/dist/src/crud/utils/referenceSelectNotFoundContent.d.ts.map +1 -0
  47. package/dist/src/crud/utils/toFormData.d.ts +1 -1
  48. package/dist/src/crud/utils/toFormData.d.ts.map +1 -1
  49. package/dist/src/crud/utils/uploadReferenceUtils.d.ts +5 -0
  50. package/dist/src/crud/utils/uploadReferenceUtils.d.ts.map +1 -0
  51. package/dist/src/crud/utils/useChoices.d.ts +27 -1
  52. package/dist/src/crud/utils/useChoices.d.ts.map +1 -1
  53. package/dist/src/crud/utils/useFormRecord.d.ts +9 -7
  54. package/dist/src/crud/utils/useFormRecord.d.ts.map +1 -1
  55. package/dist/src/data/parseFormErrorHelpers.d.ts +6 -27
  56. package/dist/src/data/parseFormErrorHelpers.d.ts.map +1 -1
  57. package/dist/src/index.d.ts +2 -2
  58. package/dist/src/index.d.ts.map +1 -1
  59. package/dist/src/layouts/AdminLayout.d.ts +1 -1
  60. package/dist/src/layouts/AdminLayout.d.ts.map +1 -1
  61. package/dist/src/layouts/AuthPageLayout.d.ts.map +1 -1
  62. package/dist/src/layouts/navFilter.d.ts +5 -0
  63. package/dist/src/layouts/navFilter.d.ts.map +1 -0
  64. package/dist/src/layouts/navMenuItems.d.ts +6 -0
  65. package/dist/src/layouts/navMenuItems.d.ts.map +1 -0
  66. package/dist/src/types.d.ts +12 -0
  67. package/dist/src/types.d.ts.map +1 -1
  68. package/package.json +85 -59
  69. package/src/app/AdminApp.tsx +34 -34
  70. package/src/components/AuthAlternateLink.tsx +23 -23
  71. package/src/components/DensitySwitch.tsx +31 -31
  72. package/src/components/NavMenuLabel.tsx +26 -0
  73. package/src/components/NavMenuSearch.tsx +76 -0
  74. package/src/components/ScrollableArea.tsx +46 -0
  75. package/src/components/ThemeSwitch.tsx +28 -28
  76. package/src/components/ThemeToolbar.tsx +34 -34
  77. package/src/components/index.ts +7 -4
  78. package/src/components/navMenu.css +21 -0
  79. package/src/components/scrollable.css +28 -0
  80. package/src/context/AppThemeProvider.tsx +128 -128
  81. package/src/context/AuthProvider.tsx +89 -77
  82. package/src/context/DataProvider.tsx +30 -30
  83. package/src/context/PermissionsProvider.tsx +57 -57
  84. package/src/crud/FilterBar.tsx +36 -36
  85. package/src/crud/FormGlobalErrorsAlert.tsx +36 -0
  86. package/src/crud/FormSteps.tsx +135 -135
  87. package/src/crud/FormTabs.tsx +126 -126
  88. package/src/crud/InlineFormSet.tsx +162 -162
  89. package/src/crud/ListActionsBar.tsx +106 -106
  90. package/src/crud/ResourceForm.tsx +83 -160
  91. package/src/crud/ResourceFormModal.tsx +75 -133
  92. package/src/crud/ResourceRecordForm.tsx +166 -0
  93. package/src/crud/columns/BooleanColumn.tsx +32 -32
  94. package/src/crud/columns/CustomColumn.tsx +33 -33
  95. package/src/crud/columns/DateColumn.tsx +28 -28
  96. package/src/crud/columns/ImageColumn.tsx +58 -58
  97. package/src/crud/columns/NumberColumn.tsx +31 -31
  98. package/src/crud/columns/ReferenceColumn.tsx +85 -85
  99. package/src/crud/columns/ReferenceManyColumn.tsx +67 -67
  100. package/src/crud/columns/TextColumn.tsx +38 -38
  101. package/src/crud/context/FilterContext.tsx +71 -71
  102. package/src/crud/context/FormContext.tsx +39 -39
  103. package/src/crud/context/FormSectionContext.tsx +22 -22
  104. package/src/crud/context/InlineFieldsRegistry.tsx +61 -61
  105. package/src/crud/context/ListContext.tsx +93 -93
  106. package/src/crud/fields/BooleanField.tsx +38 -38
  107. package/src/crud/fields/DateField.tsx +53 -53
  108. package/src/crud/fields/FileField.tsx +123 -123
  109. package/src/crud/fields/ImageField.tsx +120 -120
  110. package/src/crud/fields/NumberField.tsx +52 -52
  111. package/src/crud/fields/PasswordField.tsx +99 -99
  112. package/src/crud/fields/ReferenceField.tsx +237 -96
  113. package/src/crud/fields/ReferenceInputActions.tsx +106 -0
  114. package/src/crud/fields/ReferenceManyField.tsx +200 -76
  115. package/src/crud/fields/SelectField.tsx +48 -48
  116. package/src/crud/fields/TextField.tsx +46 -46
  117. package/src/crud/fields/uploadFieldUtils.ts +21 -21
  118. package/src/crud/fields/useUploadPreviewUrl.ts +20 -20
  119. package/src/crud/filters/BooleanFilter.tsx +38 -38
  120. package/src/crud/filters/DateFilter.tsx +35 -35
  121. package/src/crud/filters/NumberFilter.tsx +33 -33
  122. package/src/crud/filters/ReferenceFilter.tsx +192 -173
  123. package/src/crud/filters/SelectFilter.tsx +44 -44
  124. package/src/crud/filters/TextFilter.tsx +36 -36
  125. package/src/crud/index.ts +99 -94
  126. package/src/crud/types.ts +146 -134
  127. package/src/crud/utils/buildFormPayload.ts +24 -24
  128. package/src/crud/utils/buildInlineRowsPayload.ts +37 -37
  129. package/src/crud/utils/buildResourceFormSubmitBody.ts +29 -29
  130. package/src/crud/utils/choiceSelectionUtils.test.ts +45 -0
  131. package/src/crud/utils/choiceSelectionUtils.ts +116 -0
  132. package/src/crud/utils/formErrors.test.ts +168 -0
  133. package/src/crud/utils/formErrors.ts +138 -42
  134. package/src/crud/utils/formSectionErrors.ts +85 -85
  135. package/src/crud/utils/getFormValue.ts +13 -13
  136. package/src/crud/utils/hasUploadValues.ts +9 -9
  137. package/src/crud/utils/nestedFieldPath.ts +8 -8
  138. package/src/crud/utils/prepareFormSubmitBody.ts +22 -17
  139. package/src/crud/utils/referenceSelectNotFoundContent.tsx +7 -0
  140. package/src/crud/utils/setFormValue.ts +18 -18
  141. package/src/crud/utils/sortQueryParam.ts +37 -37
  142. package/src/crud/utils/toFormData.ts +79 -81
  143. package/src/crud/utils/uploadReferenceUtils.ts +44 -0
  144. package/src/crud/utils/useAbortableEffect.ts +17 -17
  145. package/src/crud/utils/useChoices.ts +330 -182
  146. package/src/crud/utils/useFormRecord.ts +179 -156
  147. package/src/crud/utils/useListQueryState.ts +191 -191
  148. package/src/data/abortError.test.ts +19 -19
  149. package/src/data/abortError.ts +10 -10
  150. package/src/data/createMemoryResourceHandlers.ts +78 -78
  151. package/src/data/createRestResourceHandlers.ts +63 -63
  152. package/src/data/dataUtils.test.ts +228 -220
  153. package/src/data/inMemoryList.ts +97 -97
  154. package/src/data/parseFormErrorHelpers.test.ts +201 -138
  155. package/src/data/parseFormErrorHelpers.ts +376 -311
  156. package/src/data/sortHelpers.ts +48 -48
  157. package/src/index.ts +211 -207
  158. package/src/layouts/AdminLayout.tsx +530 -382
  159. package/src/layouts/AuthPageLayout.tsx +87 -81
  160. package/src/layouts/navFilter.ts +49 -0
  161. package/src/layouts/navMenuItems.tsx +44 -0
  162. package/src/pages/LoginPage.tsx +80 -80
  163. package/src/pages/PlaceholderPage.tsx +9 -9
  164. package/src/permissions/resourcePermissions.ts +47 -47
  165. package/src/router/createAdminRouter.tsx +64 -64
  166. package/src/router/guards.tsx +63 -63
  167. package/src/router/routeAccess.ts +89 -89
  168. package/src/types.ts +10 -0
  169. package/src/vite-env.d.ts +1 -1
@@ -1,48 +1,48 @@
1
- import type { SortSpec } from "./dataProviderTypes";
2
-
3
- function normalizeSort(sort?: SortSpec | SortSpec[]): SortSpec[] {
4
- if (!sort) return [];
5
- return Array.isArray(sort) ? sort : [sort];
6
- }
7
-
8
- /**
9
- * Django REST Framework `ordering` query param.
10
- * ASC → `username`; DESC → `-username`; multi → `username,-date_joined`.
11
- */
12
- export function toDjangoRestOrdering(
13
- sort?: SortSpec | SortSpec[],
14
- ): string | undefined {
15
- const specs = normalizeSort(sort);
16
- if (specs.length === 0) return undefined;
17
- return specs
18
- .map((s) => (s.order === "DESC" ? `-${s.field}` : s.field))
19
- .join(",");
20
- }
21
-
22
- /**
23
- * OData `$orderby` query param.
24
- * ASC → `username asc`; DESC → `username desc`.
25
- */
26
- export function toODataOrderBy(
27
- sort?: SortSpec | SortSpec[],
28
- ): string | undefined {
29
- const specs = normalizeSort(sort);
30
- if (specs.length === 0) return undefined;
31
- return specs
32
- .map((s) => `${s.field} ${s.order === "DESC" ? "desc" : "asc"}`)
33
- .join(",");
34
- }
35
-
36
- /**
37
- * Common JSON:API `sort` query param.
38
- * ASC → `username`; DESC → `-username`.
39
- */
40
- export function toJsonApiSort(
41
- sort?: SortSpec | SortSpec[],
42
- ): string | undefined {
43
- const specs = normalizeSort(sort);
44
- if (specs.length === 0) return undefined;
45
- return specs
46
- .map((s) => (s.order === "DESC" ? `-${s.field}` : s.field))
47
- .join(",");
48
- }
1
+ import type { SortSpec } from "./dataProviderTypes";
2
+
3
+ function normalizeSort(sort?: SortSpec | SortSpec[]): SortSpec[] {
4
+ if (!sort) return [];
5
+ return Array.isArray(sort) ? sort : [sort];
6
+ }
7
+
8
+ /**
9
+ * Django REST Framework `ordering` query param.
10
+ * ASC → `username`; DESC → `-username`; multi → `username,-date_joined`.
11
+ */
12
+ export function toDjangoRestOrdering(
13
+ sort?: SortSpec | SortSpec[],
14
+ ): string | undefined {
15
+ const specs = normalizeSort(sort);
16
+ if (specs.length === 0) return undefined;
17
+ return specs
18
+ .map((s) => (s.order === "DESC" ? `-${s.field}` : s.field))
19
+ .join(",");
20
+ }
21
+
22
+ /**
23
+ * OData `$orderby` query param.
24
+ * ASC → `username asc`; DESC → `username desc`.
25
+ */
26
+ export function toODataOrderBy(
27
+ sort?: SortSpec | SortSpec[],
28
+ ): string | undefined {
29
+ const specs = normalizeSort(sort);
30
+ if (specs.length === 0) return undefined;
31
+ return specs
32
+ .map((s) => `${s.field} ${s.order === "DESC" ? "desc" : "asc"}`)
33
+ .join(",");
34
+ }
35
+
36
+ /**
37
+ * Common JSON:API `sort` query param.
38
+ * ASC → `username`; DESC → `-username`.
39
+ */
40
+ export function toJsonApiSort(
41
+ sort?: SortSpec | SortSpec[],
42
+ ): string | undefined {
43
+ const specs = normalizeSort(sort);
44
+ if (specs.length === 0) return undefined;
45
+ return specs
46
+ .map((s) => (s.order === "DESC" ? `-${s.field}` : s.field))
47
+ .join(",");
48
+ }
package/src/index.ts CHANGED
@@ -1,207 +1,211 @@
1
- export { AdminApp } from "./app/AdminApp";
2
- export { AdminLayout } from "./layouts/AdminLayout";
3
- export {
4
- AuthProvider,
5
- createSessionStorageAuthAdapter,
6
- useAuth,
7
- type AuthProviderProps,
8
- } from "./context/AuthProvider";
9
- export {
10
- DataProvider,
11
- useDataProvider,
12
- type DataProviderProps,
13
- } from "./context/DataProvider";
14
- export {
15
- PermissionsProvider,
16
- createPermissionsChecker,
17
- useCan,
18
- usePermissions,
19
- type PermissionsProviderProps,
20
- } from "./context/PermissionsProvider";
21
- export {
22
- AppThemeProvider,
23
- useThemeMode,
24
- } from "./context/AppThemeProvider";
25
- export type {
26
- CreateResult,
27
- DataProvider as DataProviderContract,
28
- DeleteResult,
29
- GetListParams,
30
- GetListResult,
31
- GetOneParams,
32
- GetOneResult,
33
- Identifier,
34
- PaginationParams,
35
- SortOrder,
36
- SortSpec,
37
- UpdateParams,
38
- UpdateResult,
39
- FormMutation,
40
- FormMutationBody,
41
- FormValidationErrors,
42
- ParseFormError,
43
- ParseFormErrorContext,
44
- } from "./data/dataProviderTypes";
45
- export { combineResourceHandlers } from "./data/resourceHandlers";
46
- export { isAbortError } from "./data/abortError";
47
- export {
48
- parseDjangoDRFFormErrors,
49
- parseDotNetFormErrors,
50
- parseNodeFormErrors,
51
- getErrorBody,
52
- resolveErrorBody,
53
- flattenNestedArrayErrors,
54
- asStringMessages,
55
- finalizeFormErrors,
56
- } from "./data/parseFormErrorHelpers";
57
- export type {
58
- DotNetFormErrorOptions,
59
- NodeFormErrorOptions,
60
- } from "./data/parseFormErrorHelpers";
61
- export { createMemoryResourceHandlers } from "./data/createMemoryResourceHandlers";
62
- export { createRestResourceHandlers } from "./data/createRestResourceHandlers";
63
- export type { RestResourceHandlersConfig } from "./data/createRestResourceHandlers";
64
- export {
65
- toDjangoRestOrdering,
66
- toODataOrderBy,
67
- toJsonApiSort,
68
- } from "./data/sortHelpers";
69
- export {
70
- applyInMemoryListParams,
71
- filterRows,
72
- getById as getRowById,
73
- } from "./data/inMemoryList";
74
- export type {
75
- CombineResourceHandlersOptions,
76
- ResourceAction,
77
- ResourceGuard,
78
- ResourceHandlerEntry,
79
- ResourceHandlerMap,
80
- ResourceHandlers,
81
- } from "./data/resourceHandlers";
82
- export type { ResourcePermissions } from "./permissions/resourcePermissions";
83
- export { filterNavByPermission } from "./permissions/resourcePermissions";
84
- export type { MemoryResourceHandlersConfig } from "./data/createMemoryResourceHandlers";
85
- export type { PermissionsChecker } from "./context/PermissionsProvider";
86
- export { LoginPage } from "./pages/LoginPage";
87
- export { PlaceholderPage } from "./pages/PlaceholderPage";
88
- export { AuthPageLayout } from "./layouts/AuthPageLayout";
89
- export {
90
- AuthAlternateLink,
91
- DensitySwitch,
92
- ThemeSwitch,
93
- ThemeToolbar,
94
- } from "./components";
95
- export { Guard, GuestOnly, Protected, RequirePermission } from "./router/guards";
96
- export { createAdminRouter } from "./router/createAdminRouter";
97
- export {
98
- deriveAuthPaths,
99
- getRouteAccess,
100
- partitionAdminRoutes,
101
- } from "./router/routeAccess";
102
- export type {
103
- AdminAppProps,
104
- AdminLayoutProps,
105
- AdminRouteChild,
106
- AppThemeProviderProps,
107
- AuthAdapter,
108
- LoginCredentials,
109
- AuthRedirects,
110
- CreateAdminRouterOptions,
111
- AuthAlternateLinkProps,
112
- AuthPageLayoutProps,
113
- LoginPageProps,
114
- NavItem,
115
- RouteAccess,
116
- ThemeDensity,
117
- ThemeMode,
118
- } from "./types";
119
- export {
120
- ResourceList,
121
- FilterBar,
122
- ResourceForm,
123
- ResourceFormModal,
124
- InlineFormSet,
125
- InlineFormSetStacked,
126
- FormTabs,
127
- FormTab,
128
- FormSteps,
129
- FormStep,
130
- TextField,
131
- NumberField,
132
- BooleanField,
133
- DateField,
134
- SelectField,
135
- PasswordField,
136
- ReferenceField,
137
- ReferenceManyField,
138
- ImageField,
139
- FileField,
140
- FieldWrapper,
141
- TextColumn,
142
- NumberColumn,
143
- BooleanColumn,
144
- DateColumn,
145
- ReferenceColumn,
146
- ReferenceManyColumn,
147
- ImageColumn,
148
- CustomColumn,
149
- TextFilter,
150
- NumberFilter,
151
- BooleanFilter,
152
- DateFilter,
153
- SelectFilter,
154
- ReferenceFilter,
155
- ReferenceManyFilter,
156
- useListQueryState,
157
- useChoices,
158
- useAbortableEffect,
159
- getFormValue,
160
- setFormValue,
161
- buildFormPayload,
162
- buildInlineRowsPayload,
163
- buildResourceFormSubmitBody,
164
- prepareFormSubmitBody,
165
- toFormData,
166
- hasUploadValues,
167
- nestedFieldPath,
168
- useResourceListContext,
169
- useRegisterPayloadField,
170
- useRegisterSectionField,
171
- } from "./crud";
172
- export type {
173
- ResourceFormProps,
174
- ResourceFormModalProps,
175
- InlineFormSetProps,
176
- InlineFormSetStackedProps,
177
- FormTabsProps,
178
- FormTabProps,
179
- FormStepsProps,
180
- FormStepProps,
181
- InlineFormSetLayout,
182
- ResourceListProps,
183
- BaseSourceProps,
184
- ChoiceOption,
185
- ChoicesLoader,
186
- ReferenceProps,
187
- DisplayProps,
188
- EditMode,
189
- FieldRules,
190
- InlineCellContext,
191
- InlineColumnDef,
192
- InlineFormSetBaseProps,
193
- InlineRowContext,
194
- InlineFieldRegistration,
195
- FieldWrapperProps,
196
- ImageFieldProps,
197
- FileFieldProps,
198
- UploadFieldValue,
199
- ToFormDataOptions,
200
- PrepareFormSubmitBodyOptions,
201
- ResourceListBuiltInActions,
202
- ResourceListBulkAction,
203
- ResourceListBulkActionHelpers,
204
- ResourceListRowActionsHelpers,
205
- ListQueryState,
206
- ListQueryActions,
207
- } from "./crud";
1
+ export { AdminApp } from "./app/AdminApp";
2
+ export { AdminLayout } from "./layouts/AdminLayout";
3
+ export {
4
+ AuthProvider,
5
+ createSessionStorageAuthAdapter,
6
+ useAuth,
7
+ type AuthProviderProps,
8
+ } from "./context/AuthProvider";
9
+ export {
10
+ DataProvider,
11
+ useDataProvider,
12
+ type DataProviderProps,
13
+ } from "./context/DataProvider";
14
+ export {
15
+ PermissionsProvider,
16
+ createPermissionsChecker,
17
+ useCan,
18
+ usePermissions,
19
+ type PermissionsProviderProps,
20
+ } from "./context/PermissionsProvider";
21
+ export {
22
+ AppThemeProvider,
23
+ useThemeMode,
24
+ } from "./context/AppThemeProvider";
25
+ export type {
26
+ CreateResult,
27
+ DataProvider as DataProviderContract,
28
+ DeleteResult,
29
+ GetListParams,
30
+ GetListResult,
31
+ GetOneParams,
32
+ GetOneResult,
33
+ Identifier,
34
+ PaginationParams,
35
+ SortOrder,
36
+ SortSpec,
37
+ UpdateParams,
38
+ UpdateResult,
39
+ FormMutation,
40
+ FormMutationBody,
41
+ FormValidationErrors,
42
+ ParseFormError,
43
+ ParseFormErrorContext,
44
+ } from "./data/dataProviderTypes";
45
+ export { combineResourceHandlers } from "./data/resourceHandlers";
46
+ export { isAbortError } from "./data/abortError";
47
+ export {
48
+ parseDjangoDRFFormErrors,
49
+ parseDotNetFormErrors,
50
+ parseNodeFormErrors,
51
+ getErrorBody,
52
+ resolveErrorBody,
53
+ flattenNestedArrayErrors,
54
+ asStringMessages,
55
+ finalizeFormErrors,
56
+ describeNonStandardValidationBody,
57
+ EXPECTED_VALIDATION_BODY_HINT,
58
+ } from "./data/parseFormErrorHelpers";
59
+ export type {
60
+ DotNetFormErrorOptions,
61
+ NodeFormErrorOptions,
62
+ } from "./data/parseFormErrorHelpers";
63
+ export { createMemoryResourceHandlers } from "./data/createMemoryResourceHandlers";
64
+ export { createRestResourceHandlers } from "./data/createRestResourceHandlers";
65
+ export type { RestResourceHandlersConfig } from "./data/createRestResourceHandlers";
66
+ export {
67
+ toDjangoRestOrdering,
68
+ toODataOrderBy,
69
+ toJsonApiSort,
70
+ } from "./data/sortHelpers";
71
+ export {
72
+ applyInMemoryListParams,
73
+ filterRows,
74
+ getById as getRowById,
75
+ } from "./data/inMemoryList";
76
+ export type {
77
+ CombineResourceHandlersOptions,
78
+ ResourceAction,
79
+ ResourceGuard,
80
+ ResourceHandlerEntry,
81
+ ResourceHandlerMap,
82
+ ResourceHandlers,
83
+ } from "./data/resourceHandlers";
84
+ export type { ResourcePermissions } from "./permissions/resourcePermissions";
85
+ export { filterNavByPermission } from "./permissions/resourcePermissions";
86
+ export type { MemoryResourceHandlersConfig } from "./data/createMemoryResourceHandlers";
87
+ export type { PermissionsChecker } from "./context/PermissionsProvider";
88
+ export { LoginPage } from "./pages/LoginPage";
89
+ export { PlaceholderPage } from "./pages/PlaceholderPage";
90
+ export { AuthPageLayout } from "./layouts/AuthPageLayout";
91
+ export {
92
+ AuthAlternateLink,
93
+ DensitySwitch,
94
+ ThemeSwitch,
95
+ ThemeToolbar,
96
+ } from "./components";
97
+ export { Guard, GuestOnly, Protected, RequirePermission } from "./router/guards";
98
+ export { createAdminRouter } from "./router/createAdminRouter";
99
+ export {
100
+ deriveAuthPaths,
101
+ getRouteAccess,
102
+ partitionAdminRoutes,
103
+ } from "./router/routeAccess";
104
+ export type {
105
+ AdminAppProps,
106
+ AdminLayoutProps,
107
+ AdminRouteChild,
108
+ AppThemeProviderProps,
109
+ AuthAdapter,
110
+ LoginCredentials,
111
+ AuthRedirects,
112
+ CreateAdminRouterOptions,
113
+ AuthAlternateLinkProps,
114
+ AuthPageLayoutProps,
115
+ LoginPageProps,
116
+ NavItem,
117
+ RouteAccess,
118
+ ThemeDensity,
119
+ ThemeMode,
120
+ } from "./types";
121
+ export {
122
+ ResourceList,
123
+ FilterBar,
124
+ ResourceForm,
125
+ ResourceFormModal,
126
+ InlineFormSet,
127
+ InlineFormSetStacked,
128
+ FormTabs,
129
+ FormTab,
130
+ FormSteps,
131
+ FormStep,
132
+ TextField,
133
+ NumberField,
134
+ BooleanField,
135
+ DateField,
136
+ SelectField,
137
+ PasswordField,
138
+ ReferenceField,
139
+ ReferenceManyField,
140
+ ImageField,
141
+ FileField,
142
+ FieldWrapper,
143
+ TextColumn,
144
+ NumberColumn,
145
+ BooleanColumn,
146
+ DateColumn,
147
+ ReferenceColumn,
148
+ ReferenceManyColumn,
149
+ ImageColumn,
150
+ CustomColumn,
151
+ TextFilter,
152
+ NumberFilter,
153
+ BooleanFilter,
154
+ DateFilter,
155
+ SelectFilter,
156
+ ReferenceFilter,
157
+ ReferenceManyFilter,
158
+ useListQueryState,
159
+ useChoices,
160
+ useAbortableEffect,
161
+ getFormValue,
162
+ setFormValue,
163
+ buildFormPayload,
164
+ buildInlineRowsPayload,
165
+ buildResourceFormSubmitBody,
166
+ prepareFormSubmitBody,
167
+ toFormData,
168
+ hasUploadValues,
169
+ nestedFieldPath,
170
+ useResourceListContext,
171
+ useRegisterPayloadField,
172
+ useRegisterSectionField,
173
+ } from "./crud";
174
+ export type {
175
+ ResourceFormProps,
176
+ ResourceFormModalProps,
177
+ InlineFormSetProps,
178
+ InlineFormSetStackedProps,
179
+ FormTabsProps,
180
+ FormTabProps,
181
+ FormStepsProps,
182
+ FormStepProps,
183
+ InlineFormSetLayout,
184
+ ResourceListProps,
185
+ BaseSourceProps,
186
+ ChoiceOption,
187
+ ChoicesLoader,
188
+ UseChoicesOptions,
189
+ ReferenceFieldProps,
190
+ ReferenceManyFieldProps,
191
+ DisplayProps,
192
+ EditMode,
193
+ FieldRules,
194
+ InlineCellContext,
195
+ InlineColumnDef,
196
+ InlineFormSetBaseProps,
197
+ InlineRowContext,
198
+ InlineFieldRegistration,
199
+ FieldWrapperProps,
200
+ ImageFieldProps,
201
+ FileFieldProps,
202
+ UploadFieldValue,
203
+ ToFormDataOptions,
204
+ PrepareFormSubmitBodyOptions,
205
+ ResourceListBuiltInActions,
206
+ ResourceListBulkAction,
207
+ ResourceListBulkActionHelpers,
208
+ ResourceListRowActionsHelpers,
209
+ ListQueryState,
210
+ ListQueryActions,
211
+ } from "./crud";