@pautena/react-design-system 0.2.0 → 0.3.1

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 (65) hide show
  1. package/dist/cjs/index.js +13 -4
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/components/value-displays/index.d.ts +1 -0
  4. package/dist/cjs/types/components/value-displays/value-datetime/index.d.ts +1 -0
  5. package/dist/cjs/types/components/value-displays/value-datetime/value-datetime.d.ts +18 -0
  6. package/dist/cjs/types/generators/generators.mock.d.ts +9 -5
  7. package/dist/cjs/types/generators/generators.model.d.ts +25 -1
  8. package/dist/cjs/types/generators/model-router/index.d.ts +1 -0
  9. package/dist/cjs/types/generators/model-router/model-router.types.d.ts +1 -0
  10. package/dist/cjs/types/generators/model-router/screens/details-screen.d.ts +1 -1
  11. package/dist/cjs/types/hooks/index.d.ts +1 -0
  12. package/dist/cjs/types/hooks/routing/index.d.ts +1 -0
  13. package/dist/cjs/types/hooks/routing/routing.hooks.d.ts +5 -0
  14. package/dist/cjs/types/providers/notification-center/index.d.ts +1 -0
  15. package/dist/cjs/types/providers/notification-center/notification-center.hooks.d.ts +6 -0
  16. package/dist/esm/index.js +13 -4
  17. package/dist/esm/index.js.map +1 -1
  18. package/dist/esm/types/components/value-displays/index.d.ts +1 -0
  19. package/dist/esm/types/components/value-displays/value-datetime/index.d.ts +1 -0
  20. package/dist/esm/types/components/value-displays/value-datetime/value-datetime.d.ts +18 -0
  21. package/dist/esm/types/generators/generators.mock.d.ts +9 -5
  22. package/dist/esm/types/generators/generators.model.d.ts +25 -1
  23. package/dist/esm/types/generators/model-router/index.d.ts +1 -0
  24. package/dist/esm/types/generators/model-router/model-router.types.d.ts +1 -0
  25. package/dist/esm/types/generators/model-router/screens/details-screen.d.ts +1 -1
  26. package/dist/esm/types/hooks/index.d.ts +1 -0
  27. package/dist/esm/types/hooks/routing/index.d.ts +1 -0
  28. package/dist/esm/types/hooks/routing/routing.hooks.d.ts +5 -0
  29. package/dist/esm/types/providers/notification-center/index.d.ts +1 -0
  30. package/dist/esm/types/providers/notification-center/notification-center.hooks.d.ts +6 -0
  31. package/dist/index.d.ts +54 -2
  32. package/package.json +6 -2
  33. package/src/components/value-displays/index.ts +1 -0
  34. package/src/components/value-displays/value-datetime/index.ts +1 -0
  35. package/src/components/value-displays/value-datetime/value-datetime.stories.tsx +21 -0
  36. package/src/components/value-displays/value-datetime/value-datetime.test.tsx +23 -0
  37. package/src/components/value-displays/value-datetime/value-datetime.tsx +40 -0
  38. package/src/components/value-displays/value-text/{value-test.test.tsx → value-text.test.tsx} +0 -0
  39. package/src/generators/generators.mock.ts +56 -17
  40. package/src/generators/generators.model.ts +39 -1
  41. package/src/generators/model-form/model-form.stories.tsx +2 -2
  42. package/src/generators/model-form/model-form.test.tsx +39 -22
  43. package/src/generators/model-form/model-form.tsx +220 -33
  44. package/src/generators/model-router/index.ts +1 -0
  45. package/src/generators/model-router/model-router.test.tsx +338 -70
  46. package/src/generators/model-router/model-router.tsx +1 -1
  47. package/src/generators/model-router/model-router.types.ts +4 -0
  48. package/src/generators/model-router/screens/add-screen.tsx +16 -20
  49. package/src/generators/model-router/screens/details-screen.tsx +3 -2
  50. package/src/generators/model-router/screens/list-screen.tsx +17 -0
  51. package/src/generators/model-router/screens/update-screen.tsx +22 -13
  52. package/src/generators/model-router/stories/model-router.stories.tsx +54 -3
  53. package/src/generators/object-details/object-details.tsx +5 -4
  54. package/src/hooks/index.ts +1 -0
  55. package/src/hooks/routing/index.ts +1 -0
  56. package/src/hooks/routing/routing.hooks.ts +23 -0
  57. package/src/hooks/routing/routing.test.tsx +83 -0
  58. package/src/providers/notification-center/index.ts +1 -0
  59. package/src/providers/notification-center/notification-center.hooks.ts +23 -0
  60. package/src/providers/notification-center/notification-center.test.tsx +87 -1
  61. package/src/storybook.tsx +10 -0
  62. package/src/tests/actions.ts +43 -0
  63. package/src/tests/assertions.ts +75 -1
  64. package/src/tests/index.ts +1 -0
  65. package/src/tests/testing-library.tsx +5 -1
@@ -1,4 +1,5 @@
1
1
  export * from "./value-text";
2
2
  export * from "./value-card";
3
3
  export * from "./value-boolean";
4
+ export * from "./value-datetime";
4
5
  export * from "./group-value-card";
