@joelbarron/react-web-dev-kit 0.1.4 → 0.1.6

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 (84) hide show
  1. package/dist/auth/fuse/fuseIntegration.d.ts +2 -0
  2. package/dist/auth/fuse/fuseIntegration.d.ts.map +1 -1
  3. package/dist/auth/fuse/fuseIntegration.js +18 -0
  4. package/dist/auth/social/providerAuth.d.ts +1 -0
  5. package/dist/auth/social/providerAuth.d.ts.map +1 -1
  6. package/dist/auth/social/providerAuth.js +26 -2
  7. package/dist/auth/ui/AuthRoutePageWrapper.d.ts.map +1 -1
  8. package/dist/auth/ui/AuthRoutePageWrapper.js +1 -4
  9. package/dist/config/createConfig.d.ts.map +1 -1
  10. package/dist/config/createConfig.js +67 -13
  11. package/dist/config/defaults.js +1 -1
  12. package/dist/core/dialogs/JBConfirmDialog.d.ts +15 -0
  13. package/dist/core/dialogs/JBConfirmDialog.d.ts.map +1 -0
  14. package/dist/core/dialogs/JBConfirmDialog.js +6 -0
  15. package/dist/core/dialogs/index.d.ts +2 -0
  16. package/dist/core/dialogs/index.d.ts.map +1 -0
  17. package/dist/core/dialogs/index.js +1 -0
  18. package/dist/core/index.d.ts +4 -0
  19. package/dist/core/index.d.ts.map +1 -0
  20. package/dist/core/index.js +3 -0
  21. package/dist/core/layout/JBContentContainer.d.ts +27 -0
  22. package/dist/core/layout/JBContentContainer.d.ts.map +1 -0
  23. package/dist/core/layout/JBContentContainer.js +42 -0
  24. package/dist/core/layout/JBFormHeader.d.ts +3 -0
  25. package/dist/core/layout/JBFormHeader.d.ts.map +1 -0
  26. package/dist/core/layout/JBFormHeader.js +156 -0
  27. package/dist/core/layout/index.d.ts +3 -0
  28. package/dist/core/layout/index.d.ts.map +1 -0
  29. package/dist/core/layout/index.js +2 -0
  30. package/dist/core/skeletons/JBFormContentSkeleton.d.ts +5 -0
  31. package/dist/core/skeletons/JBFormContentSkeleton.d.ts.map +1 -0
  32. package/dist/core/skeletons/JBFormContentSkeleton.js +12 -0
  33. package/dist/core/skeletons/JBFormHeaderSkeleton.d.ts +6 -0
  34. package/dist/core/skeletons/JBFormHeaderSkeleton.d.ts.map +1 -0
  35. package/dist/core/skeletons/JBFormHeaderSkeleton.js +19 -0
  36. package/dist/core/skeletons/index.d.ts +3 -0
  37. package/dist/core/skeletons/index.d.ts.map +1 -0
  38. package/dist/core/skeletons/index.js +2 -0
  39. package/dist/forms/index.d.ts +1 -0
  40. package/dist/forms/index.d.ts.map +1 -1
  41. package/dist/forms/index.js +1 -0
  42. package/dist/forms/zod.d.ts +4 -0
  43. package/dist/forms/zod.d.ts.map +1 -0
  44. package/dist/forms/zod.js +9 -0
  45. package/dist/grid/JBFormHeader.d.ts +2 -0
  46. package/dist/grid/JBFormHeader.d.ts.map +1 -0
  47. package/dist/grid/JBFormHeader.js +1 -0
  48. package/dist/grid/JBGrid.d.ts.map +1 -1
  49. package/dist/grid/JBGrid.js +210 -18
  50. package/dist/grid/JBGridHeader.d.ts.map +1 -1
  51. package/dist/grid/JBGridHeader.js +84 -15
  52. package/dist/grid/JBGridLoading.d.ts +9 -0
  53. package/dist/grid/JBGridLoading.d.ts.map +1 -0
  54. package/dist/grid/JBGridLoading.js +14 -0
  55. package/dist/grid/JBGridProviders.d.ts +3 -0
  56. package/dist/grid/JBGridProviders.d.ts.map +1 -1
  57. package/dist/grid/JBGridProviders.js +16 -0
  58. package/dist/grid/JBGridSkeleton.d.ts +7 -0
  59. package/dist/grid/JBGridSkeleton.d.ts.map +1 -0
  60. package/dist/grid/JBGridSkeleton.js +6 -0
  61. package/dist/grid/defaults.d.ts +4 -0
  62. package/dist/grid/defaults.d.ts.map +1 -0
  63. package/dist/grid/defaults.js +27 -0
  64. package/dist/grid/index.d.ts +3 -0
  65. package/dist/grid/index.d.ts.map +1 -1
  66. package/dist/grid/index.js +3 -0
  67. package/dist/grid/types.d.ts +110 -3
  68. package/dist/grid/types.d.ts.map +1 -1
  69. package/dist/index.d.ts +1 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +1 -0
  72. package/dist/query/index.d.ts +1 -0
  73. package/dist/query/index.d.ts.map +1 -1
  74. package/dist/query/index.js +1 -0
  75. package/dist/query/types.d.ts +7 -0
  76. package/dist/query/types.d.ts.map +1 -0
  77. package/dist/query/types.js +1 -0
  78. package/dist/utils/errors.d.ts +10 -0
  79. package/dist/utils/errors.d.ts.map +1 -0
  80. package/dist/utils/errors.js +55 -0
  81. package/dist/utils/index.d.ts +1 -0
  82. package/dist/utils/index.d.ts.map +1 -1
  83. package/dist/utils/index.js +1 -0
  84. package/package.json +7 -1
