@pautena/react-design-system 0.4.7 → 0.5.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 (146) hide show
  1. package/dist/cjs/index.js +4 -4
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/components/alerts/expandable-alert/expandable-alert.d.ts +11 -0
  4. package/dist/cjs/types/components/alerts/expandable-alert/index.d.ts +1 -0
  5. package/dist/cjs/types/components/alerts/index.d.ts +1 -0
  6. package/dist/cjs/types/components/data-display/board/board.d.ts +10 -0
  7. package/dist/cjs/types/components/data-display/board/index.d.ts +1 -0
  8. package/dist/cjs/types/components/data-display/index.d.ts +2 -0
  9. package/dist/cjs/types/components/data-display/markdown/index.d.ts +1 -0
  10. package/dist/cjs/types/components/data-display/markdown/markdown.d.ts +7 -0
  11. package/dist/cjs/types/components/dialogs/bootstrap-dialog/bootstrap-dialog.d.ts +2 -0
  12. package/dist/cjs/types/components/dialogs/bootstrap-dialog/index.d.ts +1 -0
  13. package/dist/cjs/types/components/dialogs/confirm-dialog/confirm-dialog.d.ts +10 -0
  14. package/dist/cjs/types/components/dialogs/confirm-dialog/index.d.ts +1 -0
  15. package/dist/cjs/types/components/dialogs/dialog-hooks/index.d.ts +1 -0
  16. package/dist/cjs/types/components/dialogs/dialog-hooks/use-dialog.d.ts +7 -0
  17. package/dist/cjs/types/components/dialogs/dialog.types.d.ts +26 -0
  18. package/dist/cjs/types/components/dialogs/form-dialog/form-dialog.d.ts +10 -0
  19. package/dist/cjs/types/components/dialogs/form-dialog/index.d.ts +1 -0
  20. package/dist/cjs/types/components/dialogs/index.d.ts +5 -0
  21. package/dist/cjs/types/components/index.d.ts +2 -0
  22. package/dist/cjs/types/components/inputs/enhanced-autocomplete/enhanced-autocomplete.d.ts +10 -0
  23. package/dist/cjs/types/components/inputs/enhanced-autocomplete/index.d.ts +1 -0
  24. package/dist/cjs/types/components/inputs/enhanced-text-field/enhanced-text-field.d.ts +7 -0
  25. package/dist/cjs/types/components/inputs/enhanced-text-field/index.d.ts +1 -0
  26. package/dist/cjs/types/components/inputs/index.d.ts +1 -0
  27. package/dist/cjs/types/components/value-displays/index.d.ts +2 -1
  28. package/dist/cjs/types/components/value-displays/value-base/index.d.ts +2 -0
  29. package/dist/cjs/types/components/value-displays/{value-displays.types.d.ts → value-base/value-displays.types.d.ts} +10 -0
  30. package/dist/cjs/types/components/value-displays/value-base/value-edit.d.ts +19 -0
  31. package/dist/cjs/types/components/value-displays/value-boolean/value-boolean.d.ts +3 -3
  32. package/dist/cjs/types/components/value-displays/value-datetime/value-datetime.d.ts +8 -3
  33. package/dist/cjs/types/components/value-displays/value-image/value-image.d.ts +1 -1
  34. package/dist/cjs/types/components/value-displays/value-rating/value-rating.d.ts +3 -3
  35. package/dist/cjs/types/components/value-displays/value-text/value-text.d.ts +3 -17
  36. package/dist/esm/index.js +4 -4
  37. package/dist/esm/index.js.map +1 -1
  38. package/dist/esm/types/components/alerts/expandable-alert/expandable-alert.d.ts +11 -0
  39. package/dist/esm/types/components/alerts/expandable-alert/index.d.ts +1 -0
  40. package/dist/esm/types/components/alerts/index.d.ts +1 -0
  41. package/dist/esm/types/components/data-display/board/board.d.ts +10 -0
  42. package/dist/esm/types/components/data-display/board/index.d.ts +1 -0
  43. package/dist/esm/types/components/data-display/index.d.ts +2 -0
  44. package/dist/esm/types/components/data-display/markdown/index.d.ts +1 -0
  45. package/dist/esm/types/components/data-display/markdown/markdown.d.ts +7 -0
  46. package/dist/esm/types/components/dialogs/bootstrap-dialog/bootstrap-dialog.d.ts +2 -0
  47. package/dist/esm/types/components/dialogs/bootstrap-dialog/index.d.ts +1 -0
  48. package/dist/esm/types/components/dialogs/confirm-dialog/confirm-dialog.d.ts +10 -0
  49. package/dist/esm/types/components/dialogs/confirm-dialog/index.d.ts +1 -0
  50. package/dist/esm/types/components/dialogs/dialog-hooks/index.d.ts +1 -0
  51. package/dist/esm/types/components/dialogs/dialog-hooks/use-dialog.d.ts +7 -0
  52. package/dist/esm/types/components/dialogs/dialog.types.d.ts +26 -0
  53. package/dist/esm/types/components/dialogs/form-dialog/form-dialog.d.ts +10 -0
  54. package/dist/esm/types/components/dialogs/form-dialog/index.d.ts +1 -0
  55. package/dist/esm/types/components/dialogs/index.d.ts +5 -0
  56. package/dist/esm/types/components/index.d.ts +2 -0
  57. package/dist/esm/types/components/inputs/enhanced-autocomplete/enhanced-autocomplete.d.ts +10 -0
  58. package/dist/esm/types/components/inputs/enhanced-autocomplete/index.d.ts +1 -0
  59. package/dist/esm/types/components/inputs/enhanced-text-field/enhanced-text-field.d.ts +7 -0
  60. package/dist/esm/types/components/inputs/enhanced-text-field/index.d.ts +1 -0
  61. package/dist/esm/types/components/inputs/index.d.ts +1 -0
  62. package/dist/esm/types/components/value-displays/index.d.ts +2 -1
  63. package/dist/esm/types/components/value-displays/value-base/index.d.ts +2 -0
  64. package/dist/esm/types/components/value-displays/{value-displays.types.d.ts → value-base/value-displays.types.d.ts} +10 -0
  65. package/dist/esm/types/components/value-displays/value-base/value-edit.d.ts +19 -0
  66. package/dist/esm/types/components/value-displays/value-boolean/value-boolean.d.ts +3 -3
  67. package/dist/esm/types/components/value-displays/value-datetime/value-datetime.d.ts +8 -3
  68. package/dist/esm/types/components/value-displays/value-image/value-image.d.ts +1 -1
  69. package/dist/esm/types/components/value-displays/value-rating/value-rating.d.ts +3 -3
  70. package/dist/esm/types/components/value-displays/value-text/value-text.d.ts +3 -17
  71. package/dist/index.d.ts +130 -22
  72. package/package.json +34 -32
  73. package/src/components/alerts/alerts.stories.mdx +10 -0
  74. package/src/components/alerts/expandable-alert/expandable-alert.stories.tsx +48 -0
  75. package/src/components/alerts/expandable-alert/expandable-alert.test.tsx +114 -0
  76. package/src/components/alerts/expandable-alert/expandable-alert.tsx +71 -0
  77. package/src/components/alerts/expandable-alert/index.ts +1 -0
  78. package/src/components/alerts/index.ts +1 -0
  79. package/src/components/components.stories.mdx +2 -0
  80. package/src/components/data-display/board/board.stories.tsx +54 -0
  81. package/src/components/data-display/board/board.test.tsx +100 -0
  82. package/src/components/data-display/board/board.tsx +63 -0
  83. package/src/components/data-display/board/index.ts +1 -0
  84. package/src/components/data-display/data-display.stories.mdx +2 -0
  85. package/src/components/data-display/index.ts +2 -0
  86. package/src/components/data-display/markdown/index.ts +1 -0
  87. package/src/components/data-display/markdown/markdown.stories.tsx +25 -0
  88. package/src/components/data-display/markdown/markdown.test.tsx +64 -0
  89. package/src/components/data-display/markdown/markdown.tsx +38 -0
  90. package/src/components/dialogs/bootstrap-dialog/bootstrap-dialog.stories.tsx +81 -0
  91. package/src/components/dialogs/bootstrap-dialog/bootstrap-dialog.test.tsx +233 -0
  92. package/src/components/dialogs/bootstrap-dialog/bootstrap-dialog.tsx +95 -0
  93. package/src/components/dialogs/bootstrap-dialog/index.ts +1 -0
  94. package/src/components/dialogs/confirm-dialog/confirm-dialog.stories.tsx +43 -0
  95. package/src/components/dialogs/confirm-dialog/confirm-dialog.test.tsx +150 -0
  96. package/src/components/dialogs/confirm-dialog/confirm-dialog.tsx +51 -0
  97. package/src/components/dialogs/confirm-dialog/index.ts +1 -0
  98. package/src/components/dialogs/dialog-hooks/index.ts +1 -0
  99. package/src/components/dialogs/dialog-hooks/use-dialog.ts +10 -0
  100. package/src/components/dialogs/dialog.types.ts +27 -0
  101. package/src/components/dialogs/dialogs.stories.mdx +12 -0
  102. package/src/components/dialogs/form-dialog/form-dialog.stories.tsx +52 -0
  103. package/src/components/dialogs/form-dialog/form-dialog.test.tsx +164 -0
  104. package/src/components/dialogs/form-dialog/form-dialog.tsx +69 -0
  105. package/src/components/dialogs/form-dialog/index.ts +1 -0
  106. package/src/components/dialogs/index.ts +5 -0
  107. package/src/components/drawers/drawer-collapsable-item/drawer-collapsable-item.tsx +1 -3
  108. package/src/components/index.ts +2 -0
  109. package/src/components/inputs/enhanced-autocomplete/enhanced-autocomplete.stories.tsx +109 -0
  110. package/src/components/inputs/enhanced-autocomplete/enhanced-autocomplete.test.tsx +74 -0
  111. package/src/components/inputs/enhanced-autocomplete/enhanced-autocomplete.tsx +64 -0
  112. package/src/components/inputs/enhanced-autocomplete/index.ts +1 -0
  113. package/src/components/inputs/enhanced-text-field/enhanced-text-field.stories.tsx +120 -0
  114. package/src/components/inputs/enhanced-text-field/enhanced-text-field.test.tsx +63 -0
  115. package/src/components/inputs/enhanced-text-field/enhanced-text-field.tsx +101 -0
  116. package/src/components/inputs/enhanced-text-field/index.ts +1 -0
  117. package/src/components/inputs/index.ts +1 -0
  118. package/src/components/inputs/inputs.stories.mdx +2 -0
  119. package/src/components/value-displays/index.ts +2 -1
  120. package/src/components/value-displays/value-base/index.ts +2 -0
  121. package/src/components/value-displays/{value-displays.types.ts → value-base/value-displays.types.ts} +12 -2
  122. package/src/components/value-displays/value-base/value-edit.tsx +59 -0
  123. package/src/components/value-displays/value-boolean/value-boolean.stories.tsx +7 -0
  124. package/src/components/value-displays/value-boolean/value-boolean.test.tsx +81 -2
  125. package/src/components/value-displays/value-boolean/value-boolean.tsx +33 -8
  126. package/src/components/value-displays/value-datetime/value-datetime.stories.tsx +29 -2
  127. package/src/components/value-displays/value-datetime/value-datetime.test.tsx +103 -5
  128. package/src/components/value-displays/value-datetime/value-datetime.tsx +67 -6
  129. package/src/components/value-displays/value-image/value-image.tsx +1 -1
  130. package/src/components/value-displays/value-rating/value-rating.stories.tsx +8 -0
  131. package/src/components/value-displays/value-rating/value-rating.test.tsx +71 -2
  132. package/src/components/value-displays/value-rating/value-rating.tsx +29 -5
  133. package/src/components/value-displays/value-text/value-text.test.tsx +5 -8
  134. package/src/components/value-displays/value-text/value-text.tsx +16 -60
  135. package/src/generators/generators.mock.ts +3 -14
  136. package/src/generators/model-form/model-form.tsx +3 -6
  137. package/src/storybook.tsx +34 -2
  138. package/src/tests/actions.ts +3 -2
  139. package/src/tests/assertions.ts +17 -5
  140. package/src/tests/datatable-placeholder/datatable-placeholder.tsx +2 -4
  141. package/src/tests/mocks/markdown.mock.ts +25 -0
  142. package/src/types/index.d.ts +6 -0
  143. package/dist/cjs/types/generators/generators.model.test.d.ts +0 -1
  144. package/dist/cjs/types/utils/arrays.test.d.ts +0 -1
  145. package/dist/esm/types/generators/generators.model.test.d.ts +0 -1
  146. package/dist/esm/types/utils/arrays.test.d.ts +0 -1
