ding-react-admin 1.0.0

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 (237) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.js +3067 -0
  5. package/dist/src/app/AdminApp.d.ts +7 -0
  6. package/dist/src/app/AdminApp.d.ts.map +1 -0
  7. package/dist/src/components/AuthAlternateLink.d.ts +7 -0
  8. package/dist/src/components/AuthAlternateLink.d.ts.map +1 -0
  9. package/dist/src/components/DensitySwitch.d.ts +2 -0
  10. package/dist/src/components/DensitySwitch.d.ts.map +1 -0
  11. package/dist/src/components/ThemeSwitch.d.ts +2 -0
  12. package/dist/src/components/ThemeSwitch.d.ts.map +1 -0
  13. package/dist/src/components/ThemeToolbar.d.ts +2 -0
  14. package/dist/src/components/ThemeToolbar.d.ts.map +1 -0
  15. package/dist/src/components/index.d.ts +5 -0
  16. package/dist/src/components/index.d.ts.map +1 -0
  17. package/dist/src/context/AppThemeProvider.d.ts +13 -0
  18. package/dist/src/context/AppThemeProvider.d.ts.map +1 -0
  19. package/dist/src/context/AuthProvider.d.ts +18 -0
  20. package/dist/src/context/AuthProvider.d.ts.map +1 -0
  21. package/dist/src/context/DataProvider.d.ts +10 -0
  22. package/dist/src/context/DataProvider.d.ts.map +1 -0
  23. package/dist/src/context/PermissionsProvider.d.ts +18 -0
  24. package/dist/src/context/PermissionsProvider.d.ts.map +1 -0
  25. package/dist/src/crud/FilterBar.d.ts +6 -0
  26. package/dist/src/crud/FilterBar.d.ts.map +1 -0
  27. package/dist/src/crud/FormSteps.d.ts +20 -0
  28. package/dist/src/crud/FormSteps.d.ts.map +1 -0
  29. package/dist/src/crud/FormTabs.d.ts +13 -0
  30. package/dist/src/crud/FormTabs.d.ts.map +1 -0
  31. package/dist/src/crud/InlineFormSet.d.ts +29 -0
  32. package/dist/src/crud/InlineFormSet.d.ts.map +1 -0
  33. package/dist/src/crud/ListActionsBar.d.ts +15 -0
  34. package/dist/src/crud/ListActionsBar.d.ts.map +1 -0
  35. package/dist/src/crud/ResourceForm.d.ts +21 -0
  36. package/dist/src/crud/ResourceForm.d.ts.map +1 -0
  37. package/dist/src/crud/ResourceFormModal.d.ts +10 -0
  38. package/dist/src/crud/ResourceFormModal.d.ts.map +1 -0
  39. package/dist/src/crud/ResourceList.d.ts +38 -0
  40. package/dist/src/crud/ResourceList.d.ts.map +1 -0
  41. package/dist/src/crud/columns/BooleanColumn.d.ts +6 -0
  42. package/dist/src/crud/columns/BooleanColumn.d.ts.map +1 -0
  43. package/dist/src/crud/columns/CustomColumn.d.ts +9 -0
  44. package/dist/src/crud/columns/CustomColumn.d.ts.map +1 -0
  45. package/dist/src/crud/columns/DateColumn.d.ts +6 -0
  46. package/dist/src/crud/columns/DateColumn.d.ts.map +1 -0
  47. package/dist/src/crud/columns/NumberColumn.d.ts +6 -0
  48. package/dist/src/crud/columns/NumberColumn.d.ts.map +1 -0
  49. package/dist/src/crud/columns/ReferenceColumn.d.ts +6 -0
  50. package/dist/src/crud/columns/ReferenceColumn.d.ts.map +1 -0
  51. package/dist/src/crud/columns/ReferenceManyColumn.d.ts +6 -0
  52. package/dist/src/crud/columns/ReferenceManyColumn.d.ts.map +1 -0
  53. package/dist/src/crud/columns/TextColumn.d.ts +7 -0
  54. package/dist/src/crud/columns/TextColumn.d.ts.map +1 -0
  55. package/dist/src/crud/context/FilterContext.d.ts +17 -0
  56. package/dist/src/crud/context/FilterContext.d.ts.map +1 -0
  57. package/dist/src/crud/context/FormContext.d.ts +16 -0
  58. package/dist/src/crud/context/FormContext.d.ts.map +1 -0
  59. package/dist/src/crud/context/FormFieldsContext.d.ts +14 -0
  60. package/dist/src/crud/context/FormFieldsContext.d.ts.map +1 -0
  61. package/dist/src/crud/context/FormSectionContext.d.ts +7 -0
  62. package/dist/src/crud/context/FormSectionContext.d.ts.map +1 -0
  63. package/dist/src/crud/context/InlineFormContext.d.ts +16 -0
  64. package/dist/src/crud/context/InlineFormContext.d.ts.map +1 -0
  65. package/dist/src/crud/context/ListContext.d.ts +22 -0
  66. package/dist/src/crud/context/ListContext.d.ts.map +1 -0
  67. package/dist/src/crud/fields/BooleanField.d.ts +7 -0
  68. package/dist/src/crud/fields/BooleanField.d.ts.map +1 -0
  69. package/dist/src/crud/fields/DateField.d.ts +8 -0
  70. package/dist/src/crud/fields/DateField.d.ts.map +1 -0
  71. package/dist/src/crud/fields/FieldWrapper.d.ts +29 -0
  72. package/dist/src/crud/fields/FieldWrapper.d.ts.map +1 -0
  73. package/dist/src/crud/fields/NumberField.d.ts +12 -0
  74. package/dist/src/crud/fields/NumberField.d.ts.map +1 -0
  75. package/dist/src/crud/fields/PasswordField.d.ts +11 -0
  76. package/dist/src/crud/fields/PasswordField.d.ts.map +1 -0
  77. package/dist/src/crud/fields/ReferenceField.d.ts +18 -0
  78. package/dist/src/crud/fields/ReferenceField.d.ts.map +1 -0
  79. package/dist/src/crud/fields/ReferenceManyField.d.ts +9 -0
  80. package/dist/src/crud/fields/ReferenceManyField.d.ts.map +1 -0
  81. package/dist/src/crud/fields/SelectField.d.ts +10 -0
  82. package/dist/src/crud/fields/SelectField.d.ts.map +1 -0
  83. package/dist/src/crud/fields/TextField.d.ts +10 -0
  84. package/dist/src/crud/fields/TextField.d.ts.map +1 -0
  85. package/dist/src/crud/fields/useInlineOrFormField.d.ts +10 -0
  86. package/dist/src/crud/fields/useInlineOrFormField.d.ts.map +1 -0
  87. package/dist/src/crud/filters/BooleanFilter.d.ts +4 -0
  88. package/dist/src/crud/filters/BooleanFilter.d.ts.map +1 -0
  89. package/dist/src/crud/filters/DateFilter.d.ts +4 -0
  90. package/dist/src/crud/filters/DateFilter.d.ts.map +1 -0
  91. package/dist/src/crud/filters/NumberFilter.d.ts +4 -0
  92. package/dist/src/crud/filters/NumberFilter.d.ts.map +1 -0
  93. package/dist/src/crud/filters/ReferenceFilter.d.ts +13 -0
  94. package/dist/src/crud/filters/ReferenceFilter.d.ts.map +1 -0
  95. package/dist/src/crud/filters/SelectFilter.d.ts +7 -0
  96. package/dist/src/crud/filters/SelectFilter.d.ts.map +1 -0
  97. package/dist/src/crud/filters/TextFilter.d.ts +6 -0
  98. package/dist/src/crud/filters/TextFilter.d.ts.map +1 -0
  99. package/dist/src/crud/index.d.ts +44 -0
  100. package/dist/src/crud/index.d.ts.map +1 -0
  101. package/dist/src/crud/types.d.ts +99 -0
  102. package/dist/src/crud/types.d.ts.map +1 -0
  103. package/dist/src/crud/utils/formErrors.d.ts +9 -0
  104. package/dist/src/crud/utils/formErrors.d.ts.map +1 -0
  105. package/dist/src/crud/utils/formSectionErrors.d.ts +6 -0
  106. package/dist/src/crud/utils/formSectionErrors.d.ts.map +1 -0
  107. package/dist/src/crud/utils/getByPath.d.ts +3 -0
  108. package/dist/src/crud/utils/getByPath.d.ts.map +1 -0
  109. package/dist/src/crud/utils/inlineArrayName.d.ts +3 -0
  110. package/dist/src/crud/utils/inlineArrayName.d.ts.map +1 -0
  111. package/dist/src/crud/utils/pickBySources.d.ts +6 -0
  112. package/dist/src/crud/utils/pickBySources.d.ts.map +1 -0
  113. package/dist/src/crud/utils/setByPath.d.ts +3 -0
  114. package/dist/src/crud/utils/setByPath.d.ts.map +1 -0
  115. package/dist/src/crud/utils/sortQueryParam.d.ts +7 -0
  116. package/dist/src/crud/utils/sortQueryParam.d.ts.map +1 -0
  117. package/dist/src/crud/utils/useChoices.d.ts +10 -0
  118. package/dist/src/crud/utils/useChoices.d.ts.map +1 -0
  119. package/dist/src/crud/utils/useListQueryState.d.ts +22 -0
  120. package/dist/src/crud/utils/useListQueryState.d.ts.map +1 -0
  121. package/dist/src/data/createMemoryResourceHandlers.d.ts +23 -0
  122. package/dist/src/data/createMemoryResourceHandlers.d.ts.map +1 -0
  123. package/dist/src/data/createRestResourceHandlers.d.ts +22 -0
  124. package/dist/src/data/createRestResourceHandlers.d.ts.map +1 -0
  125. package/dist/src/data/dataProviderTypes.d.ts +67 -0
  126. package/dist/src/data/dataProviderTypes.d.ts.map +1 -0
  127. package/dist/src/data/dataUtils.test.d.ts +2 -0
  128. package/dist/src/data/dataUtils.test.d.ts.map +1 -0
  129. package/dist/src/data/inMemoryList.d.ts +12 -0
  130. package/dist/src/data/inMemoryList.d.ts.map +1 -0
  131. package/dist/src/data/parseFormErrorHelpers.d.ts +35 -0
  132. package/dist/src/data/parseFormErrorHelpers.d.ts.map +1 -0
  133. package/dist/src/data/parseFormErrorHelpers.test.d.ts +2 -0
  134. package/dist/src/data/parseFormErrorHelpers.test.d.ts.map +1 -0
  135. package/dist/src/data/resourceHandlers.d.ts +33 -0
  136. package/dist/src/data/resourceHandlers.d.ts.map +1 -0
  137. package/dist/src/data/sortHelpers.d.ts +17 -0
  138. package/dist/src/data/sortHelpers.d.ts.map +1 -0
  139. package/dist/src/index.d.ts +31 -0
  140. package/dist/src/index.d.ts.map +1 -0
  141. package/dist/src/layouts/AdminLayout.d.ts +3 -0
  142. package/dist/src/layouts/AdminLayout.d.ts.map +1 -0
  143. package/dist/src/layouts/AuthPageLayout.d.ts +11 -0
  144. package/dist/src/layouts/AuthPageLayout.d.ts.map +1 -0
  145. package/dist/src/pages/LoginPage.d.ts +3 -0
  146. package/dist/src/pages/LoginPage.d.ts.map +1 -0
  147. package/dist/src/pages/PlaceholderPage.d.ts +4 -0
  148. package/dist/src/pages/PlaceholderPage.d.ts.map +1 -0
  149. package/dist/src/permissions/resourcePermissions.d.ts +22 -0
  150. package/dist/src/permissions/resourcePermissions.d.ts.map +1 -0
  151. package/dist/src/router/createAdminRouter.d.ts +3 -0
  152. package/dist/src/router/createAdminRouter.d.ts.map +1 -0
  153. package/dist/src/router/guards.d.ts +20 -0
  154. package/dist/src/router/guards.d.ts.map +1 -0
  155. package/dist/src/router/routeAccess.d.ts +21 -0
  156. package/dist/src/router/routeAccess.d.ts.map +1 -0
  157. package/dist/src/types.d.ts +123 -0
  158. package/dist/src/types.d.ts.map +1 -0
  159. package/package.json +58 -0
  160. package/src/app/AdminApp.tsx +34 -0
  161. package/src/components/AuthAlternateLink.tsx +23 -0
  162. package/src/components/DensitySwitch.tsx +31 -0
  163. package/src/components/ThemeSwitch.tsx +28 -0
  164. package/src/components/ThemeToolbar.tsx +34 -0
  165. package/src/components/index.ts +4 -0
  166. package/src/context/AppThemeProvider.tsx +128 -0
  167. package/src/context/AuthProvider.tsx +77 -0
  168. package/src/context/DataProvider.tsx +30 -0
  169. package/src/context/PermissionsProvider.tsx +57 -0
  170. package/src/crud/FilterBar.tsx +36 -0
  171. package/src/crud/FormSteps.tsx +135 -0
  172. package/src/crud/FormTabs.tsx +126 -0
  173. package/src/crud/InlineFormSet.tsx +231 -0
  174. package/src/crud/ListActionsBar.tsx +106 -0
  175. package/src/crud/ResourceForm.tsx +281 -0
  176. package/src/crud/ResourceFormModal.tsx +121 -0
  177. package/src/crud/ResourceList.tsx +633 -0
  178. package/src/crud/columns/BooleanColumn.tsx +32 -0
  179. package/src/crud/columns/CustomColumn.tsx +33 -0
  180. package/src/crud/columns/DateColumn.tsx +28 -0
  181. package/src/crud/columns/NumberColumn.tsx +31 -0
  182. package/src/crud/columns/ReferenceColumn.tsx +85 -0
  183. package/src/crud/columns/ReferenceManyColumn.tsx +67 -0
  184. package/src/crud/columns/TextColumn.tsx +38 -0
  185. package/src/crud/context/FilterContext.tsx +71 -0
  186. package/src/crud/context/FormContext.tsx +39 -0
  187. package/src/crud/context/FormFieldsContext.tsx +76 -0
  188. package/src/crud/context/FormSectionContext.tsx +22 -0
  189. package/src/crud/context/InlineFormContext.tsx +71 -0
  190. package/src/crud/context/ListContext.tsx +93 -0
  191. package/src/crud/fields/BooleanField.tsx +32 -0
  192. package/src/crud/fields/DateField.tsx +47 -0
  193. package/src/crud/fields/FieldWrapper.tsx +109 -0
  194. package/src/crud/fields/NumberField.tsx +50 -0
  195. package/src/crud/fields/PasswordField.tsx +98 -0
  196. package/src/crud/fields/ReferenceField.tsx +191 -0
  197. package/src/crud/fields/ReferenceManyField.tsx +70 -0
  198. package/src/crud/fields/SelectField.tsx +42 -0
  199. package/src/crud/fields/TextField.tsx +44 -0
  200. package/src/crud/fields/useInlineOrFormField.tsx +91 -0
  201. package/src/crud/filters/BooleanFilter.tsx +38 -0
  202. package/src/crud/filters/DateFilter.tsx +35 -0
  203. package/src/crud/filters/NumberFilter.tsx +33 -0
  204. package/src/crud/filters/ReferenceFilter.tsx +173 -0
  205. package/src/crud/filters/SelectFilter.tsx +44 -0
  206. package/src/crud/filters/TextFilter.tsx +36 -0
  207. package/src/crud/index.ts +73 -0
  208. package/src/crud/types.ts +130 -0
  209. package/src/crud/utils/formErrors.ts +38 -0
  210. package/src/crud/utils/formSectionErrors.ts +85 -0
  211. package/src/crud/utils/getByPath.ts +13 -0
  212. package/src/crud/utils/inlineArrayName.ts +4 -0
  213. package/src/crud/utils/pickBySources.ts +24 -0
  214. package/src/crud/utils/setByPath.ts +18 -0
  215. package/src/crud/utils/sortQueryParam.ts +37 -0
  216. package/src/crud/utils/useChoices.ts +182 -0
  217. package/src/crud/utils/useListQueryState.ts +191 -0
  218. package/src/data/createMemoryResourceHandlers.ts +78 -0
  219. package/src/data/createRestResourceHandlers.ts +57 -0
  220. package/src/data/dataProviderTypes.ts +101 -0
  221. package/src/data/dataUtils.test.ts +108 -0
  222. package/src/data/inMemoryList.ts +97 -0
  223. package/src/data/parseFormErrorHelpers.test.ts +84 -0
  224. package/src/data/parseFormErrorHelpers.ts +224 -0
  225. package/src/data/resourceHandlers.ts +124 -0
  226. package/src/data/sortHelpers.ts +48 -0
  227. package/src/index.ts +182 -0
  228. package/src/layouts/AdminLayout.tsx +381 -0
  229. package/src/layouts/AuthPageLayout.tsx +81 -0
  230. package/src/pages/LoginPage.tsx +80 -0
  231. package/src/pages/PlaceholderPage.tsx +9 -0
  232. package/src/permissions/resourcePermissions.ts +47 -0
  233. package/src/router/createAdminRouter.tsx +64 -0
  234. package/src/router/guards.tsx +63 -0
  235. package/src/router/routeAccess.ts +89 -0
  236. package/src/types.ts +135 -0
  237. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,29 @@