@@ -0,0 +1,27 @@
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
+ allowSelection: true,
11
+ allowSelectAll: false,
12
+ showSelectionColumn: false,
13
+ allowFiltering: false,
14
+ advancedFiltering: false,
15
+ allowGrouping: true,
16
+ filters: [],
17
+ sorting: [],
18
+ grouping: [],
19
+ expandedGroups: [],
20
+ pageSizes: [10, 30, 50, 100, 200, 500, 1000]
21
+ };
22
+ export function resolveGridDefaults(defaults) {
23
+ return {
24
+ ...DEFAULT_GRID_DEFAULTS,
25
+ ...(defaults ?? {})
26
+ };
27
+ }
@@ -2,4 +2,7 @@ export * from './types';
2
2
  export * from './JBGridProviders';
3
3
  export * from './JBGridHeader';
4
4
  export * from './JBGrid';
5
+ export * from './JBGridSkeleton';
6
+ export * from './JBGridLoading';
7
+ export * from './defaults';
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
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"}
@@ -2,3 +2,6 @@ export * from './types';
2
2
  export * from './JBGridProviders';
3
3
  export * from './JBGridHeader';
4
4
  export * from './JBGrid';
5
+ export * from './JBGridSkeleton';
6
+ export * from './JBGridLoading';
7
+ export * from './defaults';
@@ -1,6 +1,11 @@
1
1
  import { ReactNode } from 'react';
