@peculiar/react-components 1.6.1 → 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 (155) 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/Dialog/dialog.js +4 -6
  16. package/dist/cjs/Dialog/dialog.js.map +1 -1
  17. package/dist/cjs/Dialog/dialog_actions.js +3 -2
  18. package/dist/cjs/Dialog/dialog_actions.js.map +1 -1
  19. package/dist/cjs/Dialog/dialog_content.js +7 -9
  20. package/dist/cjs/Dialog/dialog_content.js.map +1 -1
  21. package/dist/cjs/Dialog/dialog_title.js +8 -9
  22. package/dist/cjs/Dialog/dialog_title.js.map +1 -1
  23. package/dist/cjs/Fab/fab.js +3 -3
  24. package/dist/cjs/Fab/fab.js.map +1 -1
  25. package/dist/cjs/Menu/menu.js +4 -4
  26. package/dist/cjs/Menu/menu.js.map +1 -1
  27. package/dist/cjs/MenuList/menu_item.js +3 -3
  28. package/dist/cjs/MenuList/menu_item.js.map +1 -1
  29. package/dist/cjs/NativeSelect/native_select.js +4 -4
  30. package/dist/cjs/NativeSelect/native_select.js.map +1 -1
  31. package/dist/cjs/Radio/radio.js +2 -2
  32. package/dist/cjs/Radio/radio.js.map +1 -1
  33. package/dist/cjs/Select/select.js +10 -10
  34. package/dist/cjs/Select/select.js.map +1 -1
  35. package/dist/cjs/Switch/switch.js +5 -5
  36. package/dist/cjs/Switch/switch.js.map +1 -1
  37. package/dist/cjs/Tabs/tab.js +1 -1
  38. package/dist/cjs/Tabs/tab.js.map +1 -1
  39. package/dist/cjs/TextField/text_field.js +4 -4
  40. package/dist/cjs/TextField/text_field.js.map +1 -1
  41. package/dist/cjs/TextareaField/textarea_field.js +4 -4
  42. package/dist/cjs/TextareaField/textarea_field.js.map +1 -1
  43. package/dist/cjs/hooks/create_dialog.js +89 -0
  44. package/dist/cjs/hooks/create_dialog.js.map +1 -0
  45. package/dist/cjs/hooks/index.js +3 -1
  46. package/dist/cjs/hooks/index.js.map +1 -1
  47. package/dist/cjs/styles/foundations/sizes.js +0 -14
  48. package/dist/cjs/styles/foundations/sizes.js.map +1 -1
  49. package/dist/cjs/styles/types.js.map +1 -1
  50. package/dist/esm/Alert/alert.js +2 -2
  51. package/dist/esm/Alert/alert.js.map +1 -1
  52. package/dist/esm/Autocomplete/autocomplete.js +12 -12
  53. package/dist/esm/Autocomplete/autocomplete.js.map +1 -1
  54. package/dist/esm/Avatar/avatar.js +6 -6
  55. package/dist/esm/Avatar/avatar.js.map +1 -1
  56. package/dist/esm/Button/button.js +9 -9
  57. package/dist/esm/Button/button.js.map +1 -1
  58. package/dist/esm/Checkbox/checkbox.js +2 -2
  59. package/dist/esm/Checkbox/checkbox.js.map +1 -1
  60. package/dist/esm/Chip/chip.js +1 -1
  61. package/dist/esm/Chip/chip.js.map +1 -1
  62. package/dist/esm/CircularProgress/circular_progress.js +4 -4
  63. package/dist/esm/CircularProgress/circular_progress.js.map +1 -1
  64. package/dist/esm/Dialog/dialog.js +4 -6
  65. package/dist/esm/Dialog/dialog.js.map +1 -1
  66. package/dist/esm/Dialog/dialog_actions.js +3 -2
  67. package/dist/esm/Dialog/dialog_actions.js.map +1 -1
  68. package/dist/esm/Dialog/dialog_content.js +7 -9
  69. package/dist/esm/Dialog/dialog_content.js.map +1 -1
  70. package/dist/esm/Dialog/dialog_title.js +8 -9
  71. package/dist/esm/Dialog/dialog_title.js.map +1 -1
  72. package/dist/esm/Fab/fab.js +3 -3
  73. package/dist/esm/Fab/fab.js.map +1 -1
  74. package/dist/esm/Menu/menu.js +4 -4
  75. package/dist/esm/Menu/menu.js.map +1 -1
  76. package/dist/esm/MenuList/menu_item.js +3 -3
  77. package/dist/esm/MenuList/menu_item.js.map +1 -1
  78. package/dist/esm/NativeSelect/native_select.js +4 -4
  79. package/dist/esm/NativeSelect/native_select.js.map +1 -1
  80. package/dist/esm/Radio/radio.js +2 -2
  81. package/dist/esm/Radio/radio.js.map +1 -1
  82. package/dist/esm/Select/select.js +10 -10
  83. package/dist/esm/Select/select.js.map +1 -1
  84. package/dist/esm/Switch/switch.js +5 -5
  85. package/dist/esm/Switch/switch.js.map +1 -1
  86. package/dist/esm/Tabs/tab.js +1 -1
  87. package/dist/esm/Tabs/tab.js.map +1 -1
  88. package/dist/esm/TextField/text_field.js +4 -4
  89. package/dist/esm/TextField/text_field.js.map +1 -1
  90. package/dist/esm/TextareaField/textarea_field.js +4 -4
  91. package/dist/esm/TextareaField/textarea_field.js.map +1 -1
  92. package/dist/esm/hooks/create_dialog.js +83 -0
  93. package/dist/esm/hooks/create_dialog.js.map +1 -0
  94. package/dist/esm/hooks/index.js +1 -0
  95. package/dist/esm/hooks/index.js.map +1 -1
  96. package/dist/esm/styles/foundations/sizes.js +0 -14
  97. package/dist/esm/styles/foundations/sizes.js.map +1 -1
  98. package/dist/esm/styles/types.js.map +1 -1
  99. package/dist/esnext/Alert/alert.js +2 -2
  100. package/dist/esnext/Alert/alert.js.map +1 -1
  101. package/dist/esnext/Autocomplete/autocomplete.js +12 -12
  102. package/dist/esnext/Autocomplete/autocomplete.js.map +1 -1
  103. package/dist/esnext/Avatar/avatar.js +6 -6
  104. package/dist/esnext/Avatar/avatar.js.map +1 -1
  105. package/dist/esnext/Button/button.js +12 -12
  106. package/dist/esnext/Button/button.js.map +1 -1
  107. package/dist/esnext/Checkbox/checkbox.js +2 -2
  108. package/dist/esnext/Checkbox/checkbox.js.map +1 -1
  109. package/dist/esnext/Chip/chip.js +3 -3
  110. package/dist/esnext/Chip/chip.js.map +1 -1
  111. package/dist/esnext/CircularProgress/circular_progress.js +4 -4
  112. package/dist/esnext/CircularProgress/circular_progress.js.map +1 -1
  113. package/dist/esnext/Dialog/dialog.js +4 -7
  114. package/dist/esnext/Dialog/dialog.js.map +1 -1
  115. package/dist/esnext/Dialog/dialog_actions.js +3 -2
  116. package/dist/esnext/Dialog/dialog_actions.js.map +1 -1
  117. package/dist/esnext/Dialog/dialog_content.js +7 -9
  118. package/dist/esnext/Dialog/dialog_content.js.map +1 -1
  119. package/dist/esnext/Dialog/dialog_title.js +8 -9
  120. package/dist/esnext/Dialog/dialog_title.js.map +1 -1
  121. package/dist/esnext/Fab/fab.js +3 -3
  122. package/dist/esnext/Fab/fab.js.map +1 -1
  123. package/dist/esnext/Menu/menu.js +4 -4
  124. package/dist/esnext/Menu/menu.js.map +1 -1
  125. package/dist/esnext/MenuList/menu_item.js +3 -3
  126. package/dist/esnext/MenuList/menu_item.js.map +1 -1
  127. package/dist/esnext/NativeSelect/native_select.js +4 -4
  128. package/dist/esnext/NativeSelect/native_select.js.map +1 -1
  129. package/dist/esnext/Radio/radio.js +2 -2
  130. package/dist/esnext/Radio/radio.js.map +1 -1
  131. package/dist/esnext/Select/select.js +11 -11
  132. package/dist/esnext/Select/select.js.map +1 -1
  133. package/dist/esnext/Switch/switch.js +5 -5
  134. package/dist/esnext/Switch/switch.js.map +1 -1
  135. package/dist/esnext/Tabs/tab.js +2 -2
  136. package/dist/esnext/Tabs/tab.js.map +1 -1
  137. package/dist/esnext/TextField/text_field.js +4 -4
  138. package/dist/esnext/TextField/text_field.js.map +1 -1
  139. package/dist/esnext/TextareaField/textarea_field.js +4 -4
  140. package/dist/esnext/TextareaField/textarea_field.js.map +1 -1
  141. package/dist/esnext/hooks/create_dialog.js +83 -0
  142. package/dist/esnext/hooks/create_dialog.js.map +1 -0
  143. package/dist/esnext/hooks/index.js +1 -0
  144. package/dist/esnext/hooks/index.js.map +1 -1
  145. package/dist/esnext/styles/foundations/sizes.js +0 -14
  146. package/dist/esnext/styles/foundations/sizes.js.map +1 -1
  147. package/dist/esnext/styles/types.js.map +1 -1
  148. package/dist/types/Dialog/dialog.d.ts +2 -2
  149. package/dist/types/Dialog/dialog_content.d.ts +0 -5
  150. package/dist/types/Dialog/dialog_title.d.ts +2 -2
  151. package/dist/types/hooks/create_dialog.d.ts +72 -0
  152. package/dist/types/hooks/index.d.ts +1 -0
  153. package/dist/types/styles/foundations/sizes.d.ts +0 -28
  154. package/dist/types/styles/types.d.ts +1 -1
  155. package/package.json +6 -6
@@ -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.1",
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": "e4df857485e60a29564d8ec1caab6b4914f61e22"
82
+ "gitHead": "6e4f8db9e9e1b440c671b8b18a6c6d015e7b5cde"
83
83
  }