@@ -0,0 +1,11 @@
1
+ import { AlertColor } from "@mui/material";
2
+ import React from "react";
3
+ export interface ExpandableAlertProps {
4
+ severity: AlertColor;
5
+ iconMapping?: Partial<Record<AlertColor, React.ReactNode>>;
6
+ title?: string;
7
+ message: string;
8
+ metadata?: string | string[];
9
+ onClose: () => void;
10
+ }
11
+ export declare const ExpandableAlert: ({ severity, iconMapping, title, message, metadata, onClose, }: ExpandableAlertProps) => JSX.Element;
@@ -0,0 +1 @@
1
+ export * from "./expandable-alert";
@@ -0,0 +1 @@
1
+ export * from "./expandable-alert";
@@ -0,0 +1,10 @@
1
+ import { SxProps, Theme } from "@mui/material";
2
+ import { PropsWithChildren } from "react";
3
+ export type BoardProps = PropsWithChildren<{
4
+ markdown?: string;
5
+ content?: string | string[];
6
+ spacing?: 0 | 1 | 2 | 3 | 4 | 5;
7
+ timeoutCopyText?: number;
8
+ sx?: SxProps<Theme>;
9
+ }>;
10
+ export declare const Board: ({ markdown: markdownProps, content: contentProp, spacing, timeoutCopyText, children, sx, }: BoardProps) => JSX.Element;
@@ -0,0 +1 @@
1
+ export * from "./board";
@@ -1,3 +1,5 @@
1
1
  export * from "./bullet";