@@ -0,0 +1 @@
1
+ export * from "./value-datetime";
@@ -0,0 +1,18 @@
1
+ export interface ValueDatetimeProps {
2
+ /**
3
+ * Name of the displayed value
4
+ */
5
+ label: string;
6
+ /**
7
+ * Value displayed
8
+ */
9
+ value: Date;
10
+ /**
11
+ * Datetime format
12
+ */
13
+ format: string;
14
+ }
15
+ /**
16
+ * Displays a formated datetime with a label
17
+ */
18
+ export declare const ValueDatetime: ({ label, value, format: fmt }: ValueDatetimeProps) => JSX.Element;
@@ -1,4 +1,7 @@
1
- import { Model } from "./generators.model";
1
+ import { BasicModelInstance, Model } from "./generators.model";
2
+ export declare const BirthDateFormat = "dd/MM/yyyy";
3
+ export declare const ReturnTimeFormat = "HH:mm";
4
+ export declare const TradeDateFormat = "dd/MM/yyyy HH:mm";
2
5
  export declare const mockModel: Model;
3
6
  export interface MockInstance {
4
7
  id: string;
@@ -7,18 +10,19 @@ export interface MockInstance {
7
10
  lastName: string;
8
11
  gender: string;
9
12
  age: number;
10
- birthDate: string;
13
+ birthDate: Date;
11
14
  car: {
12
15
  model: string;
13
16
  manufacturer: string;
14
17
  color: string;
15
- type: string;
18
+ type: string[];
16
19
  vin: string;
17
20
  vrm: string;
21
+ returnTime: Date;
18
22
  };
19
23
  quantity: number;
20
24
  available: boolean;
21
25
  currency: string;
22
- tradeDate: string;
26
+ tradeDate: Date;
23
27
  }
24
- export declare const createModelInstance: <T extends BasicData>(model: Model, seed?: number) => T;
28
+ export declare const createModelInstance: <T extends BasicModelInstance>(model: Model, seed?: number) => T;
@@ -20,7 +20,30 @@ declare type NumberField = {
20
20
  declare type BooleanField = {
21
21
  type: "boolean";
22
22
  };
23
- declare type SingleFields = StringField | NumberField | BooleanField;
23
+ declare type EnumField = {
24
+ type: "enum";
25
+ value: string[];
26
+ };
27
+ declare type MultiEnumField = {
28
+ type: "multienum";
29
+ value: string[];
30
+ };
31
+ declare type DateField = {
32
+ type: "date";
33
+ format: string;
34
+ default: any;
35
+ };
36
+ declare type TimeField = {
37
+ type: "time";
38
+ format: string;
39
+ default: any;
40
+ };
41
+ declare type DatetimeField = {
42
+ type: "datetime";
43
+ format: string;
44
+ default: any;
45
+ };
46
+ declare type SingleFields = StringField | NumberField | BooleanField | EnumField | MultiEnumField | DateField | TimeField | DatetimeField;
24
47
  export declare type GroupField = {
25
48
  type: "group";
26
49
  value: (Base & Breakpoints & SingleFields)[];
@@ -34,4 +57,5 @@ export interface BasicModelInstance {
34
57
  id: string;
35
58
  [key: string]: any;
36
59
  }
60
+ export declare type ModelFieldTypes = "string" | "number" | "boolean" | "enum" | "multienum";
37
61
  export {};
@@ -1 +1,2 @@
1
1
  export * from "./model-router";
2
+ export * from "./model-router.types";
@@ -6,3 +6,4 @@ export interface RequestState {
6
6
  }
7
7
  export declare const IdleRequest: RequestState;
8
8
  export declare const LoadingRequest: RequestState;
9
+ export declare const SuccessRequest: RequestState;
@@ -17,4 +17,4 @@ export interface DetailsScreenProps<T extends BasicModelInstance> extends BaseSc
17
17
  */
18
18
  detailsItem?: T;
19
19
  }
20
- export declare const DetailsScreen: <T extends BasicModelInstance>({ model, modelName, onRequestItem, itemRequest, detailsItem, }: DetailsScreenProps<T>) => JSX.Element;
20
+ export declare const DetailsScreen: <T extends BasicModelInstance>({ model, modelName, basePath, onRequestItem, itemRequest, detailsItem, }: DetailsScreenProps<T>) => JSX.Element;
@@ -0,0 +1 @@
1
+ export * from "./routing";
@@ -0,0 +1 @@
1
+ export * from "./routing.hooks";
@@ -0,0 +1,5 @@
1
+ export interface NavigateWhenValueChangesOptions<T> {
2
+ from: T;
3
+ to: T;
4
+ }
5
+ export declare const useNavigateWhenValueChanges: <T>(path: string, value: T | undefined, { from, to }: NavigateWhenValueChangesOptions<T>) => void;
@@ -1,2 +1,3 @@
1
1
  export * from "./notification-center.provider";
2
2
  export * from "./notification-center.context";
3
+ export * from "./notification-center.hooks";
@@ -0,0 +1,6 @@
1
+ import { Notification } from "./notification-center.context";
2
+ export interface NotifyWhenValueChangesOptions<T> {
3
+ from: T;
4
+ to: T;
5
+ }
6
+ export declare const useNotifyWhenValueChanges: <T>(notification: Notification, value: T | undefined, { from, to }: NotifyWhenValueChangesOptions<T>) => void;