2
2
  export type JBGridDefaults = {
3
- pageSize: number;
3
+ pageSize?: number;
4
+ virtualScrolling?: boolean;
5
+ estimatedRowHeight?: number;
6
+ virtualTableHeight?: number;
7
+ virtualTableHeightMode?: 'fixed' | 'fill';
8
+ virtualTableHeightRatio?: number;
4
9
  allowSorting?: boolean;
5
10
  allowColumnResizing?: boolean;
6
11
  allowSelection?: boolean;
@@ -30,10 +35,11 @@ export type JBGridConfig = {
30
35
  imageColumns?: string[];
31
36
  booleanColumns?: string[];
32
37
  currencyColumns?: string[];
38
+ dateColumns?: string[];
33
39
  totalSummaryItems?: unknown[];
34
40
  groupSummaryItems?: unknown[];
35
41
  tableColumnExtensions?: unknown[];
36
- defaults: JBGridDefaults;
42
+ defaults?: JBGridDefaults;
37
43
  };
38
44
  export type JBGridListResponse<TData> = {
39
45
  data?: {
@@ -60,15 +66,65 @@ export type JBGridProps<TData extends Record<string, unknown>> = {
60
66
  gridConfig: JBGridConfig;
61
67
  service?: JBGridService<TData>;
62
68
  rows?: TData[];
69
+ totalCount?: number;
70
+ loading?: boolean;
71
+ error?: ReactNode;
72
+ currentPage?: number;
73
+ onCurrentPageChange?: (page: number) => void;
74
+ pageSize?: number;
75
+ onPageSizeChange?: (pageSize: number) => void;
63
76
  searchText: string;
64
77
  onSearchTextChange: (text: string) => void;
65
78
  onRowSelected?: (row: TData) => void;
66
79
  loadData?: (args: JBGridLoadDataArgs<TData>) => void | Promise<void>;
67
80
  loadingComponent?: ReactNode;
81
+ emptyComponent?: ReactNode;
68
82
  getRowId?: (row: TData) => string | number;
83
+ paginationPosition?: 'top' | 'bottom' | 'both' | 'none';
84
+ stickyPagination?: boolean;
85
+ height?: number | string;
86
+ stickyHeader?: boolean;
87
+ infiniteScroll?: boolean;
88
+ hasMore?: boolean;
89
+ isLoadingMore?: boolean;
90
+ loadMoreThreshold?: number;
91
+ onLoadMore?: () => void;
92
+ };
93
+ export type JBModuleTextsConfig = {
94
+ moduleName?: string;
95
+ iconName?: string;
96
+ newText?: string;
97
+ editText?: string;
98
+ searchPlaceholder?: string;
99
+ goBackOnItemNotFoundText?: string;
100
+ goBackToGrid?: string;
101
+ formHeaderSubtitle?: string;
102
+ };
103
+ export type JBModuleUrlsConfig = {
104
+ base?: string;
105
+ list?: string;
106
+ new?: string;
107
+ edit?: string;
108
+ };
109
+ export type JBModuleApiConfig = {
110
+ basePath: string;
111
+ [key: string]: unknown;
112
+ };
113
+ export type JBModuleConfig = {
114
+ urls?: JBModuleUrlsConfig;
115
+ texts?: JBModuleTextsConfig;
116
+ api?: JBModuleApiConfig;
69
117
  };
70
118
  export type JBGridHeaderProps = {
71
- title: string;
119
+ moduleConfig?: JBModuleConfig;
120
+ iconNameRenderer?: (iconName: string) => ReactNode;
121
+ animated?: boolean;
122
+ animationDurationMs?: number;
123
+ animationStaggerMs?: number;
124
+ animationPreset?: 'vertical' | 'sides';
125
+ breadcrumb?: ReactNode;
126
+ title?: string;
127
+ subtitle?: string;
72
128
  icon?: ReactNode;
73
129
  searchText: string;
74
130
  onSearchTextChange: (value: string) => void;
@@ -78,4 +134,55 @@ export type JBGridHeaderProps = {
78
134
  onCreateClick?: () => void;
79
135
  rightContent?: ReactNode;
80
136
  };
137
+ export type JBFormHeaderProps = {
138
+ moduleConfig?: JBModuleConfig;
139
+ iconNameRenderer?: (iconName: string) => ReactNode;
140
+ animated?: boolean;
141
+ animationDurationMs?: number;
142
+ animationStaggerMs?: number;
143
+ animationPreset?: 'vertical' | 'sides';
144
+ breadcrumb?: ReactNode;
145
+ showBackButton?: boolean;
146
+ backLabel?: string;
147
+ onBackClick?: () => void;
148
+ backContent?: ReactNode;
149
+ isNew?: boolean;
150
+ title?: string;
151
+ dynamicTitle?: string;
152
+ formValues?: Record<string, unknown>;
153
+ getDynamicTitle?: (args: {
154
+ isNew: boolean;
155
+ values?: Record<string, unknown>;
156
+ }) => string | undefined;
157
+ subtitle?: string;
158
+ dynamicSubtitle?: string;
159
+ getDynamicSubtitle?: (args: {
160
+ isNew: boolean;
161
+ values?: Record<string, unknown>;
162
+ }) => string | undefined;
163
+ icon?: ReactNode;
164
+ actions?: {
165
+ formDisabled?: boolean;
166
+ allowEdit?: boolean;
167
+ allowDelete?: boolean;
168
+ showDeleteWhenEditing?: boolean;
169
+ disableSave?: boolean;
170
+ disableCancel?: boolean;
171
+ disableEdit?: boolean;
172
+ disableDelete?: boolean;
173
+ saveLabel?: string;
174
+ cancelLabel?: string;
175
+ editLabel?: string;
176
+ deleteLabel?: string;
177
+ saveIcon?: ReactNode;
178
+ cancelIcon?: ReactNode;
179
+ editIcon?: ReactNode;
180
+ deleteIcon?: ReactNode;
181
+ onSave?: () => void;
182
+ onCancel?: () => void;
183
+ onStartEdit?: () => void;
184
+ onDelete?: () => void;
185
+ };
186
+ rightContent?: ReactNode;
187
+ };
81
188
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/grid/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/grid/types.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './auth';
2
2
  export * from './config';
3
+ export * from './core';
3
4
  export * from './forms';
4
5
  export * from './grid';
5
6
  export * from './hooks';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './auth';
2
2
  export * from './config';
3
+ export * from './core';
3
4
  export * from './forms';
4
5
  export * from './grid';
5
6
  export * from './hooks';
@@ -1,3 +1,4 @@
1
1
  export * from './http';
2
2
  export * from './createQueryClient';
3
+ export * from './types';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './http';
2
2
  export * from './createQueryClient';
3
+ export * from './types';
@@ -0,0 +1,7 @@
1
+ export type PaginatedResponse<T> = {
2
+ count: number;
3
+ next: string | null;
4
+ previous: string | null;
5
+ results: T[];
6
+ };
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/query/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,CAAC,EAAE,CAAC;CACd,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ export type ApiErrorData = {
2
+ detail?: string;
3
+ message?: string;
4
+ nonFieldErrors?: string[];
5
+ non_field_errors?: string[];
6
+ errors?: Record<string, unknown>;
7
+ [key: string]: unknown;
8
+ };
9
+ export declare const getApiErrorMessage: (error: unknown, fallback: string) => string;
10
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAkBF,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,EAAE,UAAU,MAAM,KAAG,MAgDrE,CAAC"}
@@ -0,0 +1,55 @@
1
+ const isRecord = (value) => typeof value === 'object' && value !== null;
2
+ const readFirstString = (value) => {
3
+ if (typeof value === 'string' && value.trim())
4
+ return value;
5
+ if (Array.isArray(value)) {
6
+ const firstString = value.find((item) => typeof item === 'string' && item.trim());
7
+ return typeof firstString === 'string' ? firstString : undefined;
8
+ }
9
+ if (isRecord(value)) {
10
+ if (typeof value.detail === 'string' && value.detail.trim())
11
+ return value.detail;
12
+ if (typeof value.message === 'string' && value.message.trim())
13
+ return value.message;
14
+ }
15
+ return undefined;
16
+ };
17
+ export const getApiErrorMessage = (error, fallback) => {
18
+ const raw = error;
19
+ const payload = (raw.response?.data ?? raw.data);
20
+ if (!payload) {
21
+ return fallback;
22
+ }
23
+ if (typeof payload === 'string' && payload.trim()) {
24
+ return payload;
25
+ }
26
+ if (!isRecord(payload)) {
27
+ return raw.message?.trim() || fallback;
28
+ }
29
+ const data = payload;
30
+ const detail = readFirstString(data.detail);
31
+ if (detail)
32
+ return detail;
33
+ const message = readFirstString(data.message);
34
+ if (message)
35
+ return message;
36
+ const nonField = readFirstString(data.nonFieldErrors) ?? readFirstString(data.non_field_errors);
37
+ if (nonField)
38
+ return nonField;
39
+ if (isRecord(data.errors)) {
40
+ for (const value of Object.values(data.errors)) {
41
+ const nestedMessage = readFirstString(value);
42
+ if (nestedMessage)
43
+ return nestedMessage;
44
+ }
45
+ }
46
+ for (const [key, value] of Object.entries(data)) {
47
+ if (['detail', 'message', 'nonFieldErrors', 'non_field_errors', 'errors'].includes(key)) {
48
+ continue;
49
+ }
50
+ const nestedMessage = readFirstString(value);
51
+ if (nestedMessage)
52
+ return nestedMessage;
53
+ }
54
+ return raw.message?.trim() || fallback;
55
+ };
@@ -1,4 +1,5 @@
1
1
  export * from './query';
2
2
  export * from './format';
3
3
  export * from './regex';
4
+ export * from './errors';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './query';
2
2
  export * from './format';
3
3
  export * from './regex';
4
+ export * from './errors';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joelbarron/react-web-dev-kit",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "private": false,
5
5
  "sideEffects": false,
6
6
  "main": "dist/index.js",
@@ -22,6 +22,11 @@
22
22
  "import": "./dist/config/index.js",
23
23
  "default": "./dist/config/index.js"
24
24
  },
25
+ "./core": {
26
+ "types": "./dist/core/index.d.ts",
27
+ "import": "./dist/core/index.js",
28
+ "default": "./dist/core/index.js"
29
+ },
25
30
  "./forms": {
26
31
  "types": "./dist/forms/index.d.ts",
27
32
  "import": "./dist/forms/index.js",
@@ -72,6 +77,7 @@
72
77
  "@hookform/resolvers": ">=5",
73
78
  "zod": ">=4",
74
79
  "@mui/material": ">=5",
80
+ "@mui/icons-material": ">=5",
75
81
  "@mui/x-date-pickers": ">=6",
76
82
  "@devexpress/dx-react-grid": ">=4",
77
83
  "@devexpress/dx-react-grid-material-ui": ">=4"