2
2
  export * from "./label";
3
3
  export * from "./header";
4
+ export * from "./board";
5
+ export * from "./markdown";
@@ -0,0 +1 @@
1
+ export * from "./markdown";
@@ -0,0 +1,7 @@
1
+ import { MarkdownToJSX } from "markdown-to-jsx";
2
+ export interface MarkdownProps {
3
+ content: string;
4
+ options?: MarkdownToJSX.Options;
5
+ }
6
+ export declare const markdownDefaultOptions: MarkdownToJSX.Options;
7
+ export declare const Markdown: ({ content, options }: MarkdownProps) => JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { BootstrapDialogDialogProps } from "../dialog.types";
2
+ export declare const BootstrapDialog: ({ open, title, component, componentProps, disabled, actions, children, loading, cancelable, callCloseWhenCancel, acceptable, acceptText, cancelText, onAccept, onCancel, onClose, acceptType, }: BootstrapDialogDialogProps) => JSX.Element;
@@ -0,0 +1 @@
1
+ export * from "./bootstrap-dialog";
@@ -0,0 +1,10 @@
1
+ import { BootstrapDialogDialogProps } from "../dialog.types";
2
+ type OmitBaseDialogProps = "cancelable" | "acceptable" | "onAccept" | "onCancel" | "onClose" | "actions" | "callCloseWhenCancel" | "component" | "acceptType";
3
+ export interface ConfirmDialogProps extends Omit<BootstrapDialogDialogProps, OmitBaseDialogProps> {
4
+ confirmText?: string;
5
+ canceText?: string;
6
+ onCancel: () => void;
7
+ onConfirm: () => void;
8
+ }
9
+ export declare const ConfirmDialog: ({ open, title, loading, disabled, confirmText, cancelText, children, onConfirm, onCancel, }: ConfirmDialogProps) => JSX.Element;
10
+ export {};
@@ -0,0 +1 @@
1
+ export * from "./confirm-dialog";
@@ -0,0 +1 @@
1
+ export * from "./use-dialog";
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ export declare const useDialog: (intialOpen?: boolean) => {
3
+ isOpen: boolean;
4
+ open: () => void;
5
+ close: () => void;
6
+ setIsOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
7
+ };
@@ -0,0 +1,26 @@
1
+ import { PropsWithChildren } from "react";
2
+ export interface DialogAction {
3
+ id: string;
4
+ text: string;
5
+ type?: "button" | "submit";
6
+ color?: "inherit" | "primary" | "secondary" | "success" | "error" | "info" | "warning";
7
+ onClick?: () => void;
8
+ }
9
+ export type BootstrapDialogDialogProps = PropsWithChildren<{
10
+ open: boolean;
11
+ title: string;
12
+ loading?: boolean;
13
+ disabled?: boolean;
14
+ cancelable?: boolean;
15
+ acceptable?: boolean;
16
+ callCloseWhenCancel?: boolean;
17
+ actions?: DialogAction[];
18
+ cancelText?: string;
19
+ acceptText?: string;
20
+ acceptType?: "button" | "submit";
21
+ onClose: () => void;
22
+ onCancel?: () => void;
23
+ onAccept?: () => void;
24
+ component?: React.ElementType;
25
+ componentProps?: any;
26
+ }>;
@@ -0,0 +1,10 @@
1
+ import { BootstrapDialogDialogProps } from "../dialog.types";
2
+ type OmitBaseDialogProps = "cancelable" | "acceptable" | "onAccept" | "onCancel" | "onClose" | "actions" | "callCloseWhenCancel" | "component" | "acceptType";
3
+ export interface FormDialogProps<T> extends Omit<BootstrapDialogDialogProps, OmitBaseDialogProps> {
4
+ submitText?: string;
5
+ canceText?: string;
6
+ onCancel: () => void;
7
+ onSubmit: (data: T) => void;
8
+ }
9
+ export declare const FormDialog: <T>({ open, title, loading, disabled, submitText, cancelText, children, onSubmit, onCancel, }: FormDialogProps<T>) => JSX.Element;
10
+ export {};
@@ -0,0 +1 @@
1
+ export * from "./form-dialog";
@@ -0,0 +1,5 @@
1
+ export * from "./confirm-dialog";
2
+ export * from "./form-dialog";
3
+ export * from "./bootstrap-dialog";
4
+ export * from "./dialog-hooks";
5
+ export * from "./dialog.types";
@@ -8,3 +8,5 @@ export * from "./inputs";
8
8
  export * from "./navigation";
