@taiv/ui 1.9.0 → 1.10.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 (43) hide show
  1. package/dist/components/Info/Badge/Badge.d.ts +10 -8
  2. package/dist/components/Info/Badge/Badge.d.ts.map +1 -1
  3. package/dist/components/Info/Badge/Badge.js +23 -45
  4. package/dist/components/Info/Badge/Badge.stories.d.ts +15 -0
  5. package/dist/components/Info/Badge/Badge.stories.d.ts.map +1 -0
  6. package/dist/components/Info/Badge/Badge.stories.js +92 -0
  7. package/dist/components/Info/Badge/sizes.d.ts +34 -0
  8. package/dist/components/Info/Badge/sizes.d.ts.map +1 -0
  9. package/dist/components/Info/Badge/sizes.js +24 -0
  10. package/dist/components/Info/Badge/variants.d.ts +6 -0
  11. package/dist/components/Info/Badge/variants.d.ts.map +1 -0
  12. package/dist/components/Info/Badge/variants.js +22 -0
  13. package/dist/components/Info/Modals/FormModal/FormModal.d.ts +16 -0
  14. package/dist/components/Info/Modals/FormModal/FormModal.d.ts.map +1 -0
  15. package/dist/components/Info/Modals/FormModal/FormModal.js +59 -0
  16. package/dist/components/Info/Modals/FormModal/FormModal.stories.d.ts +14 -0
  17. package/dist/components/Info/Modals/FormModal/FormModal.stories.d.ts.map +1 -0
  18. package/dist/components/Info/Modals/FormModal/FormModal.stories.js +187 -0
  19. package/dist/components/Inputs/Buttons/Button/Button.d.ts +2 -2
  20. package/dist/components/Inputs/Buttons/Button/Button.d.ts.map +1 -1
  21. package/dist/components/Inputs/Buttons/Button/Button.js +3 -4
  22. package/dist/components/Inputs/Buttons/IconButton/IconButton.d.ts +2 -2
  23. package/dist/components/Inputs/Buttons/IconButton/IconButton.d.ts.map +1 -1
  24. package/dist/components/Inputs/Buttons/IconButton/IconButton.js +23 -4
  25. package/dist/components/Inputs/Buttons/shared/variants.d.ts +76 -188
  26. package/dist/components/Inputs/Buttons/shared/variants.d.ts.map +1 -1
  27. package/dist/components/Inputs/Buttons/shared/variants.js +49 -88
  28. package/dist/components/Layout/Table/Table.d.ts +3 -1
  29. package/dist/components/Layout/Table/Table.d.ts.map +1 -1
  30. package/dist/components/Layout/Table/Table.js +3 -3
  31. package/dist/components/Layout/Table/Table.stories.d.ts +3 -0
  32. package/dist/components/Layout/Table/Table.stories.d.ts.map +1 -1
  33. package/dist/components/Layout/Table/Table.stories.js +60 -1
  34. package/dist/components/index.d.ts +1 -0
  35. package/dist/components/index.d.ts.map +1 -1
  36. package/dist/components/index.js +1 -0
  37. package/dist/hooks/useConfirmationModal.d.ts +1 -1
  38. package/dist/hooks/useConfirmationModal.d.ts.map +1 -1
  39. package/dist/hooks/useConfirmationModal.js +3 -1
  40. package/dist/hooks/useInfoModal.d.ts +1 -1
  41. package/dist/hooks/useInfoModal.d.ts.map +1 -1
  42. package/dist/hooks/useInfoModal.js +3 -1
  43. package/package.json +2 -3
@@ -1,29 +1,42 @@
1
1
  import { primary, neutral, error, success, warning } from '../../../../constants/colors';
