@joelbarron/react-web-dev-kit 0.1.9 → 0.1.10

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 (271) hide show
  1. package/dist/auth/client.d.ts +46 -0
  2. package/dist/auth/client.d.ts.map +1 -0
  3. package/dist/auth/client.js +379 -0
  4. package/dist/auth/constants/countryCallingCodes.d.ts +9 -0
  5. package/dist/auth/constants/countryCallingCodes.d.ts.map +1 -0
  6. package/dist/auth/constants/countryCallingCodes.js +209 -0
  7. package/dist/auth/constants/gender.d.ts +9 -0
  8. package/dist/auth/constants/gender.d.ts.map +1 -0
  9. package/dist/auth/constants/gender.js +12 -0
  10. package/dist/auth/constants/index.d.ts +3 -0
  11. package/dist/auth/constants/index.d.ts.map +1 -0
  12. package/dist/auth/constants/index.js +2 -0
  13. package/dist/auth/forms/account/AuthAccountConfirmationForm.d.ts +18 -0
  14. package/dist/auth/forms/account/AuthAccountConfirmationForm.d.ts.map +1 -0
  15. package/dist/auth/forms/account/AuthAccountConfirmationForm.js +167 -0
  16. package/dist/auth/forms/account/index.d.ts +2 -0
  17. package/dist/auth/forms/account/index.d.ts.map +1 -0
  18. package/dist/auth/forms/account/index.js +1 -0
  19. package/dist/auth/forms/errorParser.d.ts +7 -0
  20. package/dist/auth/forms/errorParser.d.ts.map +1 -0
  21. package/dist/auth/forms/errorParser.js +65 -0
  22. package/dist/auth/forms/index.d.ts +6 -0
  23. package/dist/auth/forms/index.d.ts.map +1 -0
  24. package/dist/auth/forms/index.js +5 -0
  25. package/dist/auth/forms/password/AuthForgotPasswordForm.d.ts +16 -0
  26. package/dist/auth/forms/password/AuthForgotPasswordForm.d.ts.map +1 -0
  27. package/dist/auth/forms/password/AuthForgotPasswordForm.js +109 -0
  28. package/dist/auth/forms/password/AuthPasswordResetConfirmForm.d.ts +17 -0
  29. package/dist/auth/forms/password/AuthPasswordResetConfirmForm.d.ts.map +1 -0
  30. package/dist/auth/forms/password/AuthPasswordResetConfirmForm.js +163 -0
  31. package/dist/auth/forms/password/AuthResetPasswordForm.d.ts +12 -0
  32. package/dist/auth/forms/password/AuthResetPasswordForm.d.ts.map +1 -0
  33. package/dist/auth/forms/password/AuthResetPasswordForm.js +22 -0
  34. package/dist/auth/forms/password/index.d.ts +4 -0
  35. package/dist/auth/forms/password/index.d.ts.map +1 -0
  36. package/dist/auth/forms/password/index.js +3 -0
  37. package/dist/auth/forms/password/passwordValidation.d.ts +3 -0
  38. package/dist/auth/forms/password/passwordValidation.d.ts.map +1 -0
  39. package/dist/auth/forms/password/passwordValidation.js +45 -0
  40. package/dist/auth/forms/sign-in/AuthOtpSignInForm.d.ts +24 -0
  41. package/dist/auth/forms/sign-in/AuthOtpSignInForm.d.ts.map +1 -0
  42. package/dist/auth/forms/sign-in/AuthOtpSignInForm.js +227 -0
  43. package/dist/auth/forms/sign-in/AuthPasswordSignInForm.d.ts +22 -0
  44. package/dist/auth/forms/sign-in/AuthPasswordSignInForm.d.ts.map +1 -0
  45. package/dist/auth/forms/sign-in/AuthPasswordSignInForm.js +148 -0
  46. package/dist/auth/forms/sign-in/index.d.ts +3 -0
  47. package/dist/auth/forms/sign-in/index.d.ts.map +1 -0
  48. package/dist/auth/forms/sign-in/index.js +2 -0
  49. package/dist/auth/forms/sign-up/AuthSignUpForm.d.ts +37 -0
  50. package/dist/auth/forms/sign-up/AuthSignUpForm.d.ts.map +1 -0
  51. package/dist/auth/forms/sign-up/AuthSignUpForm.js +193 -0
  52. package/dist/auth/forms/sign-up/index.d.ts +2 -0
  53. package/dist/auth/forms/sign-up/index.d.ts.map +1 -0
  54. package/dist/auth/forms/sign-up/index.js +1 -0
  55. package/dist/auth/fuse/createFuseAuthViews.d.ts +25 -0
  56. package/dist/auth/fuse/createFuseAuthViews.d.ts.map +1 -0
  57. package/dist/auth/fuse/createFuseAuthViews.js +510 -0
  58. package/dist/auth/fuse/fuseAdapter.d.ts +42 -0
  59. package/dist/auth/fuse/fuseAdapter.d.ts.map +1 -0
  60. package/dist/auth/fuse/fuseAdapter.js +291 -0
  61. package/dist/auth/fuse/fuseIntegration.d.ts +74 -0
  62. package/dist/auth/fuse/fuseIntegration.d.ts.map +1 -0
  63. package/dist/auth/fuse/fuseIntegration.js +121 -0
  64. package/dist/auth/fuse/index.d.ts +4 -0
  65. package/dist/auth/fuse/index.d.ts.map +1 -0
  66. package/dist/auth/fuse/index.js +3 -0
  67. package/dist/auth/index.d.ts +11 -0
  68. package/dist/auth/index.d.ts.map +1 -0
  69. package/dist/auth/index.js +10 -0
  70. package/dist/auth/provider.d.ts +35 -0
  71. package/dist/auth/provider.d.ts.map +1 -0
  72. package/dist/auth/provider.js +133 -0
  73. package/dist/auth/query.d.ts +23 -0
  74. package/dist/auth/query.d.ts.map +1 -0
  75. package/dist/auth/query.js +103 -0
  76. package/dist/auth/routes.d.ts +37 -0
  77. package/dist/auth/routes.d.ts.map +1 -0
  78. package/dist/auth/routes.js +75 -0
  79. package/dist/auth/social/providerAuth.d.ts +101 -0
  80. package/dist/auth/social/providerAuth.d.ts.map +1 -0
  81. package/dist/auth/social/providerAuth.js +207 -0
  82. package/dist/auth/storage.d.ts +3 -0
  83. package/dist/auth/storage.d.ts.map +1 -0
  84. package/dist/auth/storage.js +20 -0
  85. package/dist/auth/types.d.ts +238 -0
  86. package/dist/auth/types.d.ts.map +1 -0
  87. package/dist/auth/types.js +1 -0
  88. package/dist/auth/ui/AuthPageTitle.d.ts +7 -0
  89. package/dist/auth/ui/AuthPageTitle.d.ts.map +1 -0
  90. package/dist/auth/ui/AuthPageTitle.js +7 -0
  91. package/dist/auth/ui/AuthPagesMessageSection.d.ts +3 -0
  92. package/dist/auth/ui/AuthPagesMessageSection.d.ts.map +1 -0
  93. package/dist/auth/ui/AuthPagesMessageSection.js +39 -0
  94. package/dist/auth/ui/AuthPrimaryButton.d.ts +9 -0
  95. package/dist/auth/ui/AuthPrimaryButton.d.ts.map +1 -0
  96. package/dist/auth/ui/AuthPrimaryButton.js +19 -0
  97. package/dist/auth/ui/AuthRoleSelectionDialog.d.ts +14 -0
  98. package/dist/auth/ui/AuthRoleSelectionDialog.d.ts.map +1 -0
  99. package/dist/auth/ui/AuthRoleSelectionDialog.js +39 -0
  100. package/dist/auth/ui/AuthRoutePageWrapper.d.ts +12 -0
  101. package/dist/auth/ui/AuthRoutePageWrapper.d.ts.map +1 -0
  102. package/dist/auth/ui/AuthRoutePageWrapper.js +61 -0
  103. package/dist/auth/ui/AuthSecondaryButton.d.ts +7 -0
  104. package/dist/auth/ui/AuthSecondaryButton.d.ts.map +1 -0
  105. package/dist/auth/ui/AuthSecondaryButton.js +18 -0
  106. package/dist/auth/ui/AuthSocialProviderButton.d.ts +11 -0
  107. package/dist/auth/ui/AuthSocialProviderButton.d.ts.map +1 -0
  108. package/dist/auth/ui/AuthSocialProviderButton.js +33 -0
  109. package/dist/auth/ui/index.d.ts +9 -0
  110. package/dist/auth/ui/index.d.ts.map +1 -0
  111. package/dist/auth/ui/index.js +8 -0
  112. package/dist/auth/ui/types.d.ts +15 -0
  113. package/dist/auth/ui/types.d.ts.map +1 -0
  114. package/dist/auth/ui/types.js +1 -0
  115. package/dist/config/createConfig.d.ts +14 -0
  116. package/dist/config/createConfig.d.ts.map +1 -0
  117. package/dist/config/createConfig.js +179 -0
  118. package/dist/config/defaults.d.ts +3 -0
  119. package/dist/config/defaults.d.ts.map +1 -0
  120. package/dist/config/defaults.js +39 -0
  121. package/dist/config/index.d.ts +5 -0
  122. package/dist/config/index.d.ts.map +1 -0
  123. package/dist/config/index.js +4 -0
  124. package/dist/config/merge.d.ts +2 -0
  125. package/dist/config/merge.d.ts.map +1 -0
  126. package/dist/config/merge.js +18 -0
  127. package/dist/config/types.d.ts +53 -0
  128. package/dist/config/types.d.ts.map +1 -0
  129. package/dist/config/types.js +1 -0
  130. package/dist/core/buttons/JBButton.d.ts +8 -0
  131. package/dist/core/buttons/JBButton.d.ts.map +1 -0
  132. package/dist/core/buttons/JBButton.js +55 -0
  133. package/dist/core/buttons/index.d.ts +2 -0
  134. package/dist/core/buttons/index.d.ts.map +1 -0
  135. package/dist/core/buttons/index.js +1 -0
  136. package/dist/core/dialogs/JBConfirmDialog.d.ts +15 -0
  137. package/dist/core/dialogs/JBConfirmDialog.d.ts.map +1 -0
  138. package/dist/core/dialogs/JBConfirmDialog.js +6 -0
  139. package/dist/core/dialogs/index.d.ts +2 -0
  140. package/dist/core/dialogs/index.d.ts.map +1 -0
  141. package/dist/core/dialogs/index.js +1 -0
  142. package/dist/core/index.d.ts +5 -0
  143. package/dist/core/index.d.ts.map +1 -0
  144. package/dist/core/index.js +4 -0
  145. package/dist/core/layout/JBContentContainer.d.ts +31 -0
  146. package/dist/core/layout/JBContentContainer.d.ts.map +1 -0
  147. package/dist/core/layout/JBContentContainer.js +50 -0
  148. package/dist/core/layout/JBFormHeader.d.ts +3 -0
  149. package/dist/core/layout/JBFormHeader.d.ts.map +1 -0
  150. package/dist/core/layout/JBFormHeader.js +131 -0
  151. package/dist/core/layout/index.d.ts +3 -0
  152. package/dist/core/layout/index.d.ts.map +1 -0
  153. package/dist/core/layout/index.js +2 -0
  154. package/dist/core/skeletons/JBFormContentSkeleton.d.ts +5 -0
  155. package/dist/core/skeletons/JBFormContentSkeleton.d.ts.map +1 -0
  156. package/dist/core/skeletons/JBFormContentSkeleton.js +12 -0
  157. package/dist/core/skeletons/JBFormHeaderSkeleton.d.ts +6 -0
  158. package/dist/core/skeletons/JBFormHeaderSkeleton.d.ts.map +1 -0
  159. package/dist/core/skeletons/JBFormHeaderSkeleton.js +19 -0
  160. package/dist/core/skeletons/index.d.ts +3 -0
  161. package/dist/core/skeletons/index.d.ts.map +1 -0
  162. package/dist/core/skeletons/index.js +2 -0
  163. package/dist/forms/JBAutocompleteField.d.ts +12 -0
  164. package/dist/forms/JBAutocompleteField.d.ts.map +1 -0
  165. package/dist/forms/JBAutocompleteField.js +20 -0
  166. package/dist/forms/JBCheckboxField.d.ts +12 -0
  167. package/dist/forms/JBCheckboxField.d.ts.map +1 -0
  168. package/dist/forms/JBCheckboxField.js +36 -0
  169. package/dist/forms/JBDatePickerField.d.ts +13 -0
  170. package/dist/forms/JBDatePickerField.d.ts.map +1 -0
  171. package/dist/forms/JBDatePickerField.js +67 -0
  172. package/dist/forms/JBRadioGroupField.d.ts +10 -0
  173. package/dist/forms/JBRadioGroupField.d.ts.map +1 -0
  174. package/dist/forms/JBRadioGroupField.js +8 -0
  175. package/dist/forms/JBSelectField.d.ts +9 -0
  176. package/dist/forms/JBSelectField.d.ts.map +1 -0
  177. package/dist/forms/JBSelectField.js +8 -0
  178. package/dist/forms/JBSwitchField.d.ts +11 -0
  179. package/dist/forms/JBSwitchField.d.ts.map +1 -0
  180. package/dist/forms/JBSwitchField.js +10 -0
  181. package/dist/forms/JBTextField.d.ts +6 -0
  182. package/dist/forms/JBTextField.d.ts.map +1 -0
  183. package/dist/forms/JBTextField.js +8 -0
  184. package/dist/forms/JBTimePickerField.d.ts +12 -0
  185. package/dist/forms/JBTimePickerField.d.ts.map +1 -0
  186. package/dist/forms/JBTimePickerField.js +35 -0
  187. package/dist/forms/index.d.ts +13 -0
  188. package/dist/forms/index.d.ts.map +1 -0
  189. package/dist/forms/index.js +12 -0
  190. package/dist/forms/rules.d.ts +16 -0
  191. package/dist/forms/rules.d.ts.map +1 -0
  192. package/dist/forms/rules.js +21 -0
  193. package/dist/forms/types.d.ts +12 -0
  194. package/dist/forms/types.d.ts.map +1 -0
  195. package/dist/forms/types.js +1 -0
  196. package/dist/forms/utils.d.ts +5 -0
  197. package/dist/forms/utils.d.ts.map +1 -0
  198. package/dist/forms/utils.js +7 -0
  199. package/dist/forms/zod.d.ts +4 -0
  200. package/dist/forms/zod.d.ts.map +1 -0
  201. package/dist/forms/zod.js +9 -0
  202. package/dist/grid/JBGrid.d.ts +3 -0
  203. package/dist/grid/JBGrid.d.ts.map +1 -0
  204. package/dist/grid/JBGrid.js +338 -0
  205. package/dist/grid/JBGridHeader.d.ts +3 -0
  206. package/dist/grid/JBGridHeader.d.ts.map +1 -0
  207. package/dist/grid/JBGridHeader.js +93 -0
  208. package/dist/grid/JBGridLoading.d.ts +9 -0
  209. package/dist/grid/JBGridLoading.d.ts.map +1 -0
  210. package/dist/grid/JBGridLoading.js +14 -0
  211. package/dist/grid/JBGridProviders.d.ts +13 -0
  212. package/dist/grid/JBGridProviders.d.ts.map +1 -0
  213. package/dist/grid/JBGridProviders.js +54 -0
  214. package/dist/grid/JBGridSkeleton.d.ts +7 -0
  215. package/dist/grid/JBGridSkeleton.d.ts.map +1 -0
  216. package/dist/grid/JBGridSkeleton.js +6 -0
  217. package/dist/grid/defaults.d.ts +4 -0
  218. package/dist/grid/defaults.d.ts.map +1 -0
  219. package/dist/grid/defaults.js +29 -0
  220. package/dist/grid/index.d.ts +8 -0
  221. package/dist/grid/index.d.ts.map +1 -0
  222. package/dist/grid/index.js +7 -0
  223. package/dist/grid/types.d.ts +197 -0
  224. package/dist/grid/types.d.ts.map +1 -0
  225. package/dist/grid/types.js +1 -0
  226. package/dist/hooks/index.d.ts +4 -0
  227. package/dist/hooks/index.d.ts.map +1 -0
  228. package/dist/hooks/index.js +3 -0
  229. package/dist/hooks/useJBDebouncedValue.d.ts +2 -0
  230. package/dist/hooks/useJBDebouncedValue.d.ts.map +1 -0
  231. package/dist/hooks/useJBDebouncedValue.js +11 -0
  232. package/dist/hooks/useJBEntityFormController.d.ts +54 -0
  233. package/dist/hooks/useJBEntityFormController.d.ts.map +1 -0
  234. package/dist/hooks/useJBEntityFormController.js +156 -0
  235. package/dist/hooks/useJBRedirect.d.ts +10 -0
  236. package/dist/hooks/useJBRedirect.d.ts.map +1 -0
  237. package/dist/hooks/useJBRedirect.js +11 -0
  238. package/dist/index.d.ts +9 -0
  239. package/dist/index.d.ts.map +1 -0
  240. package/dist/index.js +8 -0
  241. package/dist/query/createQueryClient.d.ts +8 -0
  242. package/dist/query/createQueryClient.d.ts.map +1 -0
  243. package/dist/query/createQueryClient.js +25 -0
  244. package/dist/query/http.d.ts +3 -0
  245. package/dist/query/http.d.ts.map +1 -0
  246. package/dist/query/http.js +12 -0
  247. package/dist/query/index.d.ts +4 -0
  248. package/dist/query/index.d.ts.map +1 -0
  249. package/dist/query/index.js +3 -0
  250. package/dist/query/types.d.ts +7 -0
  251. package/dist/query/types.d.ts.map +1 -0
  252. package/dist/query/types.js +1 -0
  253. package/dist/utils/errors.d.ts +10 -0
  254. package/dist/utils/errors.d.ts.map +1 -0
  255. package/dist/utils/errors.js +55 -0
  256. package/dist/utils/format.d.ts +4 -0
  257. package/dist/utils/format.d.ts.map +1 -0
  258. package/dist/utils/format.js +28 -0
  259. package/dist/utils/geo.d.ts +9 -0
  260. package/dist/utils/geo.d.ts.map +1 -0
  261. package/dist/utils/geo.js +186 -0
  262. package/dist/utils/index.d.ts +6 -0
  263. package/dist/utils/index.d.ts.map +1 -0
  264. package/dist/utils/index.js +5 -0
  265. package/dist/utils/query.d.ts +2 -0
  266. package/dist/utils/query.d.ts.map +1 -0
  267. package/dist/utils/query.js +4 -0
  268. package/dist/utils/regex.d.ts +7 -0
  269. package/dist/utils/regex.d.ts.map +1 -0
  270. package/dist/utils/regex.js +6 -0
  271. package/package.json +3 -1