9
9
  export * from "./tables";
10
10
  export * from "./placeholders";
11
+ export * from "./alerts";
12
+ export * from "./dialogs";
@@ -0,0 +1,10 @@
1
+ import { AutocompleteProps, ChipTypeMap } from "@mui/material";
2
+ import React from "react";
3
+ export interface EnhancedAutocompleteProps<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined, ChipComponent extends React.ElementType = ChipTypeMap["defaultComponent"]> extends Omit<AutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent>, "renderInput" | "onChange" | "color"> {
4
+ label: string;
5
+ helperText?: string;
6
+ color?: string;
7
+ fetching?: boolean;
8
+ onChangeValue?: (value: T) => void;
9
+ }
10
+ export declare const EnhancedAutocomplete: <T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined, ChipComponent extends React.ElementType<any> = "div">(props: EnhancedAutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent>) => JSX.Element;
@@ -0,0 +1 @@
1
+ export * from "./enhanced-autocomplete";
@@ -0,0 +1,7 @@
1
+ import { TextFieldProps } from "@mui/material";
2
+ export type EnhancedTextFieldProps = TextFieldProps & {
3
+ fetching?: boolean;
4
+ loading?: boolean;
5
+ hexColor?: string;
6
+ };
7
+ export declare const EnhancedTextField: ({ id: overrideId, label, InputLabelProps, InputProps, fetching, loading, helperText, hexColor, size, fullWidth, sx, ...rest }: EnhancedTextFieldProps) => JSX.Element;
@@ -0,0 +1 @@
1
+ export * from "./enhanced-text-field";
@@ -1,2 +1,3 @@
1
1
  export * from "./enhanced-select";
2
2
  export * from "./sign-in";
3
+ export * from "./enhanced-autocomplete";
@@ -3,5 +3,6 @@ export * from "./value-card";
3
3
  export * from "./value-boolean";
4
4
  export * from "./value-datetime";
5
5
  export * from "./group-value-card";
6
- export * from "./value-displays.types";
6
+ export * from "./value-base/value-displays.types";
7
7
  export * from "./value-rating";
8
+ export * from "./value-base";
@@ -0,0 +1,2 @@
1
+ export * from "./value-edit";
2
+ export * from "./value-displays.types";
@@ -12,4 +12,14 @@ export interface BaseValueProps<T> {
12
12
  */
13
13
  placeholder?: string;
14
14
  }
15
+ export interface EditableValueProps<T> {
16
+ /**
17
+ * This field can be edited or not
18
+ */
19
+ editable?: boolean;
20
+ /**
21
+ * Callback executed when the value is edited
22
+ */
23
+ onEdit?: (value?: T) => void;
24
+ }
15
25
  export declare const DefaultPlaceholder = "-";
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import { SxProps, Theme } from "@mui/material";
3
+ export interface ValueEditButtonsProps {
4
+ onClickCancel: () => void;
5
+ onSubmitEdit: () => void;
6
+ sx?: SxProps<Theme>;
7
+ }
8
+ export declare const ValueEditButtons: ({ onClickCancel, onSubmitEdit, sx }: ValueEditButtonsProps) => JSX.Element;
9
+ /**
10
+ * Hook to manage the editing behaviour
11
+ */
12
+ export declare const useEditableValueDisplay: <T>(initialValue: T | undefined, onEdit: (value?: T | undefined) => void) => {
13
+ isEditing: boolean;
14
+ cancelEdit: () => void;
15
+ editValue: T | undefined;
16
+ setEditValue: React.Dispatch<React.SetStateAction<T | undefined>>;
17
+ startEdit: () => void;
18
+ submitEdit: () => void;
19
+ };
@@ -1,6 +1,6 @@
1
- import { BaseValueProps } from "../value-displays.types";
2
- export type ValueBooleanProps = BaseValueProps<boolean>;
1
+ import { BaseValueProps, EditableValueProps } from "../value-base";
2
+ export type ValueBooleanProps = BaseValueProps<boolean> & EditableValueProps<boolean>;
3
3
  /**
4
4
  * Displays a boolean value with a label
5
5
  */
