@peculiar/react-components 1.6.0 → 1.7.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 (161) hide show
  1. package/dist/cjs/Alert/alert.js +2 -2
  2. package/dist/cjs/Alert/alert.js.map +1 -1
  3. package/dist/cjs/Autocomplete/autocomplete.js +12 -12
  4. package/dist/cjs/Autocomplete/autocomplete.js.map +1 -1
  5. package/dist/cjs/Avatar/avatar.js +6 -6
  6. package/dist/cjs/Avatar/avatar.js.map +1 -1
  7. package/dist/cjs/Button/button.js +9 -9
  8. package/dist/cjs/Button/button.js.map +1 -1
  9. package/dist/cjs/Checkbox/checkbox.js +2 -2
  10. package/dist/cjs/Checkbox/checkbox.js.map +1 -1
  11. package/dist/cjs/Chip/chip.js +1 -1
  12. package/dist/cjs/Chip/chip.js.map +1 -1
  13. package/dist/cjs/CircularProgress/circular_progress.js +4 -4
  14. package/dist/cjs/CircularProgress/circular_progress.js.map +1 -1
  15. package/dist/cjs/Collapse/collapse.js +1 -1
  16. package/dist/cjs/Collapse/collapse.js.map +1 -1
  17. package/dist/cjs/Dialog/dialog.js +4 -6
  18. package/dist/cjs/Dialog/dialog.js.map +1 -1
  19. package/dist/cjs/Dialog/dialog_actions.js +3 -2
  20. package/dist/cjs/Dialog/dialog_actions.js.map +1 -1
  21. package/dist/cjs/Dialog/dialog_content.js +7 -9
  22. package/dist/cjs/Dialog/dialog_content.js.map +1 -1
  23. package/dist/cjs/Dialog/dialog_title.js +8 -9
  24. package/dist/cjs/Dialog/dialog_title.js.map +1 -1
  25. package/dist/cjs/Fab/fab.js +3 -3
  26. package/dist/cjs/Fab/fab.js.map +1 -1
  27. package/dist/cjs/Menu/menu.js +4 -4
  28. package/dist/cjs/Menu/menu.js.map +1 -1
  29. package/dist/cjs/MenuList/menu_item.js +3 -3
  30. package/dist/cjs/MenuList/menu_item.js.map +1 -1
  31. package/dist/cjs/NativeSelect/native_select.js +4 -4
  32. package/dist/cjs/NativeSelect/native_select.js.map +1 -1
  33. package/dist/cjs/Radio/radio.js +2 -2
  34. package/dist/cjs/Radio/radio.js.map +1 -1
  35. package/dist/cjs/Select/select.js +10 -10
  36. package/dist/cjs/Select/select.js.map +1 -1
  37. package/dist/cjs/Switch/switch.js +5 -5
  38. package/dist/cjs/Switch/switch.js.map +1 -1
  39. package/dist/cjs/Tabs/tab.js +1 -1
  40. package/dist/cjs/Tabs/tab.js.map +1 -1
  41. package/dist/cjs/TextField/text_field.js +4 -4
  42. package/dist/cjs/TextField/text_field.js.map +1 -1
  43. package/dist/cjs/TextareaField/textarea_field.js +4 -4
  44. package/dist/cjs/TextareaField/textarea_field.js.map +1 -1
  45. package/dist/cjs/hooks/create_dialog.js +89 -0
  46. package/dist/cjs/hooks/create_dialog.js.map +1 -0
  47. package/dist/cjs/hooks/index.js +3 -1
  48. package/dist/cjs/hooks/index.js.map +1 -1
  49. package/dist/cjs/styles/foundations/sizes.js +0 -14
  50. package/dist/cjs/styles/foundations/sizes.js.map +1 -1
  51. package/dist/cjs/styles/types.js.map +1 -1
  52. package/dist/esm/Alert/alert.js +2 -2
  53. package/dist/esm/Alert/alert.js.map +1 -1
  54. package/dist/esm/Autocomplete/autocomplete.js +12 -12
  55. package/dist/esm/Autocomplete/autocomplete.js.map +1 -1
  56. package/dist/esm/Avatar/avatar.js +6 -6
  57. package/dist/esm/Avatar/avatar.js.map +1 -1
  58. package/dist/esm/Button/button.js +9 -9
  59. package/dist/esm/Button/button.js.map +1 -1
  60. package/dist/esm/Checkbox/checkbox.js +2 -2
  61. package/dist/esm/Checkbox/checkbox.js.map +1 -1
  62. package/dist/esm/Chip/chip.js +1 -1
  63. package/dist/esm/Chip/chip.js.map +1 -1
  64. package/dist/esm/CircularProgress/circular_progress.js +4 -4
  65. package/dist/esm/CircularProgress/circular_progress.js.map +1 -1
  66. package/dist/esm/Collapse/collapse.js +1 -1
  67. package/dist/esm/Collapse/collapse.js.map +1 -1
  68. package/dist/esm/Dialog/dialog.js +4 -6
  69. package/dist/esm/Dialog/dialog.js.map +1 -1
  70. package/dist/esm/Dialog/dialog_actions.js +3 -2
  71. package/dist/esm/Dialog/dialog_actions.js.map +1 -1
  72. package/dist/esm/Dialog/dialog_content.js +7 -9
  73. package/dist/esm/Dialog/dialog_content.js.map +1 -1
  74. package/dist/esm/Dialog/dialog_title.js +8 -9
  75. package/dist/esm/Dialog/dialog_title.js.map +1 -1
  76. package/dist/esm/Fab/fab.js +3 -3
  77. package/dist/esm/Fab/fab.js.map +1 -1
  78. package/dist/esm/Menu/menu.js +4 -4
  79. package/dist/esm/Menu/menu.js.map +1 -1
  80. package/dist/esm/MenuList/menu_item.js +3 -3
  81. package/dist/esm/MenuList/menu_item.js.map +1 -1
  82. package/dist/esm/NativeSelect/native_select.js +4 -4
  83. package/dist/esm/NativeSelect/native_select.js.map +1 -1
  84. package/dist/esm/Radio/radio.js +2 -2
  85. package/dist/esm/Radio/radio.js.map +1 -1
  86. package/dist/esm/Select/select.js +10 -10
  87. package/dist/esm/Select/select.js.map +1 -1
  88. package/dist/esm/Switch/switch.js +5 -5
  89. package/dist/esm/Switch/switch.js.map +1 -1
  90. package/dist/esm/Tabs/tab.js +1 -1
  91. package/dist/esm/Tabs/tab.js.map +1 -1
  92. package/dist/esm/TextField/text_field.js +4 -4
  93. package/dist/esm/TextField/text_field.js.map +1 -1
  94. package/dist/esm/TextareaField/textarea_field.js +4 -4
  95. package/dist/esm/TextareaField/textarea_field.js.map +1 -1
  96. package/dist/esm/hooks/create_dialog.js +83 -0
  97. package/dist/esm/hooks/create_dialog.js.map +1 -0
  98. package/dist/esm/hooks/index.js +1 -0
  99. package/dist/esm/hooks/index.js.map +1 -1
  100. package/dist/esm/styles/foundations/sizes.js +0 -14
  101. package/dist/esm/styles/foundations/sizes.js.map +1 -1
  102. package/dist/esm/styles/types.js.map +1 -1
  103. package/dist/esnext/Alert/alert.js +2 -2
  104. package/dist/esnext/Alert/alert.js.map +1 -1
  105. package/dist/esnext/Autocomplete/autocomplete.js +12 -12
  106. package/dist/esnext/Autocomplete/autocomplete.js.map +1 -1
  107. package/dist/esnext/Avatar/avatar.js +6 -6
  108. package/dist/esnext/Avatar/avatar.js.map +1 -1
  109. package/dist/esnext/Button/button.js +12 -12
  110. package/dist/esnext/Button/button.js.map +1 -1
  111. package/dist/esnext/Checkbox/checkbox.js +2 -2
  112. package/dist/esnext/Checkbox/checkbox.js.map +1 -1
  113. package/dist/esnext/Chip/chip.js +3 -3
  114. package/dist/esnext/Chip/chip.js.map +1 -1
  115. package/dist/esnext/CircularProgress/circular_progress.js +4 -4
  116. package/dist/esnext/CircularProgress/circular_progress.js.map +1 -1
  117. package/dist/esnext/Collapse/collapse.js +1 -1
  118. package/dist/esnext/Collapse/collapse.js.map +1 -1
  119. package/dist/esnext/Dialog/dialog.js +4 -7
  120. package/dist/esnext/Dialog/dialog.js.map +1 -1
  121. package/dist/esnext/Dialog/dialog_actions.js +3 -2
  122. package/dist/esnext/Dialog/dialog_actions.js.map +1 -1
  123. package/dist/esnext/Dialog/dialog_content.js +7 -9
  124. package/dist/esnext/Dialog/dialog_content.js.map +1 -1
  125. package/dist/esnext/Dialog/dialog_title.js +8 -9
  126. package/dist/esnext/Dialog/dialog_title.js.map +1 -1
  127. package/dist/esnext/Fab/fab.js +3 -3
  128. package/dist/esnext/Fab/fab.js.map +1 -1
  129. package/dist/esnext/Menu/menu.js +4 -4
  130. package/dist/esnext/Menu/menu.js.map +1 -1
  131. package/dist/esnext/MenuList/menu_item.js +3 -3
  132. package/dist/esnext/MenuList/menu_item.js.map +1 -1
  133. package/dist/esnext/NativeSelect/native_select.js +4 -4
  134. package/dist/esnext/NativeSelect/native_select.js.map +1 -1
  135. package/dist/esnext/Radio/radio.js +2 -2
  136. package/dist/esnext/Radio/radio.js.map +1 -1
  137. package/dist/esnext/Select/select.js +11 -11
  138. package/dist/esnext/Select/select.js.map +1 -1
  139. package/dist/esnext/Switch/switch.js +5 -5
  140. package/dist/esnext/Switch/switch.js.map +1 -1
  141. package/dist/esnext/Tabs/tab.js +2 -2
  142. package/dist/esnext/Tabs/tab.js.map +1 -1
  143. package/dist/esnext/TextField/text_field.js +4 -4
  144. package/dist/esnext/TextField/text_field.js.map +1 -1
  145. package/dist/esnext/TextareaField/textarea_field.js +4 -4
  146. package/dist/esnext/TextareaField/textarea_field.js.map +1 -1
  147. package/dist/esnext/hooks/create_dialog.js +83 -0
  148. package/dist/esnext/hooks/create_dialog.js.map +1 -0
  149. package/dist/esnext/hooks/index.js +1 -0
  150. package/dist/esnext/hooks/index.js.map +1 -1
  151. package/dist/esnext/styles/foundations/sizes.js +0 -14
  152. package/dist/esnext/styles/foundations/sizes.js.map +1 -1
  153. package/dist/esnext/styles/types.js.map +1 -1
  154. package/dist/types/Dialog/dialog.d.ts +2 -2
  155. package/dist/types/Dialog/dialog_content.d.ts +0 -5
  156. package/dist/types/Dialog/dialog_title.d.ts +2 -2
  157. package/dist/types/hooks/create_dialog.d.ts +72 -0
  158. package/dist/types/hooks/index.d.ts +1 -0
  159. package/dist/types/styles/foundations/sizes.d.ts +0 -28
  160. package/dist/types/styles/types.d.ts +1 -1
  161. package/package.json +6 -6