@@ -0,0 +1,93 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Button, InputBase, Paper, Typography } from '@mui/material';
3
+ import SearchRoundedIcon from '@mui/icons-material/SearchRounded';
4
+ import AddRoundedIcon from '@mui/icons-material/AddRounded';
5
+ export function JBGridHeader(props) {
6
+ const { moduleConfig, iconNameRenderer, animated = true, animationDurationMs = 240, animationStaggerMs = 60, animationPreset = 'vertical', breadcrumb, title, subtitle, icon, searchText, onSearchTextChange, searchPlaceholder, allowCreate = true, createButtonLabel, onCreateClick, rightContent } = props;
7
+ const resolvedTitle = title ?? moduleConfig?.texts?.moduleName ?? '';
8
+ const resolvedSubtitle = subtitle ?? moduleConfig?.texts?.formHeaderSubtitle ?? '';
9
+ const resolvedSearchPlaceholder = searchPlaceholder ?? moduleConfig?.texts?.searchPlaceholder ?? 'Search...';
10
+ const resolvedCreateLabel = createButtonLabel ?? moduleConfig?.texts?.newText ?? 'Create';
11
+ const resolvedIcon = icon ?? (moduleConfig?.texts?.iconName && iconNameRenderer
12
+ ? iconNameRenderer(moduleConfig.texts.iconName)
13
+ : null);
14
+ const animateSx = (delayMs) => animated
15
+ ? {
16
+ animation: `jbGridHeaderFadeIn ${animationDurationMs}ms ease-out ${delayMs}ms both`
17
+ }
18
+ : undefined;
19
+ const animateFromLeftSx = (delayMs) => animated && animationPreset === 'sides'
20
+ ? {
21
+ animation: `jbGridHeaderFadeInLeft ${animationDurationMs}ms ease-out ${delayMs}ms both`
22
+ }
23
+ : animateSx(delayMs);
24
+ const animateFromRightSx = (delayMs) => animated && animationPreset === 'sides'
25
+ ? {
26
+ animation: `jbGridHeaderFadeInRight ${animationDurationMs}ms ease-out ${delayMs}ms both`
27
+ }
28
+ : animateSx(delayMs);
29
+ return (_jsxs(Box, { sx: {
30
+ width: '100%',
31
+ display: 'flex',
32
+ flexDirection: 'column',
33
+ gap: 2,
34
+ p: { xs: 2, md: 3 },
35
+ '@keyframes jbGridHeaderFadeIn': {
36
+ from: { opacity: 0, transform: 'translateY(8px)' },
37
+ to: { opacity: 1, transform: 'translateY(0)' }
38
+ },
39
+ '@keyframes jbGridHeaderFadeInLeft': {
40
+ from: { opacity: 0, transform: 'translateX(-14px)' },
41
+ to: { opacity: 1, transform: 'translateX(0)' }
42
+ },
43
+ '@keyframes jbGridHeaderFadeInRight': {
44
+ from: { opacity: 0, transform: 'translateX(14px)' },
45
+ to: { opacity: 1, transform: 'translateX(0)' }
46
+ }
47
+ }, children: [breadcrumb ? _jsx(Box, { sx: animateSx(0), children: breadcrumb }) : null, _jsxs(Box, { sx: {
48
+ display: { xs: 'flex', md: 'grid' },
49
+ flexDirection: { xs: 'column', md: 'row' },
50
+ gridTemplateColumns: { md: 'minmax(0, 1fr) auto' },
51
+ alignItems: { xs: 'center', md: 'center' },
52
+ gap: 2,
53
+ width: '100%'
54
+ }, children: [_jsxs(Box, { sx: {
55
+ display: 'flex',
56
+ alignItems: 'center',
57
+ justifyContent: { xs: 'center', md: 'flex-start' },
58
+ gap: 1,
59
+ minWidth: 0,
60
+ width: '100%',
61
+ ...animateFromLeftSx(animationStaggerMs)
62
+ }, children: [resolvedIcon ? _jsx(Box, { sx: { display: 'inline-flex', alignItems: 'center' }, children: resolvedIcon }) : null, _jsxs(Box, { sx: { minWidth: 0, textAlign: { xs: 'center', md: 'left' } }, children: [_jsx(Typography, { variant: "h4", sx: { fontWeight: 700, lineHeight: 1.15 }, children: resolvedTitle }), resolvedSubtitle ? (_jsx(Typography, { variant: "body2", color: "text.secondary", children: resolvedSubtitle })) : null] })] }), _jsxs(Box, { sx: {
63
+ width: { xs: '100%', md: 'auto' },
64
+ display: 'flex',
65
+ alignItems: { xs: 'center', md: 'center' },
66
+ justifySelf: { md: 'end' },
67
+ justifyContent: { xs: 'center', md: 'flex-end' },
68
+ flexWrap: 'wrap',
69
+ gap: 1,
70
+ minWidth: 0,
71
+ ...animateFromRightSx(animationStaggerMs * 2)
72
+ }, children: [_jsxs(Paper, { sx: {
73
+ px: 1.5,
74
+ py: 0.5,
75
+ width: { xs: '100%', md: 320 },
76
+ display: 'flex',
77
+ alignItems: 'center',
78
+ gap: 1,
79
+ borderRadius: 1.5
80
+ }, children: [_jsx(SearchRoundedIcon, { sx: { color: 'text.secondary', fontSize: 20 } }), _jsx(InputBase, { fullWidth: true, placeholder: resolvedSearchPlaceholder, value: searchText, onChange: (event) => onSearchTextChange(event.target.value) })] }), rightContent, allowCreate && onCreateClick ? (_jsx(Button, { variant: "contained", startIcon: _jsx(AddRoundedIcon, { fontSize: "small" }), sx: (theme) => ({
81
+ borderRadius: 1.5,
82
+ minHeight: 42,
83
+ px: 2.25,
84
+ fontWeight: 700,
85
+ boxShadow: 'none',
86
+ backgroundImage: 'none',
87
+ '&:hover': {
88
+ boxShadow: 'none',
89
+ backgroundImage: 'none',
90
+ backgroundColor: theme.palette.primary.dark
91
+ }
92
+ }), onClick: onCreateClick, children: resolvedCreateLabel })) : null] })] })] }));
93
+ }
@@ -0,0 +1,9 @@
1
+ type JBGridLoadingProps = {
2
+ minHeight?: number;
3
+ size?: number;
4
+ message?: string;
5
+ color?: 'primary' | 'secondary' | 'inherit';
6
+ };
7
+ export declare function JBGridLoading(props: JBGridLoadingProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=JBGridLoading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JBGridLoading.d.ts","sourceRoot":"","sources":["../../src/grid/JBGridLoading.tsx"],"names":[],"mappings":"AAEA,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CA2BtD"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, CircularProgress, Typography } from '@mui/material';
3
+ export function JBGridLoading(props) {
4
+ const { minHeight = 320, size = 40, message, color = 'primary' } = props;
5
+ return (_jsxs(Box, { sx: {
6
+ width: '100%',
7
+ minHeight,
8
+ display: 'flex',
9
+ flexDirection: 'column',
10
+ alignItems: 'center',
11
+ justifyContent: 'center',
12
+ gap: 1.25
13
+ }, children: [_jsx(CircularProgress, { size: size, color: color }), message ? (_jsx(Typography, { variant: "body2", color: "text.secondary", children: message })) : null] }));
14
+ }
@@ -0,0 +1,13 @@
1
+ export declare const JBBooleanTypeProvider: (props: {
2
+ for: string[];
3
+ }) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const JBCurrencyTypeProvider: (props: {
5
+ for: string[];
6
+ }) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const JBDateTypeProvider: (props: {
8
+ for: string[];
9
+ }) => import("react/jsx-runtime").JSX.Element;
10
+ export declare const JBImageTypeProvider: (props: {
11
+ for: string[];
12
+ }) => import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=JBGridProviders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JBGridProviders.d.ts","sourceRoot":"","sources":["../../src/grid/JBGridProviders.tsx"],"names":[],"mappings":"AA2FA,eAAO,MAAM,qBAAqB,GAAI,OAAO;IAAE,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,4CAK7D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,OAAO;IAAE,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,4CAK9D,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO;IAAE,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,4CAK1D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO;IAAE,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,4CAK3D,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DataTypeProvider } from '@devexpress/dx-react-grid';
3
+ import CancelRoundedIcon from '@mui/icons-material/CancelRounded';
4
+ import CheckCircleRoundedIcon from '@mui/icons-material/CheckCircleRounded';
5
+ import { Avatar, Box, Chip } from '@mui/material';
6
+ const formatCurrency = (value, currency = 'USD') => {
7
+ const amount = typeof value === 'number' ? value : Number(value ?? 0);
8
+ if (Number.isNaN(amount))
9
+ return '';
10
+ return new Intl.NumberFormat('en-US', {
11
+ style: 'currency',
12
+ currency
13
+ }).format(amount);
14
+ };
15
+ const formatDate = (value) => {
16
+ if (!value)
17
+ return '';
18
+ const date = value instanceof Date ? value : new Date(String(value));
19
+ if (Number.isNaN(date.getTime()))
20
+ return String(value);
21
+ return new Intl.DateTimeFormat('es-MX', {
22
+ year: 'numeric',
23
+ month: '2-digit',
24
+ day: '2-digit'
25
+ }).format(date);
26
+ };
27
+ const BooleanFormatter = ({ value }) => {
28
+ const normalized = String(value ?? '').trim().toLowerCase();
29
+ const isTrue = value === true ||
30
+ value === 1 ||
31
+ value === '1' ||
32
+ normalized === 'true';
33
+ return (_jsx(Chip, { size: "small", variant: "outlined", color: isTrue ? 'success' : 'error', icon: isTrue ? _jsx(CheckCircleRoundedIcon, { fontSize: "small" }) : _jsx(CancelRoundedIcon, { fontSize: "small" }), label: isTrue ? 'Sí' : 'No' }));
34
+ };
35
+ const CurrencyFormatter = ({ value, column }) => {
36
+ const currency = column?.currency ?? 'USD';
37
+ return _jsx("span", { children: formatCurrency(value, currency) });
38
+ };
39
+ const DateFormatter = ({ value }) => {
40
+ return _jsx("span", { children: formatDate(value) });
41
+ };
42
+ const ImageFormatter = ({ value, column }) => {
43
+ const src = typeof value === 'string' ? value : '';
44
+ const type = column?.type ?? 'square';
45
+ const className = column?.className ?? 'h-16 w-16';
46
+ if (type === 'rounded') {
47
+ return (_jsx(Avatar, { className: className, alt: "image", src: src }));
48
+ }
49
+ return (_jsx(Box, { className: className, children: src ? (_jsx("img", { className: "h-full w-full object-cover rounded", alt: "image", src: src })) : null }));
50
+ };
51
+ export const JBBooleanTypeProvider = (props) => (_jsx(DataTypeProvider, { formatterComponent: BooleanFormatter, ...props }));
52
+ export const JBCurrencyTypeProvider = (props) => (_jsx(DataTypeProvider, { formatterComponent: CurrencyFormatter, ...props }));
53
+ export const JBDateTypeProvider = (props) => (_jsx(DataTypeProvider, { formatterComponent: DateFormatter, ...props }));
54
+ export const JBImageTypeProvider = (props) => (_jsx(DataTypeProvider, { formatterComponent: ImageFormatter, ...props }));
@@ -0,0 +1,7 @@
1
+ type JBGridSkeletonProps = {
2
+ rows?: number;
3
+ showToolbar?: boolean;
4
+ };
5
+ export declare function JBGridSkeleton(props: JBGridSkeletonProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=JBGridSkeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JBGridSkeleton.d.ts","sourceRoot":"","sources":["../../src/grid/JBGridSkeleton.tsx"],"names":[],"mappings":"AAEA,KAAK,mBAAmB,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CA0BxD"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Skeleton } from '@mui/material';
3
+ export function JBGridSkeleton(props) {
4
+ const { rows = 8, showToolbar = true } = props;
5
+ return (_jsxs(Box, { sx: { width: '100%', p: 1.5 }, children: [showToolbar ? (_jsxs(Box, { sx: { mb: 1.5, display: 'flex', justifyContent: 'space-between', gap: 1.5 }, children: [_jsx(Skeleton, { variant: "rounded", width: 240, height: 36 }), _jsx(Skeleton, { variant: "rounded", width: 160, height: 36 })] })) : null, _jsx(Skeleton, { variant: "rounded", width: "100%", height: 44 }), _jsx(Box, { sx: { mt: 1, display: 'grid', gap: 1 }, children: Array.from({ length: rows }).map((_, index) => (_jsx(Skeleton, { variant: "rounded", width: "100%", height: 40 }, index))) })] }));
6
+ }
@@ -0,0 +1,4 @@
1
+ import { JBGridDefaults } from './types';
2
+ export declare const DEFAULT_GRID_DEFAULTS: Required<JBGridDefaults>;
3
+ export declare function resolveGridDefaults(defaults?: JBGridDefaults): Required<JBGridDefaults>;
4
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/grid/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,cAAc,CAsB1D,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,CAKvF"}
@@ -0,0 +1,29 @@
1
+ export const DEFAULT_GRID_DEFAULTS = {
2
+ pageSize: 30,
3
+ virtualScrolling: false,
4
+ estimatedRowHeight: 48,
5
+ virtualTableHeight: 640,
6
+ virtualTableHeightMode: 'fixed',
7
+ virtualTableHeightRatio: 1,
8
+ allowSorting: true,
9
+ allowColumnResizing: true,
10
+ allowColumnReordering: false,
11
+ allowSelection: true,
12
+ allowSelectAll: false,
13
+ showSelectionColumn: false,
14
+ allowFiltering: false,
15
+ advancedFiltering: false,
16
+ allowGrouping: true,
17
+ filters: [],
18
+ sorting: [],
19
+ grouping: [],
20
+ expandedGroups: [],
21
+ expandGroupedRowsByDefault: false,
22
+ pageSizes: [10, 30, 50, 100, 200, 500, 1000]
23
+ };
24
+ export function resolveGridDefaults(defaults) {
25
+ return {
26
+ ...DEFAULT_GRID_DEFAULTS,
27
+ ...(defaults ?? {})
28
+ };
29
+ }
@@ -0,0 +1,8 @@
1
+ export * from './types';
2
+ export * from './JBGridProviders';
3
+ export * from './JBGridHeader';
4
+ export * from './JBGrid';
5
+ export * from './JBGridSkeleton';
6
+ export * from './JBGridLoading';
7
+ export * from './defaults';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/grid/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './types';
2
+ export * from './JBGridProviders';
3
+ export * from './JBGridHeader';
4
+ export * from './JBGrid';
5
+ export * from './JBGridSkeleton';
6
+ export * from './JBGridLoading';
7
+ export * from './defaults';
@@ -0,0 +1,197 @@
1
+ import { ReactNode } from 'react';
2
+ export type JBGridDefaults = {
3
+ pageSize?: number;
4
+ virtualScrolling?: boolean;
5
+ estimatedRowHeight?: number;
6
+ virtualTableHeight?: number;
7
+ virtualTableHeightMode?: 'fixed' | 'fill';
8
+ virtualTableHeightRatio?: number;
9
+ allowSorting?: boolean;
10
+ allowColumnResizing?: boolean;
11
+ allowColumnReordering?: boolean;
12
+ allowSelection?: boolean;
13
+ allowSelectAll?: boolean;
14
+ showSelectionColumn?: boolean;
15
+ allowFiltering?: boolean;
16
+ advancedFiltering?: boolean;
17
+ allowGrouping?: boolean;
18
+ filters?: unknown[];
19
+ sorting?: unknown[];
20
+ grouping?: JBGridGrouping[];
21
+ expandedGroups?: string[];
22
+ expandGroupedRowsByDefault?: boolean;
23
+ pageSizes?: number[];
24
+ };
25
+ export type JBGridGrouping = {
26
+ columnName: string;
27
+ };
28
+ export type JBGridColumn = {
29
+ name: string;
30
+ title: string;
31
+ [key: string]: unknown;
32
+ };
33
+ export type JBGridColumnWidth = {
34
+ columnName: string;
35
+ width: number;
36
+ };
37
+ export type JBGridConfig = {
38
+ columns: JBGridColumn[];
39
+ columnsWidths: JBGridColumnWidth[];
40
+ imageColumns?: string[];
41
+ booleanColumns?: string[];
42
+ currencyColumns?: string[];
43
+ dateColumns?: string[];
44
+ totalSummaryItems?: unknown[];
45
+ groupSummaryItems?: unknown[];
46
+ tableColumnExtensions?: unknown[];
47
+ defaults?: JBGridDefaults;
48
+ };
49
+ export type JBGridListResponse<TData> = {
50
+ data?: {
51
+ results?: TData[];
52
+ count?: number;
53
+ };
54
+ };
55
+ export type JBGridService<TData> = {
56
+ list: (currentPage: number, pageSize: number, searchText?: string) => Promise<JBGridListResponse<TData>>;
57
+ };
58
+ export type JBGridLoadDataArgs<TData> = {
59
+ lastQuery: string;
60
+ loading: boolean;
61
+ setRows: (rows: TData[]) => void;
62
+ setTotalCount: (totalCount: number) => void;
63
+ setLastQuery: (query: string) => void;
64
+ setLoading: (loading: boolean) => void;
65
+ getQueryString: () => string;
66
+ currentPage: number;
67
+ pageSize: number;
68
+ searchText: string;
69
+ };
70
+ export type JBGridProps<TData extends Record<string, unknown>> = {
71
+ gridConfig: JBGridConfig;
72
+ service?: JBGridService<TData>;
73
+ rows?: TData[];
74
+ totalCount?: number;
75
+ loading?: boolean;
76
+ isFetching?: boolean;
77
+ fetchingLabel?: string;
78
+ error?: ReactNode;
79
+ currentPage?: number;
80
+ onCurrentPageChange?: (page: number) => void;
81
+ pageSize?: number;
82
+ onPageSizeChange?: (pageSize: number) => void;
83
+ searchText: string;
84
+ onSearchTextChange: (text: string) => void;
85
+ onRowSelected?: (row: TData) => void;
86
+ loadData?: (args: JBGridLoadDataArgs<TData>) => void | Promise<void>;
87
+ loadingComponent?: ReactNode;
88
+ emptyComponent?: ReactNode;
89
+ getRowId?: (row: TData) => string | number;
90
+ paginationPosition?: 'top' | 'bottom' | 'both' | 'none';
91
+ stickyPagination?: boolean;
92
+ height?: number | string;
93
+ stickyHeader?: boolean;
94
+ infiniteScroll?: boolean;
95
+ hasMore?: boolean;
96
+ isLoadingMore?: boolean;
97
+ loadMoreThreshold?: number;
98
+ onLoadMore?: () => void;
99
+ };
100
+ export type JBModuleTextsConfig = {
101
+ moduleName?: string;
102
+ iconName?: string;
103
+ newText?: string;
104
+ editText?: string;
105
+ searchPlaceholder?: string;
106
+ goBackOnItemNotFoundText?: string;
107
+ goBackToGrid?: string;
108
+ formHeaderSubtitle?: string;
109
+ formHeaderRecordPrefix?: string;
110
+ };
111
+ export type JBModuleUrlsConfig = {
112
+ base?: string;
113
+ list?: string;
114
+ new?: string;
115
+ edit?: string;
116
+ };
117
+ export type JBModuleApiConfig = {
118
+ basePath: string;
119
+ [key: string]: unknown;
120
+ };
121
+ export type JBModuleConfig = {
122
+ urls?: JBModuleUrlsConfig;
123
+ texts?: JBModuleTextsConfig;
124
+ api?: JBModuleApiConfig;
125
+ };
126
+ export type JBGridHeaderProps = {
127
+ moduleConfig?: JBModuleConfig;
128
+ iconNameRenderer?: (iconName: string) => ReactNode;
129
+ animated?: boolean;
130
+ animationDurationMs?: number;
131
+ animationStaggerMs?: number;
132
+ animationPreset?: 'vertical' | 'sides';
133
+ breadcrumb?: ReactNode;
134
+ title?: string;
135
+ subtitle?: string;
136
+ icon?: ReactNode;
137
+ searchText: string;
138
+ onSearchTextChange: (value: string) => void;
139
+ searchPlaceholder?: string;
140
+ allowCreate?: boolean;
141
+ createButtonLabel?: string;
142
+ onCreateClick?: () => void;
143
+ rightContent?: ReactNode;
144
+ };
145
+ export type JBFormHeaderProps = {
146
+ moduleConfig?: JBModuleConfig;
147
+ iconNameRenderer?: (iconName: string) => ReactNode;
148
+ animated?: boolean;
149
+ animationDurationMs?: number;
150
+ animationStaggerMs?: number;
151
+ animationPreset?: 'vertical' | 'sides';
152
+ breadcrumb?: ReactNode;
153
+ showBackButton?: boolean;
154
+ backLabel?: string;
155
+ onBackClick?: () => void;
156
+ backContent?: ReactNode;
157
+ isNew?: boolean;
158
+ recordId?: string | number;
159
+ title?: string;
160
+ dynamicTitle?: string;
161
+ formValues?: Record<string, unknown>;
162
+ getDynamicTitle?: (args: {
163
+ isNew: boolean;
164
+ values?: Record<string, unknown>;
165
+ }) => string | undefined;
166
+ subtitle?: string;
167
+ dynamicSubtitle?: string;
168
+ getDynamicSubtitle?: (args: {
169
+ isNew: boolean;
170
+ values?: Record<string, unknown>;
171
+ }) => string | undefined;
172
+ icon?: ReactNode;
173
+ actions?: {
174
+ formDisabled?: boolean;
175
+ allowEdit?: boolean;
176
+ allowDelete?: boolean;
177
+ showDeleteWhenEditing?: boolean;
178
+ disableSave?: boolean;
179
+ disableCancel?: boolean;
180
+ disableEdit?: boolean;
181
+ disableDelete?: boolean;
182
+ saveLabel?: string;
183
+ cancelLabel?: string;
184
+ editLabel?: string;
185
+ deleteLabel?: string;
186
+ saveIcon?: ReactNode;
187
+ cancelIcon?: ReactNode;
188
+ editIcon?: ReactNode;
189
+ deleteIcon?: ReactNode;
190
+ onSave?: () => void;
191
+ onCancel?: () => void;
192
+ onStartEdit?: () => void;
193
+ onDelete?: () => void;
194
+ };
195
+ rightContent?: ReactNode;
196
+ };
197
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/grid/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from './useJBDebouncedValue';
2
+ export * from './useJBEntityFormController';
3
+ export * from './useJBRedirect';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './useJBDebouncedValue';
2
+ export * from './useJBEntityFormController';
3
+ export * from './useJBRedirect';
@@ -0,0 +1,2 @@
1
+ export declare const useJBDebouncedValue: <T>(value: T, delayMs?: number) => T;
2
+ //# sourceMappingURL=useJBDebouncedValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useJBDebouncedValue.d.ts","sourceRoot":"","sources":["../../src/hooks/useJBDebouncedValue.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAa,KAAG,CAYhE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { useEffect, useState } from 'react';
2
+ export const useJBDebouncedValue = (value, delayMs = 300) => {
3
+ const [debouncedValue, setDebouncedValue] = useState(value);
4
+ useEffect(() => {
5
+ const timeoutId = window.setTimeout(() => {
6
+ setDebouncedValue(value);
7
+ }, delayMs);
8
+ return () => window.clearTimeout(timeoutId);
9
+ }, [delayMs, value]);
10
+ return debouncedValue;
11
+ };
@@ -0,0 +1,54 @@
1
+ import { FieldValues, UseFormReset } from 'react-hook-form';
2
+ type JBEntityFormRetrieveQuery<TRetrieveData> = {
3
+ data?: TRetrieveData | null;
4
+ isError: boolean;
5
+ error?: unknown;
6
+ };
7
+ type UseJBEntityFormControllerMessages = {
8
+ loadError?: string;
9
+ saveError?: string;
10
+ deleteError?: string;
11
+ createSuccess?: string;
12
+ updateSuccess?: string;
13
+ deleteSuccess?: string;
14
+ };
15
+ type UseJBEntityFormControllerOptions<TFormValues extends FieldValues, TRetrieveData, TCreateResponse> = {
16
+ isNew: boolean;
17
+ itemId?: string;
18
+ defaultValues: TFormValues;
19
+ retrieveQuery: JBEntityFormRetrieveQuery<TRetrieveData>;
20
+ reset: UseFormReset<TFormValues>;
21
+ mapRetrieveToValues: (data: TRetrieveData) => TFormValues;
22
+ createItem: (formData: TFormValues) => Promise<TCreateResponse>;
23
+ updateItem: (id: string, formData: TFormValues) => Promise<unknown>;
24
+ deleteItem: (id: string) => Promise<unknown>;
25
+ navigateToList: () => void;
26
+ navigateToEdit: (id: string | number) => void;
27
+ onShowError: (error: unknown, fallbackMessage: string) => void;
28
+ onShowSuccess?: (message: string) => void;
29
+ getCreatedId?: (response: TCreateResponse) => string | number | undefined;
30
+ messages?: UseJBEntityFormControllerMessages;
31
+ };
32
+ type UseJBEntityFormControllerResult<TFormValues extends FieldValues> = {
33
+ formDisabled: boolean;
34
+ loadedValues: TFormValues;
35
+ deleteDialogOpen: boolean;
36
+ setDeleteDialogOpen: (open: boolean) => void;
37
+ handleStartEdit: () => void;
38
+ handleCancelEdit: () => void;
39
+ handleSave: (formData: TFormValues) => Promise<void>;
40
+ handleDelete: () => Promise<void>;
41
+ handleSubmitOnEnter: (event: {
42
+ key: string;
43
+ defaultPrevented?: boolean;
44
+ altKey?: boolean;
45
+ ctrlKey?: boolean;
46
+ metaKey?: boolean;
47
+ shiftKey?: boolean;
48
+ target: EventTarget | null;
49
+ preventDefault: () => void;
50
+ }, submit: () => void) => void;
51
+ };
52
+ export declare function useJBEntityFormController<TFormValues extends FieldValues, TRetrieveData, TCreateResponse>(options: UseJBEntityFormControllerOptions<TFormValues, TRetrieveData, TCreateResponse>): UseJBEntityFormControllerResult<TFormValues>;
53
+ export {};
54
+ //# sourceMappingURL=useJBEntityFormController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useJBEntityFormController.d.ts","sourceRoot":"","sources":["../../src/hooks/useJBEntityFormController.ts"],"names":[],"mappings":"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"}