6
- export declare const ValueBoolean: ({ label, value, placeholder, }: ValueBooleanProps) => JSX.Element;
6
+ export declare const ValueBoolean: ({ label, value, placeholder, editable, onEdit, }: ValueBooleanProps) => JSX.Element;
@@ -1,11 +1,16 @@
1
- import { BaseValueProps } from "../value-displays.types";
2
- export interface ValueDatetimeProps extends BaseValueProps<Date> {
1
+ import { BaseValueProps, EditableValueProps } from "../value-base/value-displays.types";
2
+ export type EditInputType = "datetime" | "date" | "time";
3
+ export interface ValueDatetimeProps extends BaseValueProps<Date>, EditableValueProps<Date> {
3
4
  /**
4
5
  * Datetime format
5
6
  */
6
7
  format: string;
8
+ /**
9
+ * Edit input type
10
+ */
11
+ editInputType?: EditInputType;
7
12
  }
8
13
  /**
9
14
  * Displays a formated datetime with a label
10
15
  */
11
- export declare const ValueDatetime: ({ label, value: valueProp, format: fmt, placeholder, }: ValueDatetimeProps) => JSX.Element;
16
+ export declare const ValueDatetime: ({ label, value: valueProp, format: fmt, placeholder, editable, editInputType, onEdit, }: ValueDatetimeProps) => JSX.Element;
@@ -1,4 +1,4 @@
1
- import { BaseValueProps } from "../value-displays.types";
1
+ import { BaseValueProps } from "../value-base/value-displays.types";
2
2
  export interface ValueImageProps extends BaseValueProps<string> {
3
3
  /**
4
4
  * Image size
@@ -1,8 +1,8 @@
1
- import { BaseValueProps } from "../value-displays.types";
1
+ import { BaseValueProps, EditableValueProps } from "../value-base/value-displays.types";
2
2
  export type ValueRatingProps = BaseValueProps<number> & {
3
3
  maxRating?: number;
4
- };
4
+ } & EditableValueProps<number>;
5
5
  /**
6
6
  * Displays a number using stars
7
7
  */
8
- export declare const ValueRating: ({ label, value, maxRating }: ValueRatingProps) => JSX.Element;
8
+ export declare const ValueRating: ({ label, value, maxRating, editable, onEdit, }: ValueRatingProps) => JSX.Element;
@@ -1,20 +1,6 @@
1
- import { BaseValueProps } from "../value-displays.types";
2
- export type TextValue = string | number;
3
- export interface ValueTextProps<T extends TextValue> extends BaseValueProps<T> {
4
- /**
5
- * This field can be edited or not
6
- */
7
- editable?: boolean;
8
- /**
9
- * Callback executed when the value is edited
10
- */
11
- onEdit?: (value?: string) => void;
12
- /**
13
- * Callback called when the user cancels an edition
14
- */
15
- onCancelEdit?: () => void;
16
- }
1
+ import { BaseValueProps, EditableValueProps } from "../value-base";
2
+ export type ValueTextProps = BaseValueProps<string | number> & EditableValueProps<string>;
17
3
  /**
18
4
  * Displays a string value with a label
19
5
  */
20
- export declare const ValueText: <T extends TextValue>({ label, value: valueProp, placeholder, editable, onEdit, onCancelEdit, }: ValueTextProps<T>) => JSX.Element;
6
+ export declare const ValueText: ({ label, value: valueProp, placeholder, editable, onEdit, }: ValueTextProps) => JSX.Element;
package/dist/index.d.ts CHANGED
@@ -1,14 +1,33 @@
1
1
  /// <reference types="react" />
2
- import * as React from 'react';
2
+ import * as React$1 from 'react';
3
3
  import React__default, { PropsWithChildren, FunctionComponent, ReactElement, ReactNode, Dispatch, SetStateAction } from 'react';
4
4
  import * as _mui_material from '@mui/material';
5
- import { GridProps, AppBarProps as AppBarProps$1, PropTypes, SxProps, Theme, DrawerProps as DrawerProps$1, Color, AlertColor } from '@mui/material';
5
+ import { SxProps, Theme, GridProps, AppBarProps as AppBarProps$1, PropTypes, DrawerProps as DrawerProps$1, ChipTypeMap, AutocompleteProps, AlertColor, Color } from '@mui/material';
6
+ import { MarkdownToJSX } from 'markdown-to-jsx';
6
7
  import * as _emotion_styled from '@emotion/styled';
7
8
  import * as _mui_system from '@mui/system';
8
9
  import { SelectInputProps } from '@mui/material/Select/SelectInput';
9
10
  import { Variant } from '@mui/material/styles/createTypography';
10
11
  import { LoremUnit } from 'lorem-ipsum/types/src/constants/units';
11
12
 
13
+ interface ValueEditButtonsProps {
14
+ onClickCancel: () => void;
15
+ onSubmitEdit: () => void;
16
+ sx?: SxProps<Theme>;
17
+ }
18
+ declare const ValueEditButtons: ({ onClickCancel, onSubmitEdit, sx }: ValueEditButtonsProps) => JSX.Element;
19
+ /**
20
+ * Hook to manage the editing behaviour
21
+ */
22
+ declare const useEditableValueDisplay: <T>(initialValue: T | undefined, onEdit: (value?: T | undefined) => void) => {
23
+ isEditing: boolean;
24
+ cancelEdit: () => void;
25
+ editValue: T | undefined;
26
+ setEditValue: React__default.Dispatch<React__default.SetStateAction<T | undefined>>;
27
+ startEdit: () => void;
28
+ submitEdit: () => void;
29
+ };
30
+
12
31
  interface BaseValueProps<T> {
13
32
  /**
14
33
  * Name of the displayed value
@@ -23,10 +42,7 @@ interface BaseValueProps<T> {
23
42
  */
24
43
  placeholder?: string;
25
44
  }
26
- declare const DefaultPlaceholder = "-";
27
-
28
- type TextValue = string | number;
29
- interface ValueTextProps<T extends TextValue> extends BaseValueProps<T> {
45
+ interface EditableValueProps<T> {
30
46
  /**
31
47
  * This field can be edited or not
32
48
  */
@@ -34,16 +50,15 @@ interface ValueTextProps<T extends TextValue> extends BaseValueProps<T> {
34
50
  /**
35
51
  * Callback executed when the value is edited
36
52
  */
37
- onEdit?: (value?: string) => void;
38
- /**
39
- * Callback called when the user cancels an edition
40
- */
41
- onCancelEdit?: () => void;
53
+ onEdit?: (value?: T) => void;
42
54
  }
55
+ declare const DefaultPlaceholder = "-";
56
+
57
+ type ValueTextProps = BaseValueProps<string | number> & EditableValueProps<string>;
43
58
  /**
44
59
  * Displays a string value with a label
45
60
  */
46
- declare const ValueText: <T extends TextValue>({ label, value: valueProp, placeholder, editable, onEdit, onCancelEdit, }: ValueTextProps<T>) => JSX.Element;
61
+ declare const ValueText: ({ label, value: valueProp, placeholder, editable, onEdit, }: ValueTextProps) => JSX.Element;
47
62
 
48
63
  type ValueCardProps = PropsWithChildren;
49
64
  /**
@@ -51,22 +66,27 @@ type ValueCardProps = PropsWithChildren;
51
66
  */
52
67
  declare const ValueCard: ({ children }: ValueCardProps) => JSX.Element;
53
68
 
54
- type ValueBooleanProps = BaseValueProps<boolean>;
69
+ type ValueBooleanProps = BaseValueProps<boolean> & EditableValueProps<boolean>;
55
70
  /**
56
71
  * Displays a boolean value with a label
57
72
  */
58
- declare const ValueBoolean: ({ label, value, placeholder, }: ValueBooleanProps) => JSX.Element;
73
+ declare const ValueBoolean: ({ label, value, placeholder, editable, onEdit, }: ValueBooleanProps) => JSX.Element;
59
74
 
60
- interface ValueDatetimeProps extends BaseValueProps<Date> {
75
+ type EditInputType = "datetime" | "date" | "time";
76
+ interface ValueDatetimeProps extends BaseValueProps<Date>, EditableValueProps<Date> {
61
77
  /**
62
78
  * Datetime format
63
79
  */
64
80
  format: string;
81
+ /**
82
+ * Edit input type
83
+ */
84
+ editInputType?: EditInputType;
65
85
  }
66
86
  /**
67
87
  * Displays a formated datetime with a label
68
88
  */
69
- declare const ValueDatetime: ({ label, value: valueProp, format: fmt, placeholder, }: ValueDatetimeProps) => JSX.Element;
89
+ declare const ValueDatetime: ({ label, value: valueProp, format: fmt, placeholder, editable, editInputType, onEdit, }: ValueDatetimeProps) => JSX.Element;
70
90
 
71
91
  type GroupValueItemProps = PropsWithChildren<Omit<GridProps, "item" | "container"> & {
72
92
  bordered?: boolean;
@@ -87,11 +107,11 @@ declare const GroupValueCard: ({ title, subtitle, centered, children }: GroupVal
87
107
 
88
108
  type ValueRatingProps = BaseValueProps<number> & {
89
109
  maxRating?: number;
90
- };
110
+ } & EditableValueProps<number>;
91
111
  /**
92
112
  * Displays a number using stars
93
113
  */
94
- declare const ValueRating: ({ label, value, maxRating }: ValueRatingProps) => JSX.Element;
114
+ declare const ValueRating: ({ label, value, maxRating, editable, onEdit, }: ValueRatingProps) => JSX.Element;
95
115
 
96
116
  /**
97
117
  * Displays a centered loading indicator
@@ -272,6 +292,22 @@ type HeaderElement = ReactElement<HeaderProps, HeaderComponent>;
272
292
  */
273
293
  declare const Header: HeaderComponent;
274
294
 
295
+ type BoardProps = PropsWithChildren<{
296
+ markdown?: string;
297
+ content?: string | string[];
298
+ spacing?: 0 | 1 | 2 | 3 | 4 | 5;
299
+ timeoutCopyText?: number;
300
+ sx?: SxProps<Theme>;
301
+ }>;
302
+ declare const Board: ({ markdown: markdownProps, content: contentProp, spacing, timeoutCopyText, children, sx, }: BoardProps) => JSX.Element;
303
+
304
+ interface MarkdownProps {
305
+ content: string;
306
+ options?: MarkdownToJSX.Options;
307
+ }
308
+ declare const markdownDefaultOptions: MarkdownToJSX.Options;
309
+ declare const Markdown: ({ content, options }: MarkdownProps) => JSX.Element;
310
+
275
311
  type ContentProps = PropsWithChildren;
276
312
  type ContentComponent = FunctionComponent<ContentProps>;
277
313
  type ContentElement = ReactElement<ContentElement, ContentComponent>;
@@ -349,7 +385,7 @@ interface DrawerContextProps {
349
385
  close(): void;
350
386
  open(): void;
351
387
  }
352
- declare const DrawerContext: React.Context<DrawerContextProps | undefined>;
388
+ declare const DrawerContext: React$1.Context<DrawerContextProps | undefined>;
353
389
  declare const UndefinedProvider: Error;
354
390
  declare const useDrawer: () => DrawerContextProps;
355
391
 
@@ -441,6 +477,15 @@ interface SignInProps {
441
477
  }
442
478
  declare const SignIn: ({ title, subtitle, loading, error, onSubmitSignIn }: SignInProps) => JSX.Element;
443
479
 
480
+ interface EnhancedAutocompleteProps<T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined, ChipComponent extends React__default.ElementType = ChipTypeMap["defaultComponent"]> extends Omit<AutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent>, "renderInput" | "onChange" | "color"> {
481
+ label: string;
482
+ helperText?: string;
483
+ color?: string;
484
+ fetching?: boolean;
485
+ onChangeValue?: (value: T) => void;
486
+ }
487
+ declare const EnhancedAutocomplete: <T, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined, ChipComponent extends React__default.ElementType<any> = "div">(props: EnhancedAutocompleteProps<T, Multiple, DisableClearable, FreeSolo, ChipComponent>) => JSX.Element;
488
+
444
489
  interface TabPanelProps {
445
490
  children?: React__default.ReactNode;
446
491
  index: number | number[];
@@ -539,6 +584,69 @@ interface LoremIpsumPlaceholderProps {
539
584
  }
540
585
  declare const LoremIpsumPlaceholder: ({ count, units, variant, }: LoremIpsumPlaceholderProps) => JSX.Element;
541
586
 
587
+ interface ExpandableAlertProps {
588
+ severity: AlertColor;
589
+ iconMapping?: Partial<Record<AlertColor, React__default.ReactNode>>;
590
+ title?: string;
591
+ message: string;
592
+ metadata?: string | string[];
593
+ onClose: () => void;
594
+ }
595
+ declare const ExpandableAlert: ({ severity, iconMapping, title, message, metadata, onClose, }: ExpandableAlertProps) => JSX.Element;
596
+
597
+ interface DialogAction {
598
+ id: string;
599
+ text: string;
600
+ type?: "button" | "submit";
601
+ color?: "inherit" | "primary" | "secondary" | "success" | "error" | "info" | "warning";
602
+ onClick?: () => void;
603
+ }
604
+ type BootstrapDialogDialogProps = PropsWithChildren<{
605
+ open: boolean;
606
+ title: string;
607
+ loading?: boolean;
608
+ disabled?: boolean;
609
+ cancelable?: boolean;
610
+ acceptable?: boolean;
611
+ callCloseWhenCancel?: boolean;
612
+ actions?: DialogAction[];
613
+ cancelText?: string;
614
+ acceptText?: string;
615
+ acceptType?: "button" | "submit";
616
+ onClose: () => void;
617
+ onCancel?: () => void;
618
+ onAccept?: () => void;
619
+ component?: React.ElementType;
620
+ componentProps?: any;
621
+ }>;
622
+
623
+ type OmitBaseDialogProps$1 = "cancelable" | "acceptable" | "onAccept" | "onCancel" | "onClose" | "actions" | "callCloseWhenCancel" | "component" | "acceptType";
624
+ interface ConfirmDialogProps extends Omit<BootstrapDialogDialogProps, OmitBaseDialogProps$1> {
625
+ confirmText?: string;
626
+ canceText?: string;
627
+ onCancel: () => void;
628
+ onConfirm: () => void;
629
+ }
630
+ declare const ConfirmDialog: ({ open, title, loading, disabled, confirmText, cancelText, children, onConfirm, onCancel, }: ConfirmDialogProps) => JSX.Element;
631
+
632
+ type OmitBaseDialogProps = "cancelable" | "acceptable" | "onAccept" | "onCancel" | "onClose" | "actions" | "callCloseWhenCancel" | "component" | "acceptType";
633
+ interface FormDialogProps<T> extends Omit<BootstrapDialogDialogProps, OmitBaseDialogProps> {
634
+ submitText?: string;
635
+ canceText?: string;
636
+ onCancel: () => void;
637
+ onSubmit: (data: T) => void;
638
+ }
639
+ declare const FormDialog: <T>({ open, title, loading, disabled, submitText, cancelText, children, onSubmit, onCancel, }: FormDialogProps<T>) => JSX.Element;
640
+
641
+ declare const BootstrapDialog: ({ open, title, component, componentProps, disabled, actions, children, loading, cancelable, callCloseWhenCancel, acceptable, acceptText, cancelText, onAccept, onCancel, onClose, acceptType, }: BootstrapDialogDialogProps) => JSX.Element;
642
+
643
+ declare const useDialog: (intialOpen?: boolean) => {
644
+ isOpen: boolean;
645
+ open: () => void;
646
+ close: () => void;
647
+ setIsOpen: React$1.Dispatch<React$1.SetStateAction<boolean>>;
648
+ };
649
+
542
650
  declare const newArrayWithSize: <T>(size: number, fillValue: T) => any[];
543
651
  declare const getRandomItem: <T>(items: T[]) => {
544
652
  index: number;
@@ -820,8 +928,8 @@ interface NotifyWhenValueChangesOptions<T> {
820
928
  }
821
929
  declare const useNotifyWhenValueChanges: <T>(notification: Notification, value: T | undefined, { from, to }: NotifyWhenValueChangesOptions<T>) => void;
822
930
 
823
- declare const TabContext: React.Context<[number, Dispatch<SetStateAction<number>>]>;
824
- declare const TabContextProvider: React.Provider<[number, Dispatch<SetStateAction<number>>]>;
931
+ declare const TabContext: React$1.Context<[number, Dispatch<SetStateAction<number>>]>;
932
+ declare const TabContextProvider: React$1.Provider<[number, Dispatch<SetStateAction<number>>]>;
825
933
  declare const useTab: () => [number, Dispatch<SetStateAction<number>>];
826
934
 
827
935
  type TabProviderProps = PropsWithChildren<{
@@ -829,4 +937,4 @@ type TabProviderProps = PropsWithChildren<{
829
937
  }>;
830
938
  declare const TabProvider: ({ children, initialValue }: TabProviderProps) => JSX.Element;
831
939
 
832
- export { AppBarComponent, AppBarElement, AppBarProfile, AppBarProps, AppBarWithDrawerLayout, AppBarWithDrawerLayoutProps, ArrayFieldType, BaseFieldType, BaseValueProps, BasicModelInstance, Bullet, BulletProps, BulletVariant, CenterContainer, CenterContainerProps, Content, ContentComponent, ContentElement, ContentPlaceholder, ContentPlaceholderProps, ContentProps, DefaultPlaceholder, Drawer, DrawerComponent, DrawerContent, DrawerContentComponent, DrawerContentElement, DrawerContentProps, DrawerContext, DrawerContextProps, DrawerElement, DrawerItem, DrawerItemProps, DrawerProps, DrawerProvider, DrawerSection, DrawerSectionProps, EnhancedRemoteTable, EnhancedRemoteTableProps, EnhancedSelect, EnhancedSelectProps, EnhancedSelectSize, EnhancedTable, EnhancedTableHead, FieldType, GroupField, GroupInstanceType, GroupValueCard, GroupValueCardProps, GroupValueItem, GroupValueItemComponent, GroupValueItemElement, GroupValueItemProps, HeadCell, Header, HeaderAction, HeaderActionVariant, HeaderBreadcrumb, HeaderComponent, HeaderElement, HeaderLayout, HeaderLayoutProps, HeaderNavigationButton, HeaderPreset, HeaderProps, HeaderTab, IdleRequest, Label, LabelProps, LabelVariant, LoadingArea, LoadingRequest, LoremIpsumPlaceholder, LoremIpsumPlaceholderProps, MiniAppBar, MiniDrawer, Model, ModelField, ModelFieldTypes, ModelForm, ModelFormProps, ModelRouter, ModelRouterProps, Nav, NavItem, NavItemAvatar, NavItemBullet, NavItemCollapsable, NavItemLabel, NavItemLink, NavSection, Notification, NotificationCenterContext, NotificationCenterProps, NotificationCenterProvider, NotificationCenterProviderProps, NotificationCenterProviderUndefinedError, NotifyWhenValueChangesOptions, ObjectDetails, ObjectDetailsProps, Order, Placeholder, PlaceholderAction, PlaceholderIconArgs, PlaceholderProps, QueryContainer, QueryContainerError, QueryContainerProps, QueryContainerSuccess, RequestState, SignIn, SignInProps, SingleFieldType, SkeletonCard, SkeletonCardProps, SkeletonGrid, SkeletonGridProps, SuccessRequest, TabCard, TabCardProps, TabContext, TabContextProvider, TabPanel, TabProvider, TableList, TableListProps, TableRowOption, TextValue, UndefinedProvider, ValueBoolean, ValueBooleanProps, ValueCard, ValueCardProps, ValueDatetime, ValueDatetimeProps, ValueRating, ValueRatingProps, ValueText, ValueTextProps, bulletClasses, getRandomItem, groupValueItemClasses, labelClasses, newArrayWithSize, newInstanceFromValuesOrZeroValue, useDrawer, useGetDefaultThemeColor, useNotificationCenter, useNotifyWhenValueChanges, useTab };
940
+ export { AppBarComponent, AppBarElement, AppBarProfile, AppBarProps, AppBarWithDrawerLayout, AppBarWithDrawerLayoutProps, ArrayFieldType, BaseFieldType, BaseValueProps, BasicModelInstance, Board, BoardProps, BootstrapDialog, BootstrapDialogDialogProps, Bullet, BulletProps, BulletVariant, CenterContainer, CenterContainerProps, ConfirmDialog, ConfirmDialogProps, Content, ContentComponent, ContentElement, ContentPlaceholder, ContentPlaceholderProps, ContentProps, DefaultPlaceholder, DialogAction, Drawer, DrawerComponent, DrawerContent, DrawerContentComponent, DrawerContentElement, DrawerContentProps, DrawerContext, DrawerContextProps, DrawerElement, DrawerItem, DrawerItemProps, DrawerProps, DrawerProvider, DrawerSection, DrawerSectionProps, EditInputType, EditableValueProps, EnhancedAutocomplete, EnhancedAutocompleteProps, EnhancedRemoteTable, EnhancedRemoteTableProps, EnhancedSelect, EnhancedSelectProps, EnhancedSelectSize, EnhancedTable, EnhancedTableHead, ExpandableAlert, ExpandableAlertProps, FieldType, FormDialog, FormDialogProps, GroupField, GroupInstanceType, GroupValueCard, GroupValueCardProps, GroupValueItem, GroupValueItemComponent, GroupValueItemElement, GroupValueItemProps, HeadCell, Header, HeaderAction, HeaderActionVariant, HeaderBreadcrumb, HeaderComponent, HeaderElement, HeaderLayout, HeaderLayoutProps, HeaderNavigationButton, HeaderPreset, HeaderProps, HeaderTab, IdleRequest, Label, LabelProps, LabelVariant, LoadingArea, LoadingRequest, LoremIpsumPlaceholder, LoremIpsumPlaceholderProps, Markdown, MarkdownProps, MiniAppBar, MiniDrawer, Model, ModelField, ModelFieldTypes, ModelForm, ModelFormProps, ModelRouter, ModelRouterProps, Nav, NavItem, NavItemAvatar, NavItemBullet, NavItemCollapsable, NavItemLabel, NavItemLink, NavSection, Notification, NotificationCenterContext, NotificationCenterProps, NotificationCenterProvider, NotificationCenterProviderProps, NotificationCenterProviderUndefinedError, NotifyWhenValueChangesOptions, ObjectDetails, ObjectDetailsProps, Order, Placeholder, PlaceholderAction, PlaceholderIconArgs, PlaceholderProps, QueryContainer, QueryContainerError, QueryContainerProps, QueryContainerSuccess, RequestState, SignIn, SignInProps, SingleFieldType, SkeletonCard, SkeletonCardProps, SkeletonGrid, SkeletonGridProps, SuccessRequest, TabCard, TabCardProps, TabContext, TabContextProvider, TabPanel, TabProvider, TableList, TableListProps, TableRowOption, UndefinedProvider, ValueBoolean, ValueBooleanProps, ValueCard, ValueCardProps, ValueDatetime, ValueDatetimeProps, ValueEditButtons, ValueEditButtonsProps, ValueRating, ValueRatingProps, ValueText, ValueTextProps, bulletClasses, getRandomItem, groupValueItemClasses, labelClasses, markdownDefaultOptions, newArrayWithSize, newInstanceFromValuesOrZeroValue, useDialog, useDrawer, useEditableValueDisplay, useGetDefaultThemeColor, useNotificationCenter, useNotifyWhenValueChanges, useTab };