@@ -42,9 +42,9 @@ interface IDialogOwnProps {
42
42
  onClose?: (event: React.SyntheticEvent) => void;
43
43
  /**
44
44
  * The size of the dialog.
45
- * @default 'medium'
45
+ * @default 'small'
46
46
  */
47
- size?: ('small' | 'medium' | 'large');
47
+ size?: ('small' | 'large');
48
48
  /**
49
49
  * If `true`, the dialog will be show CircularProgress component and disable all interactions.
50
50
  */
@@ -11,11 +11,6 @@ interface IDialogContentOwnProps {
11
11
  * The className of the component.
12
12
  */
13
13
  className?: string;
14
- /**
15
- * Display the top and bottom dividers.
16
- * @default true
17
- */
18
- dividers?: boolean;
19
14
  /**
20
15
  * The content of the error message.
21
16
  */
@@ -12,9 +12,9 @@ interface IDialogTitleOwnProps {
12
12
  */
13
13
  className?: string;
14
14
  /**
15
- * Callback fired when the component requests to be closed.
15
+ * Element placed before the title.
16
16
  */
17
- onClose?: () => void;
17
+ startIcon?: React.ReactNode;
18
18
  }
19
19
  /**
20
20
  *
@@ -0,0 +1,72 @@
1
+ import React from 'react';
2
+ interface IDialogRef<T> {
3
+ openParams: T;
4
+ close: () => void;
5
+ }
6
+ type TDialogComponent<T> = React.ComponentType<IDialogRef<T>>;
7
+ /**
8
+ * Generic hook factory for managing dialog state.
9
+ *
10
+ * Accepts an inline arrow function component that receives IDialogRef<T> as props.
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * interface IDeleteDialogParams {
15
+ * itemId: string;
16
+ * onSuccess: VoidFunction;
17
+ * }
18
+ *
19
+ * export const useDeleteDialog = createDialog<IDeleteDialogParams>(({
20
+ * openParams,
21
+ * close,
22
+ * }) => {
23
+ * const handleSubmit = () => {
24
+ * fetch(`/api/items/${openParams.itemId}`, {
25
+ * method: 'DELETE',
26
+ * }).then(() => {
27
+ * openParams.onSuccess();
28
+ * close();
29
+ * }).catch(() => {
30
+ * // Handle error
31
+ * });
32
+ * };
33
+ *
34
+ * return (
35
+ * <ConfirmationDialog=
36
+ * onClose={close}
37
+ * onSubmit={handleSubmit}
38
+ * >
39
+ * Are you sure you want to delete this item?
40
+ * </ConfirmationDialog>
41
+ * );
42
+ * });
43
+ *
44
+ * // Usage:
45
+ * function MyComponent() {
46
+ * const deleteDialog = useDeleteDialog();
47
+ *
48
+ * return (
49
+ * <>
50
+ * <button
51
+ * onClick={() => {
52
+ * deleteDialog.open({
53
+ * itemId: '123',
54
+ * onSuccess: () => {
55
+ * console.log('Item deleted');
56
+ * },
57
+ * })
58
+ * }}
59
+ * >
60
+ * Delete
61
+ * </button>
62
+ * {deleteDialog.dialog}
63
+ * </>
64
+ * );
65
+ * }
66
+ * ```
67
+ */
68
+ export declare function createDialog<T>(component: TDialogComponent<T>): () => {
69
+ dialog: React.ReactNode | null;
70
+ open: (params: T) => void;
71
+ };
72
+ export {};
@@ -13,3 +13,4 @@ export { useEventCallback } from './use_event_callback';
13
13
  export { useEnhancedEffect } from './use_enhanced_effect';
14
14
  export { useDebounceCallback } from './use_debounce_callback';
15
15
  export { useOutsideClick } from './use_outside_click';
16
+ export { createDialog } from './create_dialog';
@@ -1,34 +1,6 @@
1
1
  export declare const generateSize: (grid?: number) => {
2
- 'base-half': string;
3
2
  base: string;
4
- 'base-2': string;
5
- 'base-3': string;
6
- 'base-4': string;
7
- 'base-5': string;
8
- 'base-6': string;
9
- 'base-7': string;
10
- 'base-8': string;
11
- 'base-9': string;
12
- 'base-10': string;
13
- 'base-11': string;
14
- 'base-12': string;
15
- 'base-14': string;
16
- 'base-16': string;
17
3
  };
18
4
  export declare const size: {
19
- 'base-half': string;
20
5
  base: string;
21
- 'base-2': string;
22
- 'base-3': string;
23
- 'base-4': string;
24
- 'base-5': string;
25
- 'base-6': string;
26
- 'base-7': string;
27
- 'base-8': string;
28
- 'base-9': string;
29
- 'base-10': string;
30
- 'base-11': string;
31
- 'base-12': string;
32
- 'base-14': string;
33
- 'base-16': string;
34
6
  };
@@ -7,7 +7,7 @@ export interface ITypographyPropertiesType {
7
7
  spacing: string;
8
8
  }
9
9
  export type TTypographyType = ('h1' | 'h2' | 'h3' | 'h4' | 'h5' | 's1' | 's2' | 'b1' | 'b2' | 'b3' | 'btn1' | 'btn2' | 'c1' | 'c2');
10
- export type TSizeType = ('base-half' | 'base' | 'base-2' | 'base-3' | 'base-4' | 'base-5' | 'base-6' | 'base-7' | 'base-8' | 'base-9' | 'base-10' | 'base-11' | 'base-12' | 'base-14' | 'base-16');
10
+ export type TSizeType = 'base';
11
11
  export interface IThemeType {
12
12
  color: Record<TColorType, string>;
13
13
  shadow: Record<TShadowType, string>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@peculiar/react-components",
3
3
  "private": false,
4
- "version": "1.6.0",
4
+ "version": "1.7.0",
5
5
  "author": "PeculiarVentures Team",
6
6
  "description": "A simple and customizable component library to build faster, beautiful, and more accessible React applications.",
7
7
  "keywords": [
@@ -60,14 +60,14 @@
60
60
  },
61
61
  "devDependencies": {
62
62
  "@babel/preset-env": "7.26.9",
63
- "@storybook/addon-essentials": "8.6.4",
64
- "@storybook/react": "8.6.4",
65
- "@storybook/react-vite": "8.6.4",
63
+ "@storybook/addon-essentials": "8.6.15",
64
+ "@storybook/react": "8.6.15",
65
+ "@storybook/react-vite": "8.6.15",
66
66
  "@types/react": "^18.0.34",
67
67
  "@types/react-dom": "^18.0.11",
68
68
  "react": "^18.2.0",
69
69
  "react-dom": "^18.2.0",
70
- "storybook": "8.6.4",
70
+ "storybook": "8.6.15",
71
71
  "storybook-dark-mode": "^4.0.2",
72
72
  "typescript": "5.9.3",
73
73
  "vite": "^6.4.1"
@@ -79,5 +79,5 @@
79
79
  "node": ">=18.x"
80
80
  },
81
81
  "license": "MIT",
82
- "gitHead": "2fa2518b092ee7bc46f58372b779bd6674c8bc76"
82
+ "gitHead": "6e4f8db9e9e1b440c671b8b18a6c6d015e7b5cde"
83
83
  }