1
+ import { ReactNode } from 'react';
2
+ import { FieldRules } from '../types';
3
+ export type FieldWrapperProps = {
4
+ source: string;
5
+ label?: string;
6
+ required?: boolean;
7
+ rules?: FieldRules;
8
+ children: (props: {
9
+ value: unknown;
10
+ onChange: (value: unknown) => void;
11
+ onBlur: () => void;
12
+ disabled?: boolean;
13
+ }) => ReactNode;
14
+ };
15
+ export declare function FieldWrapper({ source, label, required, rules, children, }: FieldWrapperProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function InlineFieldWrapper({ name, label, required, rules, hideLabel, children, }: {
17
+ name: string;
18
+ label?: string;
19
+ required?: boolean;
20
+ rules?: FieldRules;
21
+ /** Tabular inlines use column headers — suppress per-cell labels. */
22
+ hideLabel?: boolean;
23
+ children: (props: {
24
+ value: unknown;
25
+ onChange: (value: unknown) => void;
26
+ onBlur: () => void;
27
+ }) => ReactNode;
28
+ }): import("react/jsx-runtime").JSX.Element;
29
+ //# sourceMappingURL=FieldWrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldWrapper.d.ts","sourceRoot":"","sources":["../../../../src/crud/fields/FieldWrapper.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI3C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE;QAChB,KAAK,EAAE,OAAO,CAAC;QACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QACnC,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,KAAK,SAAS,CAAC;CACjB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,GACT,EAAE,iBAAiB,2CA+BnB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE;QAChB,KAAK,EAAE,OAAO,CAAC;QACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;QACnC,MAAM,EAAE,MAAM,IAAI,CAAC;KACpB,KAAK,SAAS,CAAC;CACjB,2CA8BA"}
@@ -0,0 +1,12 @@
1
+ import { CSSProperties } from 'react';
2
+ import { BaseSourceProps, FieldRules, InlineFieldOptions } from '../types';
3
+ export type NumberFieldProps = BaseSourceProps & InlineFieldOptions & {
4
+ required?: boolean;
5
+ rules?: FieldRules;
6
+ min?: number;
7
+ max?: number;
8
+ step?: number;
9
+ inputStyle?: CSSProperties;
10
+ };
11
+ export declare function NumberField({ source, label, required, rules, min, max, step, width: inlineWidth, minWidth: inlineMinWidth, inputStyle, }: NumberFieldProps): import("react/jsx-runtime").JSX.Element | null;
12
+ //# sourceMappingURL=NumberField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberField.d.ts","sourceRoot":"","sources":["../../../../src/crud/fields/NumberField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGhF,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAC5C,kBAAkB,GAAG;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B,CAAC;AAEJ,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,GAAG,EACH,GAAG,EACH,IAAI,EACJ,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,EACxB,UAAU,GACX,EAAE,gBAAgB,kDAuBlB"}
@@ -0,0 +1,11 @@
1
+ import { BaseSourceProps, FieldRules, InlineFieldOptions } from '../types';
2
+ export type PasswordFieldProps = BaseSourceProps & InlineFieldOptions & {
3
+ required?: boolean;
4
+ rules?: FieldRules;
5
+ /** When set, renders a second field and validates it matches `source`. */
6
+ confirmSource?: string;
7
+ confirmLabel?: string;
8
+ autoComplete?: string;
9
+ };
10
+ export declare function PasswordField({ source, label, required, rules, confirmSource, confirmLabel, autoComplete, width, minWidth, }: PasswordFieldProps): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=PasswordField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasswordField.d.ts","sourceRoot":"","sources":["../../../../src/crud/fields/PasswordField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGhF,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAC9C,kBAAkB,GAAG;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAgCJ,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,aAAa,EACb,YAAiC,EACjC,YAA6B,EAC7B,KAAK,EACL,QAAQ,GACT,EAAE,kBAAkB,2CA0CpB"}
@@ -0,0 +1,18 @@
1
+ import { CSSProperties } from 'react';
2
+ import { BaseSourceProps, ChoiceOption, FieldRules, InlineFieldOptions, ReferenceProps } from '../types';
3
+ export type ReferenceFieldProps = BaseSourceProps & ReferenceProps & InlineFieldOptions & {
4
+ required?: boolean;
5
+ rules?: FieldRules;
6
+ search?: boolean;
7
+ allowClear?: boolean;
8
+ disabled?: boolean;
9
+ /** Applied to the underlying Select / input control. */
10
+ inputStyle?: CSSProperties;
11
+ /** Called after the value changes (e.g. to update dependent fields). */
12
+ onValueChange?: (value: unknown, option: ChoiceOption | undefined, meta: {
13
+ name?: string;
14
+ index?: number;
15
+ }) => void;
16
+ };
17
+ export declare function ReferenceField({ source, label, reference, choices, optionLabel, optionValue, required, rules, search, allowClear, disabled: disabledProp, width: inlineWidth, minWidth: inlineMinWidth, inputStyle, onValueChange, }: ReferenceFieldProps): import("react/jsx-runtime").JSX.Element | null;
18
+ //# sourceMappingURL=ReferenceField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferenceField.d.ts","sourceRoot":"","sources":["../../../../src/crud/fields/ReferenceField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C,OAAO,KAAK,EAEV,eAAe,EAEf,YAAY,EAEZ,UAAU,EAEV,kBAAkB,EAElB,cAAc,EAEf,MAAM,UAAU,CAAC;AAQlB,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAE/C,cAAc,GAEd,kBAAkB,GAAG;IAEnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,wDAAwD;IAExD,UAAU,CAAC,EAAE,aAAa,CAAC;IAE3B,wEAAwE;IAExE,aAAa,CAAC,EAAE,CAEd,KAAK,EAAE,OAAO,EAEd,MAAM,EAAE,YAAY,GAAG,SAAS,EAEhC,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAEpC,IAAI,CAAC;CAEX,CAAC;AAIJ,wBAAgB,cAAc,CAAC,EAE7B,MAAM,EAEN,KAAK,EAEL,SAAS,EAET,OAAO,EAEP,WAAoB,EAEpB,WAAkB,EAElB,QAAQ,EAER,KAAK,EAEL,MAAM,EAEN,UAAU,EAEV,QAAQ,EAAE,YAAY,EAEtB,KAAK,EAAE,WAAW,EAElB,QAAQ,EAAE,cAAc,EAExB,UAAU,EAEV,aAAa,GAEd,EAAE,mBAAmB,kDA8FrB"}
@@ -0,0 +1,9 @@
1
+ import { BaseSourceProps, FieldRules, ReferenceProps } from '../types';
2
+ export type ReferenceManyFieldProps = BaseSourceProps & ReferenceProps & {
3
+ required?: boolean;
4
+ rules?: FieldRules;
5
+ search?: boolean;
6
+ allowClear?: boolean;
7
+ };
8
+ export declare function ReferenceManyField({ source, label, reference, choices, optionLabel, optionValue, required, rules, search, allowClear, }: ReferenceManyFieldProps): import("react/jsx-runtime").JSX.Element | null;
9
+ //# sourceMappingURL=ReferenceManyField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferenceManyField.d.ts","sourceRoot":"","sources":["../../../../src/crud/fields/ReferenceManyField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI5E,MAAM,MAAM,uBAAuB,GAAG,eAAe,GACnD,cAAc,GAAG;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEJ,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,KAAK,EACL,SAAS,EACT,OAAO,EACP,WAAoB,EACpB,WAAkB,EAClB,QAAQ,EACR,KAAK,EACL,MAAM,EACN,UAAiB,GAClB,EAAE,uBAAuB,kDA4CzB"}
@@ -0,0 +1,10 @@
1
+ import { BaseSourceProps, ChoiceOption, FieldRules } from '../types';
2
+ export type SelectFieldProps = BaseSourceProps & {
3
+ required?: boolean;
4
+ rules?: FieldRules;
5
+ choices: ChoiceOption[];
6
+ mode?: "multiple";
7
+ allowClear?: boolean;
8
+ };
9
+ export declare function SelectField({ source, label, required, rules, choices, mode, allowClear, }: SelectFieldProps): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=SelectField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectField.d.ts","sourceRoot":"","sources":["../../../../src/crud/fields/SelectField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG1E,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,OAAO,EACP,IAAI,EACJ,UAAU,GACX,EAAE,gBAAgB,2CAqBlB"}
@@ -0,0 +1,10 @@
1
+ import { CSSProperties } from 'react';
2
+ import { BaseSourceProps, FieldRules, InlineFieldOptions } from '../types';
3
+ export type TextFieldProps = BaseSourceProps & InlineFieldOptions & {
4
+ required?: boolean;
5
+ rules?: FieldRules;
6
+ placeholder?: string;
7
+ inputStyle?: CSSProperties;
8
+ };
9
+ export declare function TextField({ source, label, required, rules, placeholder, width: inlineWidth, minWidth: inlineMinWidth, inputStyle, }: TextFieldProps): import("react/jsx-runtime").JSX.Element | null;
10
+ //# sourceMappingURL=TextField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../../src/crud/fields/TextField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGhF,MAAM,MAAM,cAAc,GAAG,eAAe,GAC1C,kBAAkB,GAAG;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B,CAAC;AAEJ,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,WAAW,EACX,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,EACxB,UAAU,GACX,EAAE,cAAc,kDAqBhB"}
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from 'react';
2
+ import { FieldRenderProps, FieldRules, InlineFieldOptions } from '../types';
3
+ export declare function useInlineOrFormField(source: string, label: string | undefined, required: boolean | undefined, rules: FieldRules | undefined, renderInput: (props: FieldRenderProps) => ReactNode, inlineOptions?: InlineFieldOptions): {
4
+ mode: "inline";
5
+ element?: undefined;
6
+ } | {
7
+ mode: "form";
8
+ element: import("react/jsx-runtime").JSX.Element;
9
+ };
10
+ //# sourceMappingURL=useInlineOrFormField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInlineOrFormField.d.ts","sourceRoot":"","sources":["../../../../src/crud/fields/useInlineOrFormField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEnE,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EAEV,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAGlB,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,OAAO,GAAG,SAAS,EAC7B,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,WAAW,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,SAAS,EACnD,aAAa,CAAC,EAAE,kBAAkB;;;;;;EA0EnC"}
@@ -0,0 +1,4 @@
1
+ import { BaseSourceProps } from '../types';
2
+ export type BooleanFilterProps = BaseSourceProps;
3
+ export declare function BooleanFilter({ source, label }: BooleanFilterProps): null;
4
+ //# sourceMappingURL=BooleanFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BooleanFilter.d.ts","sourceRoot":"","sources":["../../../../src/crud/filters/BooleanFilter.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAEjD,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,kBAAkB,QA8BlE"}
@@ -0,0 +1,4 @@
1
+ import { BaseSourceProps } from '../types';
2
+ export type DateFilterProps = BaseSourceProps;
3
+ export declare function DateFilter({ source, label }: DateFilterProps): null;
4
+ //# sourceMappingURL=DateFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFilter.d.ts","sourceRoot":"","sources":["../../../../src/crud/filters/DateFilter.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC;AAE9C,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,eAAe,QA0B5D"}
@@ -0,0 +1,4 @@
1
+ import { BaseSourceProps } from '../types';
2
+ export type NumberFilterProps = BaseSourceProps;
3
+ export declare function NumberFilter({ source, label }: NumberFilterProps): null;
4
+ //# sourceMappingURL=NumberFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberFilter.d.ts","sourceRoot":"","sources":["../../../../src/crud/filters/NumberFilter.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEhD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,iBAAiB,QAyBhE"}
@@ -0,0 +1,13 @@
1
+ import { BaseSourceProps, ChoiceOption, ReferenceProps } from '../types';
2
+ export type SelectFilterProps = BaseSourceProps & {
3
+ choices: ChoiceOption[];
4
+ multiple?: boolean;
5
+ };
6
+ export declare function SelectFilter({ source, label, choices, multiple, }: SelectFilterProps): null;
7
+ export type ReferenceFilterProps = BaseSourceProps & ReferenceProps & {
8
+ multiple?: boolean;
9
+ search?: boolean;
10
+ };
11
+ export declare function ReferenceFilter({ source, label, reference, choices, optionLabel, optionValue, multiple, search, }: ReferenceFilterProps): null;
12
+ export declare function ReferenceManyFilter(props: ReferenceFilterProps): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=ReferenceFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferenceFilter.d.ts","sourceRoot":"","sources":["../../../../src/crud/filters/ReferenceFilter.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI9E,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG;IAChD,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AA0BF,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,iBAAiB,QA2BnB;AAED,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAChD,cAAc,GAAG;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AA8CJ,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,KAAK,EACL,SAAS,EACT,OAAO,EACP,WAAoB,EACpB,WAAkB,EAClB,QAAQ,EACR,MAAM,GACP,EAAE,oBAAoB,QAwCtB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,2CAE9D"}
@@ -0,0 +1,7 @@
1
+ import { BaseSourceProps, ChoiceOption } from '../types';
2
+ export type SelectFilterProps = BaseSourceProps & {
3
+ choices: ChoiceOption[];
4
+ multiple?: boolean;
5
+ };
6
+ export declare function SelectFilter({ source, label, choices, multiple, }: SelectFilterProps): null;
7
+ //# sourceMappingURL=SelectFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectFilter.d.ts","sourceRoot":"","sources":["../../../../src/crud/filters/SelectFilter.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG9D,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG;IAChD,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,iBAAiB,QA4BnB"}
@@ -0,0 +1,6 @@
1
+ import { BaseSourceProps } from '../types';
2
+ export type TextFilterProps = BaseSourceProps & {
3
+ placeholder?: string;
4
+ };
5
+ export declare function TextFilter({ source, label, placeholder }: TextFilterProps): null;
6
+ //# sourceMappingURL=TextFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextFilter.d.ts","sourceRoot":"","sources":["../../../../src/crud/filters/TextFilter.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,eAAe,QA0BzE"}
@@ -0,0 +1,44 @@
1
+ export { ResourceList, useResourceListContext } from './ResourceList';
2
+ export type { ResourceListProps } from './ResourceList';
3
+ export { FilterBar } from './FilterBar';
4
+ export { ResourceForm } from './ResourceForm';
5
+ export type { ResourceFormProps, ResourceFormInlineConfig, } from './ResourceForm';
6
+ export { ResourceFormModal } from './ResourceFormModal';
7
+ export type { ResourceFormModalProps } from './ResourceFormModal';
8
+ export { InlineFormSet, saveInlineRows, loadInlineRows, } from './InlineFormSet';
9
+ export type { InlineFormSetProps, SaveInlineOptions, InlineFormSetLayout } from './InlineFormSet';
10
+ export { FormTabs, FormTab } from './FormTabs';
11
+ export type { FormTabsProps, FormTabProps } from './FormTabs';
12
+ export { FormSteps, FormStep } from './FormSteps';
13
+ export type { FormStepsProps, FormStepProps } from './FormSteps';
14
+ export { TextField } from './fields/TextField';
15
+ export { NumberField } from './fields/NumberField';
16
+ export { BooleanField } from './fields/BooleanField';
17
+ export { DateField } from './fields/DateField';
18
+ export { SelectField } from './fields/SelectField';
19
+ export { PasswordField } from './fields/PasswordField';
20
+ export { ReferenceField } from './fields/ReferenceField';
21
+ export { ReferenceManyField } from './fields/ReferenceManyField';
22
+ export { TextColumn } from './columns/TextColumn';
23
+ export { NumberColumn } from './columns/NumberColumn';
24
+ export { BooleanColumn } from './columns/BooleanColumn';
25
+ export { DateColumn } from './columns/DateColumn';
26
+ export { ReferenceColumn } from './columns/ReferenceColumn';
27
+ export { ReferenceManyColumn } from './columns/ReferenceManyColumn';
28
+ export { CustomColumn } from './columns/CustomColumn';
29
+ export { TextFilter } from './filters/TextFilter';
30
+ export { NumberFilter } from './filters/NumberFilter';
31
+ export { BooleanFilter } from './filters/BooleanFilter';
32
+ export { DateFilter } from './filters/DateFilter';
33
+ export { SelectFilter } from './filters/SelectFilter';
34
+ export { ReferenceFilter, ReferenceManyFilter, } from './filters/ReferenceFilter';
35
+ export { useListQueryState } from './utils/useListQueryState';
36
+ export type { ListQueryState, ListQueryActions, } from './utils/useListQueryState';
37
+ export { useChoices } from './utils/useChoices';
38
+ export { getByPath } from './utils/getByPath';
39
+ export { pickBySources } from './utils/pickBySources';
40
+ export { inlineArrayName } from './utils/inlineArrayName';
41
+ export { setByPath } from './utils/setByPath';
42
+ export { useRegisterFormSource } from './context/FormFieldsContext';
43
+ export type { BaseSourceProps, ChoiceOption, ChoicesLoader, ReferenceProps, DisplayProps, EditMode, FieldRules, ResourceListBuiltInActions, ResourceListBulkAction, ResourceListBulkActionHelpers, ResourceListRowActionsHelpers, } from './types';
44
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crud/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import { ReactNode } from 'react';
2
+ import { ColumnsType } from 'antd/es/table';
3
+ import { DataProvider } from '../data/dataProviderTypes';
4
+ import { RegisterOptions } from 'react-hook-form';
5
+ export type BaseSourceProps = {
6
+ source: string;
7
+ label?: string;
8
+ };
9
+ export type ChoiceOption = {
10
+ label: string;
11
+ value: unknown;
12
+ /** Full record when loaded from a reference resource (for dependent fields). */
13
+ record?: Record<string, unknown>;
14
+ };
15
+ export type ChoicesContext = {
16
+ dataProvider: DataProvider;
17
+ search?: string;
18
+ };
19
+ export type ChoicesLoader = {
20
+ resource: string;
21
+ filter?: Record<string, unknown>;
22
+ } | ChoiceOption[] | ((ctx: ChoicesContext) => Promise<ChoiceOption[]>);
23
+ export type ReferenceProps = {
24
+ reference?: string;
25
+ choices?: ChoicesLoader;
26
+ optionLabel?: string | ((record: Record<string, unknown>) => string);
27
+ optionValue?: string;
28
+ };
29
+ export type DisplayProps = {
30
+ display?: string | ((record: Record<string, unknown>) => ReactNode);
31
+ };
32
+ export type FieldRules = RegisterOptions;
33
+ export type ColumnDefinition<T extends Record<string, unknown>> = {
34
+ key: string;
35
+ source: string;
36
+ label?: string;
37
+ sortable?: boolean;
38
+ buildColumn: () => ColumnsType<T>[number];
39
+ };
40
+ export type FilterDefinition = {
41
+ key: string;
42
+ source: string;
43
+ label?: string;
44
+ render: (props: {
45
+ value: unknown;
46
+ onChange: (value: unknown) => void;
47
+ }) => ReactNode;
48
+ };
49
+ export type InlineFieldDefinition = {
50
+ key: string;
51
+ source: string;
52
+ label?: string;
53
+ /** Column width in tabular inline tables (Ant Design Table `width`). */
54
+ width?: number | string;
55
+ /** Minimum column width in tabular inline tables. */
56
+ minWidth?: number | string;
57
+ render: (props: {
58
+ name: string;
59
+ index: number;
60
+ }) => ReactNode;
61
+ };
62
+ export type InlineFieldOptions = {
63
+ width?: number | string;
64
+ minWidth?: number | string;
65
+ };
66
+ export type FieldRenderProps = {
67
+ value: unknown;
68
+ onChange: (value: unknown) => void;
69
+ onBlur: () => void;
70
+ disabled?: boolean;
71
+ /** Set when rendered inside `InlineFormSet`. */
72
+ name?: string;
73
+ index?: number;
74
+ };
75
+ export type EditMode = "page" | "modal" | "both";
76
+ /** Toggle built-in row actions. Omitted keys default to `true` (still gated by permissions). */
77
+ export type ResourceListBuiltInActions = {
78
+ edit?: boolean;
79
+ quickEdit?: boolean;
80
+ delete?: boolean;
81
+ };
82
+ export type ResourceListRowActionsHelpers = {
83
+ reload: () => void;
84
+ openEditModal: (id: string | number) => void;
85
+ };
86
+ export type ResourceListBulkActionHelpers = {
87
+ reload: () => void;
88
+ clearSelection: () => void;
89
+ };
90
+ /** Bulk list action (Django admin–style). Runs on selected row ids. */
91
+ export type ResourceListBulkAction = {
92
+ key: string;
93
+ label: string;
94
+ /** Optional confirmation message. Return false to cancel. */
95
+ confirm?: string | ((selectedIds: (string | number)[], helpers: ResourceListBulkActionHelpers) => string | false | Promise<string | false>);
96
+ execute: (selectedIds: (string | number)[], helpers: ResourceListBulkActionHelpers) => void | Promise<void>;
97
+ };
98
+ export declare const LIST_QUERY_RESERVED: Set<string>;
99
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/crud/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { MessageInstance } from 'antd/es/message/interface';
2
+ import { FieldValues, UseFormReturn } from 'react-hook-form';
3
+ import { DataProvider, ParseFormErrorContext } from '../../data/dataProviderTypes';
4
+ export declare function applyFormErrors<T extends FieldValues>(form: UseFormReturn<T>, parsed: {
5
+ fields?: Record<string, string | string[]>;
6
+ global?: string | string[];
7
+ }, message: MessageInstance): void;
8
+ export declare function parseAndApplyFormErrors<T extends FieldValues>(dp: DataProvider, form: UseFormReturn<T>, message: MessageInstance, error: unknown, context: ParseFormErrorContext): boolean;
9
+ //# sourceMappingURL=formErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formErrors.d.ts","sourceRoot":"","sources":["../../../../src/crud/utils/formErrors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAa,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAOxF,wBAAgB,eAAe,CAAC,CAAC,SAAS,WAAW,EACnD,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,EAClF,OAAO,EAAE,eAAe,QASzB;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,WAAW,EAC3D,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,EACtB,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAQT"}
@@ -0,0 +1,6 @@
1
+ import { MutableRefObject } from 'react';
2
+ import { FieldValues, FormState, UseFormGetFieldState } from 'react-hook-form';
3
+ export declare function sectionHasError<T extends FieldValues>(sources: Set<string>, getFieldState: UseFormGetFieldState<T>, formState: FormState<T>): boolean;
4
+ export declare function useSectionSourceRefs(count: number): MutableRefObject<Set<string>>[];
5
+ export declare function useActivateFirstErrorSection(sectionRefs: MutableRefObject<Set<string>>[], activate: (index: number) => void): void;
6
+ //# sourceMappingURL=formSectionErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formSectionErrors.d.ts","sourceRoot":"","sources":["../../../../src/crud/utils/formSectionErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,oBAAoB,EAC1B,MAAM,iBAAiB,CAAC;AAEzB,wBAAgB,eAAe,CAAC,CAAC,SAAS,WAAW,EACnD,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC,EACtC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GACtB,OAAO,CAOT;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,mCAWjD;AAED,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,QA8ClC"}
@@ -0,0 +1,3 @@
1
+ /** Read nested value from a record using dot notation, e.g. `brand.name`. */
2
+ export declare function getByPath(record: Record<string, unknown>, path: string): unknown;
3
+ //# sourceMappingURL=getByPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getByPath.d.ts","sourceRoot":"","sources":["../../../../src/crud/utils/getByPath.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,GACX,OAAO,CAQT"}
@@ -0,0 +1,3 @@
1
+ /** Shared field-array name for InlineFormSet + ResourceForm inline loading. */
2
+ export declare function inlineArrayName(resource: string, name?: string): string;
3
+ //# sourceMappingURL=inlineArrayName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inlineArrayName.d.ts","sourceRoot":"","sources":["../../../../src/crud/utils/inlineArrayName.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,UAE9D"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Build a submit payload from form values using declared field `source` paths.
3
+ * Flat `username` → `{ username }`; nested `invoiceLine.product` → `{ invoiceLine: { product } }`.
4
+ */
5
+ export declare function pickBySources(values: Record<string, unknown>, sources: string[]): Record<string, unknown>;
6
+ //# sourceMappingURL=pickBySources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickBySources.d.ts","sourceRoot":"","sources":["../../../../src/crud/utils/pickBySources.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAazB"}
@@ -0,0 +1,3 @@
1
+ /** Write a value into a record using dot notation, e.g. `invoiceLine.product`. */
2
+ export declare function setByPath(record: Record<string, unknown>, path: string, value: unknown): void;
3
+ //# sourceMappingURL=setByPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setByPath.d.ts","sourceRoot":"","sources":["../../../../src/crud/utils/setByPath.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,IAAI,CAYN"}
@@ -0,0 +1,7 @@
1
+ import { SortSpec } from '../../data/dataProviderTypes';
2
+ /** Parse `sort` query (Django-style: `sku,-price`; legacy: `sku:asc,price:desc`). */
3
+ export declare function parseSortParam(raw: string | null): SortSpec[];
4
+ /** Serialize sort specs to Django-style `sku,-price`. */
5
+ export declare function serializeSort(specs: SortSpec[]): string | null;
6
+ export declare function sortPrioritiesFromSpecs(specs: SortSpec[]): Map<string, number>;
7
+ //# sourceMappingURL=sortQueryParam.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortQueryParam.d.ts","sourceRoot":"","sources":["../../../../src/crud/utils/sortQueryParam.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExE,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,EAAE,CAmB7D;AAED,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAI,CAK9D;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,EAAE,GAChB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAErB"}
@@ -0,0 +1,10 @@
1
+ import { ChoiceOption, ChoicesLoader } from '../types';
2
+ export declare function useChoices(loader: ChoicesLoader | undefined, reference: string | undefined, optionLabel?: string | ((record: Record<string, unknown>) => string), optionValue?: string, search?: string): {
3
+ options: ChoiceOption[];
4
+ loading: boolean;
5
+ labelForValue: (value: unknown) => string;
6
+ labelsForValues: (values: unknown[]) => string;
7
+ optionForValue: (value: unknown) => ChoiceOption | undefined;
8
+ reload: () => Promise<void>;
9
+ };
10
+ //# sourceMappingURL=useChoices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChoices.d.ts","sourceRoot":"","sources":["../../../../src/crud/utils/useChoices.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAiF5D,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,GAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAU,EAC5E,WAAW,SAAO,EAClB,MAAM,CAAC,EAAE,MAAM;;;2BAgEL,OAAO,KAAG,MAAM;8BAQf,OAAO,EAAE,KAAG,MAAM;4BAQnB,OAAO,KAAG,YAAY,GAAG,SAAS;;EAa7C"}
@@ -0,0 +1,22 @@
1
+ import { SortSpec } from '../../data/dataProviderTypes';
2
+ export type ListQueryState = {
3
+ page: number;
4
+ perPage: number;
5
+ sort: SortSpec[];
6
+ filter: Record<string, unknown>;
7
+ createModal: boolean;
8
+ editId: string | null;
9
+ };
10
+ export type ListQueryActions = {
11
+ setPage: (page: number) => void;
12
+ setPerPage: (perPage: number) => void;
13
+ setSort: (sort: SortSpec[]) => void;
14
+ toggleSort: (field: string) => void;
15
+ setFilter: (source: string, value: unknown) => void;
16
+ setFilters: (filter: Record<string, unknown>) => void;
17
+ openCreateModal: () => void;
18
+ openEditModal: (id: string | number) => void;
19
+ closeModal: () => void;
20
+ };
21
+ export declare function useListQueryState(staticFilter?: Record<string, unknown>): [ListQueryState, ListQueryActions];
22
+ //# sourceMappingURL=useListQueryState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useListQueryState.d.ts","sourceRoot":"","sources":["../../../../src/crud/utils/useListQueryState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AA8B7D,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IACpC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACtD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7C,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAuIpC"}
@@ -0,0 +1,23 @@
1
+ import { GetListParams } from './dataProviderTypes';
2
+ import { ResourceHandlers } from './resourceHandlers';
3
+ type Row = Record<string, unknown>;
4
+ export type MemoryResourceHandlersConfig<T extends Record<string, unknown> & {
5
+ id: string | number;
6
+ }> = {
7
+ getRows: () => T[];
8
+ nextId: () => string | number;
9
+ /** Defaults to `{ ...data, id }` from form field sources. */
10
+ mapCreate?: (data: Row, id: string | number) => T;
11
+ /** Defaults to spread patch over current row. */
12
+ applyUpdate?: (current: T, patch: Row) => T;
13
+ scopeList?: (rows: T[], params: GetListParams) => T[];
14
+ afterDelete?: (removed: T) => void;
15
+ };
16
+ /**
17
+ * Generic in-memory CRUD for demos and tests. Override hooks for entity-specific rules.
18
+ */
19
+ export declare function createMemoryResourceHandlers<T extends Record<string, unknown> & {
20
+ id: string | number;
21
+ }>(config: MemoryResourceHandlersConfig<T>): ResourceHandlers<T>;
22
+ export {};
23
+ //# sourceMappingURL=createMemoryResourceHandlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMemoryResourceHandlers.d.ts","sourceRoot":"","sources":["../../../src/data/createMemoryResourceHandlers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,aAAa,EAId,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnC,MAAM,MAAM,4BAA4B,CACtC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,IACzD;IACF,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC;IAC9B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,CAAC,CAAC;IAClD,iDAAiD;IACjD,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,KAAK,CAAC,EAAE,CAAC;IACtD,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAC3D,MAAM,EAAE,4BAA4B,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CA8C9D"}
@@ -0,0 +1,22 @@
1
+ import { GetListParams, Identifier } from './dataProviderTypes';
2
+ import { ResourceHandlers } from './resourceHandlers';
3
+ export type RestResourceHandlersConfig<T extends Record<string, unknown> = Record<string, unknown>> = {
4
+ list: (params: GetListParams) => Promise<{
5
+ data: T[];
6
+ total: number;
7
+ }>;
8
+ retrieve: (id: Identifier) => Promise<T>;
9
+ create: (data: Record<string, unknown>) => Promise<T>;
10
+ update: (id: Identifier, data: Record<string, unknown>) => Promise<T>;
11
+ destroy: (id: Identifier) => Promise<void>;
12
+ /** When API create body differs from form `source` paths. */
13
+ transformCreate?: (data: Record<string, unknown>) => unknown;
14
+ /** When API update body differs from form `source` paths. */
15
+ transformUpdate?: (data: Record<string, unknown>) => unknown;
16
+ };
17
+ /**
18
+ * Thin CRUD glue for REST backends. Form payload comes from field `source` paths;
19
+ * wire your fetch or API client in the five functions below.
20
+ */
21
+ export declare function createRestResourceHandlers<T extends Record<string, unknown> = Record<string, unknown>>(config: RestResourceHandlersConfig<T>): ResourceHandlers<T>;
22
+ //# sourceMappingURL=createRestResourceHandlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createRestResourceHandlers.d.ts","sourceRoot":"","sources":["../../../src/data/createRestResourceHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,MAAM,0BAA0B,CACpC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACzD;IACF,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,6DAA6D;IAC7D,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;IAC7D,6DAA6D;IAC7D,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;CAC9D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAiC5D"}