2
- export const buttonVariants = {
2
+ // Overrides mantine due to rem difference
3
+ const loading = {
4
+ top: '-0.1rem',
5
+ right: '-0.1rem',
6
+ left: '-0.1rem',
7
+ bottom: '-0.1rem',
8
+ borderRadius: '8px',
9
+ };
10
+ const disabled = {
11
+ background: neutral[50],
12
+ border: `1px solid ${neutral[50]}`,
13
+ color: neutral[100],
14
+ };
15
+ export const componentVariants = {
3
16
  primary: {
4
17
  background: `linear-gradient(to right, ${primary[300]}, ${primary[200]})`,
18
+ border: `1px solid ${primary[200]}`,
5
19
  color: 'white',
6
20
  '&:hover': {
7
21
  background: `linear-gradient(to right, ${primary[300]}, ${primary[300]})`,
8
- transition: 'background 0.3s ease-in-out',
9
22
  },
10
23
  '&:active': {
11
24
  background: 'white',
12
- border: `1px solid ${primary[200]}`,
13
- color: primary[200],
25
+ border: `1px solid ${primary[300]}`,
26
+ color: primary[300],
14
27
  },
15
28
  '&:toggled': {
16
- background: `linear-gradient(to right, ${primary[300]}, ${primary[300]})`,
29
+ background: `${primary[300]}`,
17
30
  color: 'white',
18
31
  },
19
32
  '&:disabled': {
20
- background: neutral[50],
21
- color: neutral[100],
33
+ ...disabled,
22
34
  },
23
35
  '&[data-loading]': {
24
36
  '& .mantine-Button-icon svg': {
25
37
  stroke: 'white',
26
38
  },
39
+ '&:before': loading,
27
40
  },
28
41
  },
29
42
  secondary: {
@@ -44,91 +57,85 @@ export const buttonVariants = {
44
57
  background: neutral[100],
45
58
  color: 'neutral[200]',
46
59
  },
47
- '&:disabled': {
48
- background: neutral[50],
49
- border: `1px solid ${neutral[50]}`,
50
- color: neutral[100],
51
- },
60
+ '&:disabled': disabled,
52
61
  '&[data-loading]': {
53
62
  '& .mantine-Button-icon svg': {
54
63
  stroke: neutral[200],
55
64
  },
65
+ '&:before': loading,
56
66
  },
57
67
  },
58
68
  cancel: {
59
69
  background: error[200],
60
70
  color: 'white',
71
+ border: `1px solid ${error[200]}`,
61
72
  '&:hover': {
62
73
  background: error[100],
74
+ border: `1px solid ${error[100]}`,
63
75
  },
64
76
  '&:active': {
65
77
  background: 'white',
66
- border: `1px solid ${error[200]}`,
67
- color: error[200],
78
+ border: `1px solid ${error[100]}`,
79
+ color: error[100],
68
80
  },
69
81
  '&:toggled': {
70
82
  background: error[100],
71
83
  color: 'white',
72
84
  },
73
- '&:disabled': {
74
- background: error[50],
75
- border: `1px solid ${error[50]}`,
76
- color: 'white',
77
- },
85
+ '&:disabled': disabled,
78
86
  '&[data-loading]': {
79
87
  '& .mantine-Button-icon svg': {
80
88
  stroke: 'white',
81
89
  },
90
+ '&:before': loading,
82
91
  },
83
92
  },
84
93
  success: {
85
94
  background: success[200],
86
95
  color: 'white',
96
+ border: `1px solid ${success[200]}`,
87
97
  '&:hover': {
88
98
  background: success[100],
99
+ border: `1px solid ${success[100]}`,
89
100
  },
90
101
  '&:active': {
91
102
  background: 'white',
92
- border: `1px solid ${success[200]}`,
93
- color: success[200],
103
+ border: `1px solid ${success[100]}`,
104
+ color: success[100],
94
105
  },
95
106
  '&:toggled': {
96
107
  background: success[100],
97
108
  },
98
- '&:disabled': {
99
- background: success[50],
100
- border: `1px solid ${success[50]}`,
101
- color: 'white',
102
- },
109
+ '&:disabled': disabled,
103
110
  '&[data-loading]': {
104
111
  '& .mantine-Button-icon svg': {
105
112
  stroke: 'white',
106
113
  },
114
+ '&:before': loading,
107
115
  },
108
116
  },
109
117
  warning: {
110
118
  background: warning[200],
111
119
  color: 'white',
120
+ border: `1px solid ${warning[200]}`,
112
121
  '&:hover': {
113
122
  background: warning[100],
123
+ border: `1px solid ${warning[100]}`,
114
124
  },
115
125
  '&:active': {
116
126
  background: 'white',
117
- border: `1px solid ${warning[200]}`,
118
- color: warning[200],
127
+ border: `1px solid ${warning[100]}`,
128
+ color: warning[100],
119
129
  },
120
130
  '&:toggled': {
121
131
  background: warning[100],
122
132
  },
123
- '&:disabled': {
124
- background: warning[50],
125
- border: `1px solid ${warning[50]}`,
126
- color: 'white',
127
- },
133
+ '&:disabled': disabled,
128
134
  '&[data-loading]': {
129
135
  '& .mantine-Button-icon svg': {
130
136
  stroke: 'white',
131
137
  },
138
+ '&:before': loading,
132
139
  },
133
140
  },
134
141
  text: {
@@ -158,6 +165,7 @@ export const buttonVariants = {
158
165
  '& .mantine-Button-icon svg': {
159
166
  stroke: neutral[200],
160
167
  },
168
+ '&:before': loading,
161
169
  },
162
170
  },
163
171
  nav: {
@@ -186,63 +194,16 @@ export const buttonVariants = {
186
194
  '& .mantine-Button-icon svg': {
187
195
  stroke: neutral[200],
188
196
  },
197
+ '&:before': loading,
189
198
  },
190
199
  },
191
200
  };
192
201
  export const subtleVariants = {
193
- primary: {
194
- ...buttonVariants.primary,
195
- background: 'white',
196
- color: primary[200],
197
- '&:hover': {
198
- background: primary[100],
199
- transition: 'background 0.3s ease-in-out',
200
- },
201
- '&:active': {
202
- background: 'white',
203
- border: `1px solid ${primary[200]}`,
204
- color: primary[200],
205
- },
206
- '&:toggled': {
207
- background: primary[300],
208
- color: 'white',
209
- },
210
- },
211
- secondary: {
212
- ...buttonVariants.secondary,
213
- background: 'white',
214
- color: neutral[200],
215
- border: `1px solid ${neutral[50]}`,
216
- },
217
- cancel: {
218
- ...buttonVariants.cancel,
219
- background: 'white',
220
- color: error[200],
221
- },
222
- success: {
223
- ...buttonVariants.success,
224
- background: 'white',
225
- color: success[200],
226
- },
227
- warning: {
228
- ...buttonVariants.warning,
229
- background: 'white',
230
- color: warning[200],
231
- },
232
- text: {
233
- ...buttonVariants.text,
234
- background: 'transparent',
235
- color: neutral[200],
236
- border: 'none',
237
- padding: '0',
238
- height: 'auto',
239
- minWidth: 'unset',
240
- },
241
- nav: {
242
- ...buttonVariants.nav,
243
- background: 'white',
244
- paddingLeft: '0.8rem',
245
- color: neutral[200],
246
- border: 'none',
247
- },
202
+ primary: { color: primary[200] },
203
+ secondary: { color: neutral[200] },
204
+ cancel: { color: error[200] },
205
+ success: { color: success[200] },
206
+ warning: { color: warning[200] },
207
+ text: { color: neutral[200] },
208
+ nav: { color: neutral[200] },
248
209
  };
@@ -9,7 +9,9 @@ interface TableProps<T> {
9
9
  ListItem: React.ComponentType<{
10
10
  data: T;
11
11
  }>;
12
+ placeholder?: React.ReactNode;
13
+ shadow?: boolean;
12
14
  }
13
- declare const Table: <T>({ columnConfigs, data, ListItem }: TableProps<T>) => import("react/jsx-runtime").JSX.Element;
15
+ declare const Table: <T>({ columnConfigs, data, ListItem, placeholder, shadow }: TableProps<T>) => import("react/jsx-runtime").JSX.Element;
14
16
  export { Table, type ColumnConfig, type TableProps };
15
17
  //# sourceMappingURL=Table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Table/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAqB,MAAM,OAAO,CAAC;AAIhE,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,UAAU,UAAU,CAAC,CAAC;IACpB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;CAC5C;AAED,QAAA,MAAM,KAAK,GAAI,CAAC,EAAG,mCAAmC,UAAU,CAAC,CAAC,CAAC,4CAsElE,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Table/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAqB,MAAM,OAAO,CAAC;AAIhE,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,UAAU,UAAU,CAAC,CAAC;IACpB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,QAAA,MAAM,KAAK,GAAI,CAAC,EAAG,wDAAgE,UAAU,CAAC,CAAC,CAAC,4CAsE/F,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,CAAC"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useRef } from 'react';
3
3
  import { Box } from '../Box/Box';
4
4
  import { fontWeight, neutral } from '../../../constants';
5
- const Table = ({ columnConfigs, data, ListItem }) => {
5
+ const Table = ({ columnConfigs, data, ListItem, placeholder, shadow = false }) => {
6
6
  const tableRef = useRef(null);
7
7
  /**
8
8
  * Apply column styles to the table cells.
@@ -31,7 +31,7 @@ const Table = ({ columnConfigs, data, ListItem }) => {
31
31
  return (_jsx(Box, { sx: {
32
32
  borderTopLeftRadius: '8px',
33
33
  borderTopRightRadius: '8px',
34
- boxShadow: '0px 2px 6px -3px #AFAFAF',
34
+ boxShadow: shadow ? '0 8px 40px 0 rgba(112, 144, 176, 0.20)' : 'none',
35
35
  overflow: 'hidden',
36
36
  }, children: _jsxs("table", { ref: tableRef, style: {
37
37
  width: '100%',
@@ -43,6 +43,6 @@ const Table = ({ columnConfigs, data, ListItem }) => {
43
43
  paddingBottom: '9px',
44
44
  paddingTop: '9px',
45
45
  ...column.style,
46
- }, children: column.heading }, column.heading || `column-${index}`))) }) }), _jsx("tbody", { children: data.map((item) => (_jsx(ListItem, { data: item }, String(item).slice(0, 10)))) })] }) }));
46
+ }, children: column.heading }, column.heading || `column-${index}`))) }) }), _jsx("tbody", { children: (!data || data.length === 0) && placeholder ? _jsx("tr", { children: _jsx("td", { colSpan: columnConfigs.length, children: placeholder }) }) : data.map((item) => (_jsx(ListItem, { data: item }, String(item).slice(0, 10)))) })] }) }));
47
47
  };
48
48
  export { Table };
@@ -7,4 +7,7 @@ export declare const BasicTable: Story;
7
7
  export declare const TableWithCustomComponents: Story;
8
8
  export declare const TableWithProgressBars: Story;
9
9
  export declare const StyledColumns: Story;
10
+ export declare const TableWithPlaceholder: Story;
11
+ export declare const TableWithoutPlaceholder: Story;
12
+ export declare const TableWithShadow: Story;
10
13
  //# sourceMappingURL=Table.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Table/Table.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKhC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,KAAK,CAiB5B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAyPnC,eAAO,MAAM,UAAU,EAAE,KAmBxB,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAqBvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KAoBnC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAmB3B,CAAC"}
1
+ {"version":3,"file":"Table.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Table/Table.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAUhC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,KAAK,CAyB5B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAyPnC,eAAO,MAAM,UAAU,EAAE,KAmBxB,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAqBvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KAoBnC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAmB3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAsBlC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAerC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAa7B,CAAC"}
@@ -2,8 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Table } from './Table';
3
3
  import { Badge } from '../../Info/Badge/Badge';
4
4
  import { Button } from '../../Inputs/Buttons/Button/Button';
5
+ import { Text } from '../../Typography/Text/Text';
6
+ import { Center } from '../Center/Center';
7
+ import { IconInfoCircle } from '@tabler/icons-react';
8
+ import { neutral } from '../../../constants/colors';
9
+ import { Group } from '../Group/Group';
5
10
  const meta = {
6
- title: 'Layouts/Table',
11
+ title: 'Components/Layout/Table',
7
12
  component: Table,
8
13
  argTypes: {
9
14
  columnConfigs: {
@@ -18,6 +23,14 @@ const meta = {
18
23
  control: false,
19
24
  description: 'Component that renders each table row',
20
25
  },
26
+ placeholder: {
27
+ control: { type: 'object' },
28
+ description: 'Placeholder to display when no data is available',
29
+ },
30
+ shadow: {
31
+ control: { type: 'boolean' },
32
+ description: 'Adds shadow to the table',
33
+ },
21
34
  },
22
35
  };
23
36
  export default meta;
@@ -255,3 +268,49 @@ export const StyledColumns = {
255
268
  },
256
269
  },
257
270
  };
271
+ export const TableWithPlaceholder = {
272
+ args: {
273
+ columnConfigs: [
274
+ { heading: 'Name', style: { width: '50%' } },
275
+ { heading: 'Email', style: { width: '50%' } },
276
+ ],
277
+ placeholder: (_jsx(Center, { py: '5rem', children: _jsxs(Group, { gap: '0.5rem', align: 'center', children: [_jsx(IconInfoCircle, { color: neutral[200], size: '2rem' }), _jsx(Text, { children: "No data available at this time" })] }) })),
278
+ },
279
+ parameters: {
280
+ docs: {
281
+ description: {
282
+ story: 'A table with a placeholder displayed when no data is available.',
283
+ },
284
+ },
285
+ },
286
+ };
287
+ export const TableWithoutPlaceholder = {
288
+ args: {
289
+ columnConfigs: [
290
+ { heading: 'Name', style: { width: '50%' } },
291
+ { heading: 'Email', style: { width: '50%' } },
292
+ ],
293
+ data: [],
294
+ },
295
+ parameters: {
296
+ docs: {
297
+ description: {
298
+ story: 'A table with no placeholder displayed when no data is available.',
299
+ },
300
+ },
301
+ },
302
+ };
303
+ export const TableWithShadow = {
304
+ args: {
305
+ columnConfigs: [
306
+ { heading: 'Name', style: { width: '25%', paddingLeft: '20px', fontWeight: '600' } },
307
+ { heading: 'Email', style: { width: '30%', textAlign: 'left' } },
308
+ { heading: 'Role', style: { width: '20%', textAlign: 'center' } },
309
+ { heading: 'Status', style: { width: '15%', textAlign: 'center' } },
310
+ { heading: 'Last Login', style: { width: '10%', textAlign: 'right', paddingRight: '20px' } },
311
+ ],
312
+ data: userData,
313
+ ListItem: UserListItem,
314
+ shadow: true,
315
+ },
316
+ };
@@ -7,6 +7,7 @@ export { RemovableItemList } from './Data/RemovableItemList/RemovableItemList';
7
7
  export { StatsCard } from './Data/Cards/StatsCard/StatsCard';
8
8
  export { StatsBadge } from './Data/StatsBadge/StatsBadge';
9
9
  export { Modal } from './Info/Modals/Modal/Modal';
10
+ export { FormModal } from './Info/Modals/FormModal/FormModal';
10
11
  export { ModalProvider } from './Info/Modals/ModalProvider/ModalProvider';
11
12
  export { NotificationProvider } from './Info/Notifications/NotificationProvider/NotificationProvider';
12
13
  export { Badge } from './Info/Badge/Badge';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export { StatsCard } from './Data/Cards/StatsCard/StatsCard';
9
9
  export { StatsBadge } from './Data/StatsBadge/StatsBadge';
10
10
  //Info
11
11
  export { Modal } from './Info/Modals/Modal/Modal';
12
+ export { FormModal } from './Info/Modals/FormModal/FormModal';
12
13
  export { ModalProvider } from './Info/Modals/ModalProvider/ModalProvider';
13
14
  export { NotificationProvider } from './Info/Notifications/NotificationProvider/NotificationProvider';
14
15
  export { Badge } from './Info/Badge/Badge';
@@ -7,7 +7,7 @@ export declare const useConfirmationModal: () => {
7
7
  message?: string;
8
8
  confirmLabel?: string;
9
9
  cancelLabel?: string;
10
- icon?: React.ReactNode;
10
+ icon?: React.ReactElement;
11
11
  onConfirm?: () => void;
12
12
  onCancel?: () => void;
13
13
  size?: string | number;
@@ -1 +1 @@
1
- {"version":3,"file":"useConfirmationModal.d.ts","sourceRoot":"","sources":["../../src/hooks/useConfirmationModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAInE,eAAO,MAAM,oBAAoB;oBACR;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,OAAO,aAAa,EAAE,OAAO,CAAC,CAAC;QACvD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB;qBAsFuB,MAAM;;CAa/B,CAAC"}
1
+ {"version":3,"file":"useConfirmationModal.d.ts","sourceRoot":"","sources":["../../src/hooks/useConfirmationModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAInE,eAAO,MAAM,oBAAoB;oBACR;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,OAAO,aAAa,EAAE,OAAO,CAAC,CAAC;QACvD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB;qBAwFuB,MAAM;;CAa/B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
2
3
  import { modals } from '@mantine/modals';
3
4
  import { neutral } from '../constants/colors';
4
5
  import { Title } from '../components/Typography/Title/Title';
@@ -28,7 +29,8 @@ export const useConfirmationModal = () => {
28
29
  backgroundColor: selectedVariant.iconBackgroundColor,
29
30
  border: `2px solid ${selectedVariant.iconColor}`,
30
31
  };
31
- const modalIcon = icon || _jsx("i", { className: selectedVariant.icon, style: { color: selectedVariant.iconColor, fontSize: '2rem' } });
32
+ const coloredIcon = icon && React.cloneElement(icon, { color: icon.props.color || selectedVariant.iconColor });
33
+ const modalIcon = coloredIcon || _jsx("i", { className: selectedVariant.icon, style: { color: selectedVariant.iconColor, fontSize: '2rem' } });
32
34
  const ConfirmModalContent = () => {
33
35
  return (_jsx(Center, { h: "100%", w: "100%", children: _jsxs(Stack, { gap: "2rem", h: "100%", w: "100%", align: "center", children: [_jsxs(Stack, { gap: "1.5rem", align: "center", children: [_jsx(Center, { style: iconContainer, children: modalIcon }), _jsxs(Stack, { gap: "0.25rem", align: "center", children: [_jsx(Title, { variant: "cardHeader", align: "center", children: title || selectedVariant.title }), _jsx(Title, { variant: "cardSubheader", align: "center", children: message || selectedVariant.message })] })] }), _jsx(Center, { h: "100%", w: "100%", children: _jsxs(Group, { gap: "1rem", align: "center", children: [_jsx(Button, { onClick: handleCancel, variant: "secondary", children: cancelLabel || selectedVariant.cancelLabel }), _jsx(Button, { onClick: handleConfirm, variant: selectedVariant.buttonVariant, children: confirmLabel || selectedVariant.confirmLabel })] }) })] }) }));
34
36
  };
@@ -5,7 +5,7 @@ export declare const useInfoModal: () => {
5
5
  variant?: keyof typeof modalVariants;
6
6
  title?: string;
7
7
  message?: string;
8
- icon?: React.ReactNode;
8
+ icon?: React.ReactElement;
9
9
  onConfirm?: () => void;
10
10
  size?: string | number;
11
11
  }) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useInfoModal.d.ts","sourceRoot":"","sources":["../../src/hooks/useInfoModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGnE,eAAO,MAAM,YAAY;oBACA;QAAE,OAAO,CAAC,EAAE,MAAM,OAAO,aAAa,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;qBA4EjJ,MAAM;;CAa/B,CAAC"}
1
+ {"version":3,"file":"useInfoModal.d.ts","sourceRoot":"","sources":["../../src/hooks/useInfoModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGnE,eAAO,MAAM,YAAY;oBACA;QAAE,OAAO,CAAC,EAAE,MAAM,OAAO,aAAa,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;qBA8EpJ,MAAM;;CAa/B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
2
3
  import { modals } from '@mantine/modals';
3
4
  import { neutral } from '../constants/colors';
4
5
  import { Title } from '../components/Typography/Title/Title';
@@ -22,7 +23,8 @@ export const useInfoModal = () => {
22
23
  backgroundColor: selectedVariant.iconBackgroundColor,
23
24
  border: `2px solid ${selectedVariant.iconColor}`,
24
25
  };
25
- const modalIcon = icon || _jsx("i", { className: selectedVariant.icon, style: { color: selectedVariant.iconColor, fontSize: '2rem' } });
26
+ const coloredIcon = icon && React.cloneElement(icon, { color: icon.props.color || selectedVariant.iconColor });
27
+ const modalIcon = coloredIcon || _jsx("i", { className: selectedVariant.icon, style: { color: selectedVariant.iconColor, fontSize: '2rem' } });
26
28
  const InfoModalContent = () => {
27
29
  return (_jsx(Center, { h: "100%", w: "100%", children: _jsxs(Stack, { gap: "2rem", h: "100%", w: "100%", align: "center", children: [_jsxs(Stack, { gap: "1.5rem", align: "center", children: [_jsx(Center, { style: iconContainer, children: modalIcon }), _jsxs(Stack, { gap: "0.25rem", align: "center", children: [_jsx(Title, { variant: "cardHeader", align: "center", children: title || selectedVariant.title }), _jsx(Title, { variant: "cardSubheader", align: "center", children: message || selectedVariant.message })] })] }), _jsx(Center, { h: "100%", w: "100%", children: _jsx(Button, { onClick: handleConfirm, variant: selectedVariant.buttonVariant, children: "OK" }) })] }) }));
28
30
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiv/ui",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "author": "Taiv",
5
5
  "description": "Taiv's web UI Toolkit built on Mantine v6",
6
6
  "main": "dist/index.js",
@@ -17,8 +17,7 @@
17
17
  "dev": "npm link && tsc --watch",
18
18
  "clean": "rm -rf dist",
19
19
  "storybook": "storybook dev -p 6006",
20
- "build-storybook": "storybook build",
21
- "chromatic": "npx chromatic --project-token=chpt_8fb53e9533016b9"
20
+ "build-storybook": "storybook build"
22
21
  },
23
22
  "dependencies": {
24
23
  "@emotion/react": "^11.14.0",