@cerberus-design/react 0.8.0-next-79fb5c6 → 0.8.0-next-9aba71d

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 (102) hide show
  1. package/build/legacy/_tsup-dts-rollup.d.ts +65 -5
  2. package/build/legacy/{chunk-VQMP3PBJ.js → chunk-23UPROCG.js} +3 -3
  3. package/build/legacy/{chunk-VQMP3PBJ.js.map → chunk-23UPROCG.js.map} +1 -1
  4. package/build/legacy/{chunk-RQPDRHRP.js → chunk-2FK7NR7Y.js} +4 -4
  5. package/build/legacy/{chunk-6PN23MAZ.js → chunk-3RRNMPFC.js} +2 -2
  6. package/build/{modern/chunk-R6DGIPXN.js → legacy/chunk-4FD33RTW.js} +5 -5
  7. package/build/legacy/{chunk-C7447UIN.js → chunk-53QBTZZF.js} +5 -5
  8. package/build/legacy/{chunk-HQIRGWY3.js → chunk-5WVXIAG2.js} +2 -2
  9. package/build/legacy/chunk-7NX4RGDB.js +218 -0
  10. package/build/legacy/chunk-7NX4RGDB.js.map +1 -0
  11. package/build/{modern/chunk-K3X3OMAA.js → legacy/chunk-GUECLKHY.js} +9 -1
  12. package/build/legacy/chunk-GUECLKHY.js.map +1 -0
  13. package/build/{modern/chunk-MVV3VTY2.js → legacy/chunk-ID3XWGLY.js} +2 -2
  14. package/build/legacy/{chunk-BI6UZBJB.js → chunk-JHAI4ZHG.js} +2 -2
  15. package/build/legacy/{chunk-7EDCTSAP.js → chunk-KUQZECNS.js} +5 -5
  16. package/build/legacy/{chunk-RHMGQNFD.js → chunk-RHG26FYL.js} +5 -5
  17. package/build/legacy/{chunk-XKID4ZMW.js → chunk-TJI2SJCZ.js} +10 -10
  18. package/build/{modern/chunk-JJP2TFTU.js → legacy/chunk-VCR5C6Q3.js} +1 -1
  19. package/build/legacy/chunk-VCR5C6Q3.js.map +1 -0
  20. package/build/legacy/components/Checkbox.js +4 -4
  21. package/build/legacy/components/FileStatus.js +17 -0
  22. package/build/legacy/components/FileStatus.js.map +1 -0
  23. package/build/legacy/components/FileUploader.js +3 -3
  24. package/build/legacy/components/Input.js +4 -4
  25. package/build/legacy/components/Label.js +2 -2
  26. package/build/legacy/components/ModalIcon.js +1 -1
  27. package/build/legacy/components/Notification.js +3 -3
  28. package/build/legacy/components/Select.js +4 -4
  29. package/build/legacy/components/Toggle.js +3 -3
  30. package/build/legacy/config/cerbIcons.js +1 -1
  31. package/build/legacy/config/defineIcons.js +2 -2
  32. package/build/legacy/context/confirm-modal.js +4 -4
  33. package/build/legacy/context/notification-center.js +4 -4
  34. package/build/legacy/context/prompt-modal.js +7 -7
  35. package/build/legacy/index.js +33 -27
  36. package/build/legacy/index.js.map +1 -1
  37. package/build/modern/_tsup-dts-rollup.d.ts +65 -5
  38. package/build/modern/{chunk-RQPDRHRP.js → chunk-2FK7NR7Y.js} +4 -4
  39. package/build/{legacy/chunk-R6DGIPXN.js → modern/chunk-4FD33RTW.js} +5 -5
  40. package/build/modern/{chunk-C7447UIN.js → chunk-53QBTZZF.js} +5 -5
  41. package/build/modern/{chunk-HQIRGWY3.js → chunk-5WVXIAG2.js} +2 -2
  42. package/build/modern/chunk-7NX4RGDB.js +218 -0
  43. package/build/modern/chunk-7NX4RGDB.js.map +1 -0
  44. package/build/modern/{chunk-HVICMTKV.js → chunk-EJIMJWPB.js} +2 -2
  45. package/build/{legacy/chunk-K3X3OMAA.js → modern/chunk-GUECLKHY.js} +9 -1
  46. package/build/modern/chunk-GUECLKHY.js.map +1 -0
  47. package/build/modern/{chunk-R4V7FTYK.js → chunk-GZY6CH7D.js} +5 -5
  48. package/build/{legacy/chunk-MVV3VTY2.js → modern/chunk-ID3XWGLY.js} +2 -2
  49. package/build/modern/{chunk-RHMGQNFD.js → chunk-RHG26FYL.js} +5 -5
  50. package/build/modern/{chunk-66OTWSEH.js → chunk-S6CMAXQF.js} +10 -10
  51. package/build/modern/{chunk-EKUUJB37.js → chunk-TF3HRELU.js} +3 -3
  52. package/build/modern/{chunk-EKUUJB37.js.map → chunk-TF3HRELU.js.map} +1 -1
  53. package/build/{legacy/chunk-JJP2TFTU.js → modern/chunk-VCR5C6Q3.js} +1 -1
  54. package/build/modern/chunk-VCR5C6Q3.js.map +1 -0
  55. package/build/modern/{chunk-ETIKSLRO.js → chunk-VPWBSZAR.js} +2 -2
  56. package/build/modern/components/Checkbox.js +4 -4
  57. package/build/modern/components/FileStatus.js +17 -0
  58. package/build/modern/components/FileStatus.js.map +1 -0
  59. package/build/modern/components/FileUploader.js +3 -3
  60. package/build/modern/components/Input.js +4 -4
  61. package/build/modern/components/Label.js +2 -2
  62. package/build/modern/components/ModalIcon.js +1 -1
  63. package/build/modern/components/Notification.js +3 -3
  64. package/build/modern/components/Select.js +4 -4
  65. package/build/modern/components/Toggle.js +3 -3
  66. package/build/modern/config/cerbIcons.js +1 -1
  67. package/build/modern/config/defineIcons.js +2 -2
  68. package/build/modern/context/confirm-modal.js +4 -4
  69. package/build/modern/context/notification-center.js +4 -4
  70. package/build/modern/context/prompt-modal.js +7 -7
  71. package/build/modern/index.js +33 -27
  72. package/build/modern/index.js.map +1 -1
  73. package/package.json +2 -2
  74. package/src/components/FileStatus.tsx +246 -0
  75. package/src/components/FileUploader.tsx +1 -1
  76. package/src/components/ModalIcon.tsx +2 -2
  77. package/src/config/cerbIcons.ts +12 -0
  78. package/src/index.ts +1 -0
  79. package/build/legacy/chunk-JJP2TFTU.js.map +0 -1
  80. package/build/legacy/chunk-K3X3OMAA.js.map +0 -1
  81. package/build/modern/chunk-JJP2TFTU.js.map +0 -1
  82. package/build/modern/chunk-K3X3OMAA.js.map +0 -1
  83. /package/build/legacy/{chunk-RQPDRHRP.js.map → chunk-2FK7NR7Y.js.map} +0 -0
  84. /package/build/legacy/{chunk-6PN23MAZ.js.map → chunk-3RRNMPFC.js.map} +0 -0
  85. /package/build/legacy/{chunk-R6DGIPXN.js.map → chunk-4FD33RTW.js.map} +0 -0
  86. /package/build/legacy/{chunk-C7447UIN.js.map → chunk-53QBTZZF.js.map} +0 -0
  87. /package/build/legacy/{chunk-HQIRGWY3.js.map → chunk-5WVXIAG2.js.map} +0 -0
  88. /package/build/legacy/{chunk-MVV3VTY2.js.map → chunk-ID3XWGLY.js.map} +0 -0
  89. /package/build/legacy/{chunk-BI6UZBJB.js.map → chunk-JHAI4ZHG.js.map} +0 -0
  90. /package/build/legacy/{chunk-7EDCTSAP.js.map → chunk-KUQZECNS.js.map} +0 -0
  91. /package/build/legacy/{chunk-RHMGQNFD.js.map → chunk-RHG26FYL.js.map} +0 -0
  92. /package/build/legacy/{chunk-XKID4ZMW.js.map → chunk-TJI2SJCZ.js.map} +0 -0
  93. /package/build/modern/{chunk-RQPDRHRP.js.map → chunk-2FK7NR7Y.js.map} +0 -0
  94. /package/build/modern/{chunk-R6DGIPXN.js.map → chunk-4FD33RTW.js.map} +0 -0
  95. /package/build/modern/{chunk-C7447UIN.js.map → chunk-53QBTZZF.js.map} +0 -0
  96. /package/build/modern/{chunk-HQIRGWY3.js.map → chunk-5WVXIAG2.js.map} +0 -0
  97. /package/build/modern/{chunk-HVICMTKV.js.map → chunk-EJIMJWPB.js.map} +0 -0
  98. /package/build/modern/{chunk-R4V7FTYK.js.map → chunk-GZY6CH7D.js.map} +0 -0
  99. /package/build/modern/{chunk-MVV3VTY2.js.map → chunk-ID3XWGLY.js.map} +0 -0
  100. /package/build/modern/{chunk-RHMGQNFD.js.map → chunk-RHG26FYL.js.map} +0 -0
  101. /package/build/modern/{chunk-66OTWSEH.js.map → chunk-S6CMAXQF.js.map} +0 -0
  102. /package/build/modern/{chunk-ETIKSLRO.js.map → chunk-VPWBSZAR.js.map} +0 -0
@@ -2,18 +2,18 @@
2
2
  import {
3
3
  ConfirmModal,
4
4
  useConfirmModal
5
- } from "../chunk-R4V7FTYK.js";
5
+ } from "../chunk-GZY6CH7D.js";
6
+ import "../chunk-VCR5C6Q3.js";
6
7
  import "../chunk-4CAT3FHV.js";
7
8
  import "../chunk-2UFNQM55.js";
8
9
  import "../chunk-4M4LCQ43.js";
9
10
  import "../chunk-QU7UV5DB.js";
10
11
  import "../chunk-JB7IQ2BM.js";
11
- import "../chunk-JJP2TFTU.js";
12
12
  import "../chunk-6F34A7NZ.js";
13
13
  import "../chunk-4O4QFF4S.js";
14
14
  import "../chunk-JIZQFTW6.js";
15
- import "../chunk-HQIRGWY3.js";
16
- import "../chunk-K3X3OMAA.js";
15
+ import "../chunk-5WVXIAG2.js";
16
+ import "../chunk-GUECLKHY.js";
17
17
  import "../chunk-CP7OUC2Q.js";
18
18
  import "../chunk-C5HLLGME.js";
19
19
  export {
@@ -2,16 +2,16 @@
2
2
  import {
3
3
  NotificationCenter,
4
4
  useNotificationCenter
5
- } from "../chunk-ETIKSLRO.js";
6
- import "../chunk-HVICMTKV.js";
5
+ } from "../chunk-VPWBSZAR.js";
6
+ import "../chunk-EJIMJWPB.js";
7
7
  import "../chunk-HW76XVA3.js";
8
8
  import "../chunk-3C2DJSEE.js";
9
9
  import "../chunk-4CAT3FHV.js";
10
10
  import "../chunk-6F34A7NZ.js";
11
11
  import "../chunk-4O4QFF4S.js";
12
12
  import "../chunk-JIZQFTW6.js";
13
- import "../chunk-HQIRGWY3.js";
14
- import "../chunk-K3X3OMAA.js";
13
+ import "../chunk-5WVXIAG2.js";
14
+ import "../chunk-GUECLKHY.js";
15
15
  import "../chunk-CP7OUC2Q.js";
16
16
  export {
17
17
  NotificationCenter,
@@ -2,21 +2,21 @@
2
2
  import {
3
3
  PromptModal,
4
4
  usePromptModal
5
- } from "../chunk-66OTWSEH.js";
5
+ } from "../chunk-S6CMAXQF.js";
6
+ import "../chunk-VCR5C6Q3.js";
6
7
  import "../chunk-4CAT3FHV.js";
7
- import "../chunk-C7447UIN.js";
8
- import "../chunk-RQPDRHRP.js";
8
+ import "../chunk-53QBTZZF.js";
9
+ import "../chunk-2FK7NR7Y.js";
9
10
  import "../chunk-2UFNQM55.js";
10
11
  import "../chunk-4M4LCQ43.js";
11
12
  import "../chunk-QU7UV5DB.js";
12
13
  import "../chunk-JB7IQ2BM.js";
13
- import "../chunk-JJP2TFTU.js";
14
14
  import "../chunk-6F34A7NZ.js";
15
- import "../chunk-ZAU4JVLL.js";
16
15
  import "../chunk-4O4QFF4S.js";
16
+ import "../chunk-ZAU4JVLL.js";
17
17
  import "../chunk-JIZQFTW6.js";
18
- import "../chunk-HQIRGWY3.js";
19
- import "../chunk-K3X3OMAA.js";
18
+ import "../chunk-5WVXIAG2.js";
19
+ import "../chunk-GUECLKHY.js";
20
20
  import "../chunk-CP7OUC2Q.js";
21
21
  import "../chunk-C5HLLGME.js";
22
22
  export {
@@ -1,11 +1,14 @@
1
1
  import {
2
2
  NotificationCenter,
3
3
  useNotificationCenter
4
- } from "./chunk-ETIKSLRO.js";
4
+ } from "./chunk-VPWBSZAR.js";
5
5
  import {
6
6
  PromptModal,
7
7
  usePromptModal
8
- } from "./chunk-66OTWSEH.js";
8
+ } from "./chunk-S6CMAXQF.js";
9
+ import {
10
+ Tag
11
+ } from "./chunk-Z6IWNVPN.js";
9
12
  import {
10
13
  Tbody
11
14
  } from "./chunk-PJ3744I6.js";
@@ -23,18 +26,18 @@ import {
23
26
  } from "./chunk-N3FUF4TB.js";
24
27
  import {
25
28
  Toggle
26
- } from "./chunk-MVV3VTY2.js";
29
+ } from "./chunk-ID3XWGLY.js";
27
30
  import {
28
31
  ConfirmModal,
29
32
  useConfirmModal
30
- } from "./chunk-R4V7FTYK.js";
33
+ } from "./chunk-GZY6CH7D.js";
31
34
  import {
32
35
  Radio
33
36
  } from "./chunk-PH64POOB.js";
34
37
  import {
35
38
  Option,
36
39
  Select
37
- } from "./chunk-RHMGQNFD.js";
40
+ } from "./chunk-RHG26FYL.js";
38
41
  import {
39
42
  Tab
40
43
  } from "./chunk-SONHHNYQ.js";
@@ -49,8 +52,8 @@ import {
49
52
  Tr
50
53
  } from "./chunk-A5WYZVUR.js";
51
54
  import {
52
- Tag
53
- } from "./chunk-Z6IWNVPN.js";
55
+ ModalIcon
56
+ } from "./chunk-VCR5C6Q3.js";
54
57
  import {
55
58
  NavMenuLink
56
59
  } from "./chunk-6DIGPXAD.js";
@@ -67,7 +70,7 @@ import {
67
70
  } from "./chunk-KJUCHZHV.js";
68
71
  import {
69
72
  Notification
70
- } from "./chunk-HVICMTKV.js";
73
+ } from "./chunk-EJIMJWPB.js";
71
74
  import {
72
75
  NotificationDescription
73
76
  } from "./chunk-HW76XVA3.js";
@@ -78,17 +81,14 @@ import {
78
81
  Portal
79
82
  } from "./chunk-4CAT3FHV.js";
80
83
  import {
81
- ProgressBar
82
- } from "./chunk-TYTEREKZ.js";
83
- import {
84
- IconButton
85
- } from "./chunk-SLHX5K6I.js";
84
+ FileUploader
85
+ } from "./chunk-TF3HRELU.js";
86
86
  import {
87
87
  Input
88
- } from "./chunk-C7447UIN.js";
88
+ } from "./chunk-53QBTZZF.js";
89
89
  import {
90
90
  Label
91
- } from "./chunk-RQPDRHRP.js";
91
+ } from "./chunk-2FK7NR7Y.js";
92
92
  import {
93
93
  Modal
94
94
  } from "./chunk-2UFNQM55.js";
@@ -101,9 +101,6 @@ import {
101
101
  import {
102
102
  ModalHeading
103
103
  } from "./chunk-JB7IQ2BM.js";
104
- import {
105
- ModalIcon
106
- } from "./chunk-JJP2TFTU.js";
107
104
  import {
108
105
  MODE_KEY,
109
106
  THEME_KEY,
@@ -119,7 +116,7 @@ import {
119
116
  } from "./chunk-6F34A7NZ.js";
120
117
  import {
121
118
  Checkbox
122
- } from "./chunk-R6DGIPXN.js";
119
+ } from "./chunk-4FD33RTW.js";
123
120
  import {
124
121
  Droppable
125
122
  } from "./chunk-7VJOPJVX.js";
@@ -130,6 +127,19 @@ import {
130
127
  FeatureFlags,
131
128
  useFeatureFlags
132
129
  } from "./chunk-4M3EUP57.js";
130
+ import {
131
+ Show
132
+ } from "./chunk-4O4QFF4S.js";
133
+ import {
134
+ FileStatus,
135
+ processStatus
136
+ } from "./chunk-7NX4RGDB.js";
137
+ import {
138
+ ProgressBar
139
+ } from "./chunk-TYTEREKZ.js";
140
+ import {
141
+ IconButton
142
+ } from "./chunk-SLHX5K6I.js";
133
143
  import {
134
144
  FieldMessage
135
145
  } from "./chunk-VGHVH2T3.js";
@@ -137,12 +147,6 @@ import {
137
147
  Field,
138
148
  useFieldContext
139
149
  } from "./chunk-ZAU4JVLL.js";
140
- import {
141
- FileUploader
142
- } from "./chunk-EKUUJB37.js";
143
- import {
144
- Show
145
- } from "./chunk-4O4QFF4S.js";
146
150
  import "./chunk-55J6XMHW.js";
147
151
  import {
148
152
  createNavTriggerProps
@@ -161,8 +165,8 @@ import {
161
165
  import {
162
166
  $cerberusIcons,
163
167
  defineIcons
164
- } from "./chunk-HQIRGWY3.js";
165
- import "./chunk-K3X3OMAA.js";
168
+ } from "./chunk-5WVXIAG2.js";
169
+ import "./chunk-GUECLKHY.js";
166
170
  import "./chunk-CP7OUC2Q.js";
167
171
  import {
168
172
  useModal
@@ -180,6 +184,7 @@ export {
180
184
  FeatureFlags,
181
185
  Field,
182
186
  FieldMessage,
187
+ FileStatus,
183
188
  FileUploader,
184
189
  IconButton,
185
190
  Input,
@@ -224,6 +229,7 @@ export {
224
229
  createNavTriggerProps,
225
230
  defineIcons,
226
231
  getPosition,
232
+ processStatus,
227
233
  trapFocus,
228
234
  useConfirmModal,
229
235
  useFeatureFlags,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["/**\n * This module is the entry point for the Cerberus React package.\n * @module\n */\n\n// components\n\nexport * from './components/Button'\nexport * from './components/Checkbox'\nexport * from './components/Droppable'\nexport * from './components/FieldMessage'\nexport * from './components/FeatureFlag'\nexport * from './components/FileUploader'\nexport * from './components/IconButton'\nexport * from './components/Input'\nexport * from './components/Label'\nexport * from './components/Modal'\nexport * from './components/ModalHeader'\nexport * from './components/ModalHeading'\nexport * from './components/ModalDescription'\nexport * from './components/ModalIcon'\nexport * from './components/NavMenuTrigger'\nexport * from './components/NavMenuList'\nexport * from './components/NavMenuLink'\nexport * from './components/Notification'\nexport * from './components/NotificationHeading'\nexport * from './components/NotificationDescription'\nexport * from './components/Portal'\nexport * from './components/ProgressBar'\nexport * from './components/Radio'\nexport * from './components/Select'\nexport * from './components/Tab'\nexport * from './components/TabList'\nexport * from './components/TabPanel'\nexport * from './components/Table'\nexport * from './components/Thead'\nexport * from './components/Th'\nexport * from './components/Td'\nexport * from './components/Tbody'\nexport * from './components/Tag'\nexport * from './components/Textarea'\nexport * from './components/Toggle'\nexport * from './components/Show'\n\n// context\n\nexport * from './context/confirm-modal'\nexport * from './context/feature-flags'\nexport * from './context/field'\nexport * from './context/navMenu'\nexport * from './context/notification-center'\nexport * from './context/prompt-modal'\nexport * from './context/tabs'\nexport * from './context/theme'\n\n// hooks\n\nexport * from './hooks/useModal'\nexport * from './hooks/useTheme'\nexport * from './hooks/useToggle'\n\n// aria-helpers\n\nexport * from './aria-helpers/nav-menu.aria'\nexport * from './aria-helpers/tabs.aria'\nexport * from './aria-helpers/trap-focus.aria'\n\n// utils\n\nexport * from './config/defineIcons'\n\n// shared types\n\nexport * from './types'\n\n// 3rd party\n\nexport * from '@dnd-kit/core'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6EA,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["/**\n * This module is the entry point for the Cerberus React package.\n * @module\n */\n\n// components\n\nexport * from './components/Button'\nexport * from './components/Checkbox'\nexport * from './components/Droppable'\nexport * from './components/FieldMessage'\nexport * from './components/FeatureFlag'\nexport * from './components/FileStatus'\nexport * from './components/FileUploader'\nexport * from './components/IconButton'\nexport * from './components/Input'\nexport * from './components/Label'\nexport * from './components/Modal'\nexport * from './components/ModalHeader'\nexport * from './components/ModalHeading'\nexport * from './components/ModalDescription'\nexport * from './components/ModalIcon'\nexport * from './components/NavMenuTrigger'\nexport * from './components/NavMenuList'\nexport * from './components/NavMenuLink'\nexport * from './components/Notification'\nexport * from './components/NotificationHeading'\nexport * from './components/NotificationDescription'\nexport * from './components/Portal'\nexport * from './components/ProgressBar'\nexport * from './components/Radio'\nexport * from './components/Select'\nexport * from './components/Tab'\nexport * from './components/TabList'\nexport * from './components/TabPanel'\nexport * from './components/Table'\nexport * from './components/Thead'\nexport * from './components/Th'\nexport * from './components/Td'\nexport * from './components/Tbody'\nexport * from './components/Tag'\nexport * from './components/Textarea'\nexport * from './components/Toggle'\nexport * from './components/Show'\n\n// context\n\nexport * from './context/confirm-modal'\nexport * from './context/feature-flags'\nexport * from './context/field'\nexport * from './context/navMenu'\nexport * from './context/notification-center'\nexport * from './context/prompt-modal'\nexport * from './context/tabs'\nexport * from './context/theme'\n\n// hooks\n\nexport * from './hooks/useModal'\nexport * from './hooks/useTheme'\nexport * from './hooks/useToggle'\n\n// aria-helpers\n\nexport * from './aria-helpers/nav-menu.aria'\nexport * from './aria-helpers/tabs.aria'\nexport * from './aria-helpers/trap-focus.aria'\n\n// utils\n\nexport * from './config/defineIcons'\n\n// shared types\n\nexport * from './types'\n\n// 3rd party\n\nexport * from '@dnd-kit/core'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8EA,cAAc;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cerberus-design/react",
3
- "version": "0.8.0-next-79fb5c6",
3
+ "version": "0.8.0-next-9aba71d",
4
4
  "description": "The Cerberus Design React component library.",
5
5
  "browserslist": "> 0.25%, not dead",
6
6
  "sideEffects": false,
@@ -26,7 +26,7 @@
26
26
  "react-dom": "^18",
27
27
  "tsup": "^8.1.0",
28
28
  "@cerberus-design/configs": "0.0.0",
29
- "@cerberus-design/styled-system": "0.8.0-next-79fb5c6"
29
+ "@cerberus-design/styled-system": "0.8.0-next-9aba71d"
30
30
  },
31
31
  "publishConfig": {
32
32
  "access": "public"
@@ -0,0 +1,246 @@
1
+ 'use client'
2
+
3
+ import {
4
+ useCallback,
5
+ useMemo,
6
+ type HTMLAttributes,
7
+ type MouseEvent,
8
+ } from 'react'
9
+ import { ProgressBar } from './ProgressBar'
10
+ import { IconButton } from './IconButton'
11
+ import {
12
+ fileStatus,
13
+ type FileStatusVariantProps,
14
+ } from '@cerberus/styled-system/recipes'
15
+ import { css, cx } from '@cerberus/styled-system/css'
16
+ import { circle, hstack, vstack } from '@cerberus/styled-system/patterns'
17
+ import { $cerberusIcons } from '../config/defineIcons'
18
+ import { FieldMessage } from './FieldMessage'
19
+ import { Field } from '../context/field'
20
+
21
+ /**
22
+ * This module contains the FileStatus component.
23
+ * @module
24
+ */
25
+
26
+ export type FileStatusKey = (typeof processStatus)[keyof typeof processStatus]
27
+ export type FileStatusActions = 'cancel' | 'retry' | 'delete'
28
+ export interface FileBaseStatusProps
29
+ extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick'> {
30
+ file: string
31
+ now: number
32
+ status: processStatus
33
+ onClick: (status: FileStatusActions, e: MouseEvent<HTMLButtonElement>) => void
34
+ }
35
+ export type FileStatusProps = FileBaseStatusProps & FileStatusVariantProps
36
+
37
+ /**
38
+ * A helper object to represent the status of a file.
39
+ * @example
40
+ * ```tsx
41
+ * import { fileStatus } from '@cerberus/react'
42
+ * processStatus.TODO // 'todo'
43
+ * ```
44
+ */
45
+ export const enum processStatus {
46
+ TODO = 'todo',
47
+ PROCESSING = 'processing',
48
+ DONE = 'done',
49
+ ERROR = 'error',
50
+ }
51
+
52
+ /**
53
+ * This component displays the status of a file.
54
+ * @param props - {
55
+ * file: string,
56
+ * now: number,
57
+ * status: keyof typeof fileStatus,
58
+ * action: (status: FileStatusActions, e: MouseEvent<HTMLButtonElement>) => void
59
+ * }.
60
+ * @example
61
+ * ```tsx
62
+ * <FileStatus file="file.txt" now={0} status={processStatus.TODO} action={(status, e) => console.log(status, e)} />
63
+ * ```
64
+ */
65
+ export function FileStatus(props: FileStatusProps) {
66
+ const { file, now, status, onClick, ...nativeProps } = props
67
+ const actionLabel = useMemo(() => getStatusActionLabel(status), [status])
68
+ const palette = useMemo(() => getPalette(status), [status])
69
+ const modalIconPalette = useMemo(() => getModalIconPalette(status), [status])
70
+ const styles = useMemo(() => {
71
+ switch (status) {
72
+ case processStatus.TODO:
73
+ return fileStatus({ status: 'todo' })
74
+ case processStatus.PROCESSING:
75
+ return fileStatus({ status: 'processing' })
76
+ case processStatus.DONE:
77
+ return fileStatus({ status: 'done' })
78
+ case processStatus.ERROR:
79
+ return fileStatus({ status: 'error' })
80
+ default:
81
+ return fileStatus()
82
+ }
83
+ }, [status])
84
+
85
+ const handleClick = useCallback(
86
+ (e: MouseEvent<HTMLButtonElement>) => {
87
+ const actionStatus = getStatusActionLabel(
88
+ status,
89
+ ).toLocaleLowerCase() as FileStatusActions
90
+ onClick(actionStatus, e)
91
+ },
92
+ [onClick],
93
+ )
94
+
95
+ return (
96
+ <div
97
+ {...nativeProps}
98
+ className={cx(nativeProps.className, styles.root, hstack())}
99
+ >
100
+ <div
101
+ className={cx(
102
+ styles.icon,
103
+ circle({
104
+ size: '2rem',
105
+ }),
106
+ )}
107
+ >
108
+ <MatchFileStatusIcon status={status} />
109
+ </div>
110
+
111
+ <div
112
+ className={vstack({
113
+ alignItems: 'flex-start',
114
+ gap: '0.12rem',
115
+ w: 'full',
116
+ })}
117
+ >
118
+ <small
119
+ className={css({
120
+ color: 'page.text.initial',
121
+ textStyle: 'label-sm',
122
+ })}
123
+ >
124
+ {file}
125
+ </small>
126
+ <ProgressBar now={now} size="sm" />
127
+ <Field invalid={modalIconPalette === 'danger'}>
128
+ <FieldMessage
129
+ className={css({
130
+ color: 'page.text.100',
131
+ })}
132
+ id={`help:${file}`}
133
+ >
134
+ <MatchFileStatusText status={status} now={now} />
135
+ </FieldMessage>
136
+ </Field>
137
+ </div>
138
+
139
+ <IconButton
140
+ ariaLabel={actionLabel}
141
+ onClick={handleClick}
142
+ palette={palette}
143
+ size="sm"
144
+ >
145
+ <MatchStatusAction status={status} />
146
+ </IconButton>
147
+ </div>
148
+ )
149
+ }
150
+
151
+ interface FileStatusElProps {
152
+ status: FileStatusProps['status']
153
+ now?: number
154
+ }
155
+
156
+ function MatchFileStatusIcon(props: FileStatusElProps) {
157
+ const {
158
+ fileUploader: FileUploaderIcon,
159
+ invalidAlt: InvalidIcon,
160
+ successNotification: DoneIcon,
161
+ } = $cerberusIcons
162
+
163
+ switch (props.status) {
164
+ case processStatus.TODO:
165
+ case processStatus.PROCESSING:
166
+ return <FileUploaderIcon />
167
+ case processStatus.DONE:
168
+ return <DoneIcon />
169
+ case processStatus.ERROR:
170
+ return <InvalidIcon />
171
+ default:
172
+ throw new Error('Unknown status')
173
+ }
174
+ }
175
+
176
+ function MatchFileStatusText(props: FileStatusElProps) {
177
+ switch (props.status) {
178
+ case processStatus.TODO:
179
+ return 'Waiting to upload'
180
+ case processStatus.PROCESSING:
181
+ return `${props.now}% Complete`
182
+ case processStatus.DONE:
183
+ return 'File uploaded successfully'
184
+ case processStatus.ERROR:
185
+ return 'There was an error uploading the file'
186
+ default:
187
+ throw new Error('Invalid status')
188
+ }
189
+ }
190
+
191
+ function MatchStatusAction(props: FileStatusElProps) {
192
+ const { close: CloseIcon, redo: RedoIcon, delete: TrashIcon } = $cerberusIcons
193
+ switch (props.status) {
194
+ case processStatus.TODO:
195
+ case processStatus.PROCESSING:
196
+ return <CloseIcon />
197
+ case processStatus.ERROR:
198
+ return <RedoIcon />
199
+ case processStatus.DONE:
200
+ return <TrashIcon />
201
+ default:
202
+ throw new Error('Invalid status')
203
+ }
204
+ }
205
+
206
+ function getStatusActionLabel(status: FileStatusKey) {
207
+ switch (status) {
208
+ case processStatus.TODO:
209
+ case processStatus.PROCESSING:
210
+ return 'Cancel'
211
+ case processStatus.ERROR:
212
+ return 'Retry'
213
+ case processStatus.DONE:
214
+ return 'Delete'
215
+ default:
216
+ return ''
217
+ }
218
+ }
219
+
220
+ function getPalette(status: FileStatusKey) {
221
+ switch (status) {
222
+ case processStatus.TODO:
223
+ case processStatus.PROCESSING:
224
+ return 'danger'
225
+ case processStatus.ERROR:
226
+ return 'action'
227
+ case processStatus.DONE:
228
+ return 'danger'
229
+ default:
230
+ return 'action'
231
+ }
232
+ }
233
+
234
+ function getModalIconPalette(status: FileStatusKey) {
235
+ switch (status) {
236
+ case processStatus.TODO:
237
+ case processStatus.PROCESSING:
238
+ return 'action'
239
+ case processStatus.ERROR:
240
+ return 'danger'
241
+ case processStatus.DONE:
242
+ return 'success'
243
+ default:
244
+ return 'action'
245
+ }
246
+ }
@@ -43,7 +43,7 @@ export function FileUploader(props: FileUploaderProps) {
43
43
  <p className={styles.heading}>{props.heading}</p>
44
44
  </Show>
45
45
  Import {props.accept?.replace(',', ', ')} files
46
- <p className={styles.description}>Or click to upload</p>
46
+ <p className={styles.description}>Click to select files</p>
47
47
  <input
48
48
  {...props}
49
49
  className={cx(props.className, styles.input)}
@@ -6,8 +6,8 @@ import {
6
6
  } from '@cerberus/styled-system/recipes'
7
7
  import type { HTMLAttributes, PropsWithChildren } from 'react'
8
8
 
9
- export type ModalIconBaseProps = HTMLAttributes<HTMLDivElement>
10
- export type ModalIconProps = ModalIconBaseProps & ModalIconVariantProps
9
+ export type ModalIconProps = HTMLAttributes<HTMLDivElement> &
10
+ ModalIconVariantProps
11
11
 
12
12
  export function ModalIcon(props: PropsWithChildren<ModalIconProps>) {
13
13
  const { palette, ...nativeProps } = props
@@ -2,10 +2,14 @@ import {
2
2
  Checkmark,
3
3
  CheckmarkFilled,
4
4
  ChevronDown,
5
+ CloseFilled,
5
6
  CloudUpload,
6
7
  ErrorFilled,
7
8
  Information,
8
9
  InformationFilled,
10
+ Restart,
11
+ TrashCan,
12
+ Warning,
9
13
  WarningFilled,
10
14
  type CarbonIconType,
11
15
  } from '@cerberus/icons'
@@ -16,7 +20,9 @@ export type IconType = CarbonIconType | ElementType
16
20
 
17
21
  export interface DefinedIcons {
18
22
  checkbox?: IconType
23
+ close?: IconType
19
24
  confirmModal?: IconType
25
+ delete?: IconType
20
26
  promptModal?: IconType
21
27
  fileUploader?: IconType
22
28
  indeterminate?: IconType
@@ -25,13 +31,17 @@ export interface DefinedIcons {
25
31
  warningNotification?: IconType
26
32
  dangerNotification?: IconType
27
33
  invalid: IconType
34
+ invalidAlt?: IconType
35
+ redo?: IconType
28
36
  selectArrow?: IconType
29
37
  toggleChecked?: IconType
30
38
  }
31
39
 
32
40
  export const defaultIcons: DefinedIcons = {
33
41
  checkbox: CheckmarkIcon,
42
+ close: CloseFilled,
34
43
  confirmModal: Information,
44
+ delete: TrashCan,
35
45
  promptModal: Information,
36
46
  fileUploader: CloudUpload,
37
47
  indeterminate: IndeterminateIcon,
@@ -40,6 +50,8 @@ export const defaultIcons: DefinedIcons = {
40
50
  warningNotification: WarningFilled,
41
51
  dangerNotification: ErrorFilled,
42
52
  invalid: WarningFilled,
53
+ invalidAlt: Warning,
54
+ redo: Restart,
43
55
  selectArrow: ChevronDown,
44
56
  toggleChecked: Checkmark,
45
57
  }
package/src/index.ts CHANGED
@@ -10,6 +10,7 @@ export * from './components/Checkbox'
10
10
  export * from './components/Droppable'
11
11
  export * from './components/FieldMessage'
12
12
  export * from './components/FeatureFlag'
13
+ export * from './components/FileStatus'
13
14
  export * from './components/FileUploader'
14
15
  export * from './components/IconButton'
15
16
  export * from './components/Input'
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/ModalIcon.tsx"],"sourcesContent":["import { cx } from '@cerberus/styled-system/css'\nimport { circle } from '@cerberus/styled-system/patterns'\nimport {\n modalIcon,\n type ModalIconVariantProps,\n} from '@cerberus/styled-system/recipes'\nimport type { HTMLAttributes, PropsWithChildren } from 'react'\n\nexport type ModalIconBaseProps = HTMLAttributes<HTMLDivElement>\nexport type ModalIconProps = ModalIconBaseProps & ModalIconVariantProps\n\nexport function ModalIcon(props: PropsWithChildren<ModalIconProps>) {\n const { palette, ...nativeProps } = props\n return (\n <div\n {...nativeProps}\n className={cx(\n nativeProps.className,\n modalIcon({\n palette,\n }),\n circle(),\n )}\n >\n {props.children}\n </div>\n )\n}\n"],"mappings":";AAAA,SAAS,UAAU;AACnB,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,OAEK;AASH;AAHG,SAAS,UAAU,OAA0C;AAClE,QAAM,EAAE,SAAS,GAAG,YAAY,IAAI;AACpC,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,UAAU;AAAA,UACR;AAAA,QACF,CAAC;AAAA,QACD,OAAO;AAAA,MACT;AAAA,MAEC,gBAAM;AAAA;AAAA,EACT;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/config/cerbIcons.ts"],"sourcesContent":["import {\n Checkmark,\n CheckmarkFilled,\n ChevronDown,\n CloudUpload,\n ErrorFilled,\n Information,\n InformationFilled,\n WarningFilled,\n type CarbonIconType,\n} from '@cerberus/icons'\nimport type { ElementType } from 'react'\nimport { CheckmarkIcon, IndeterminateIcon } from './icons/checkbox.icons'\n\nexport type IconType = CarbonIconType | ElementType\n\nexport interface DefinedIcons {\n checkbox?: IconType\n confirmModal?: IconType\n promptModal?: IconType\n fileUploader?: IconType\n indeterminate?: IconType\n infoNotification?: IconType\n successNotification?: IconType\n warningNotification?: IconType\n dangerNotification?: IconType\n invalid: IconType\n selectArrow?: IconType\n toggleChecked?: IconType\n}\n\nexport const defaultIcons: DefinedIcons = {\n checkbox: CheckmarkIcon,\n confirmModal: Information,\n promptModal: Information,\n fileUploader: CloudUpload,\n indeterminate: IndeterminateIcon,\n infoNotification: InformationFilled,\n successNotification: CheckmarkFilled,\n warningNotification: WarningFilled,\n dangerNotification: ErrorFilled,\n invalid: WarningFilled,\n selectArrow: ChevronDown,\n toggleChecked: Checkmark,\n}\n"],"mappings":";;;;;;AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAqBA,IAAM,eAA6B;AAAA,EACxC,UAAU;AAAA,EACV,cAAc;AAAA,EACd,aAAa;AAAA,EACb,cAAc;AAAA,EACd,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,aAAa;AAAA,EACb,eAAe;AACjB;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/ModalIcon.tsx"],"sourcesContent":["import { cx } from '@cerberus/styled-system/css'\nimport { circle } from '@cerberus/styled-system/patterns'\nimport {\n modalIcon,\n type ModalIconVariantProps,\n} from '@cerberus/styled-system/recipes'\nimport type { HTMLAttributes, PropsWithChildren } from 'react'\n\nexport type ModalIconBaseProps = HTMLAttributes<HTMLDivElement>\nexport type ModalIconProps = ModalIconBaseProps & ModalIconVariantProps\n\nexport function ModalIcon(props: PropsWithChildren<ModalIconProps>) {\n const { palette, ...nativeProps } = props\n return (\n <div\n {...nativeProps}\n className={cx(\n nativeProps.className,\n modalIcon({\n palette,\n }),\n circle(),\n )}\n >\n {props.children}\n </div>\n )\n}\n"],"mappings":";AAAA,SAAS,UAAU;AACnB,SAAS,cAAc;AACvB;AAAA,EACE;AAAA,OAEK;AASH;AAHG,SAAS,UAAU,OAA0C;AAClE,QAAM,EAAE,SAAS,GAAG,YAAY,IAAI;AACpC,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,UAAU;AAAA,UACR;AAAA,QACF,CAAC;AAAA,QACD,OAAO;AAAA,MACT;AAAA,MAEC,gBAAM;AAAA;AAAA,EACT;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/config/cerbIcons.ts"],"sourcesContent":["import {\n Checkmark,\n CheckmarkFilled,\n ChevronDown,\n CloudUpload,\n ErrorFilled,\n Information,\n InformationFilled,\n WarningFilled,\n type CarbonIconType,\n} from '@cerberus/icons'\nimport type { ElementType } from 'react'\nimport { CheckmarkIcon, IndeterminateIcon } from './icons/checkbox.icons'\n\nexport type IconType = CarbonIconType | ElementType\n\nexport interface DefinedIcons {\n checkbox?: IconType\n confirmModal?: IconType\n promptModal?: IconType\n fileUploader?: IconType\n indeterminate?: IconType\n infoNotification?: IconType\n successNotification?: IconType\n warningNotification?: IconType\n dangerNotification?: IconType\n invalid: IconType\n selectArrow?: IconType\n toggleChecked?: IconType\n}\n\nexport const defaultIcons: DefinedIcons = {\n checkbox: CheckmarkIcon,\n confirmModal: Information,\n promptModal: Information,\n fileUploader: CloudUpload,\n indeterminate: IndeterminateIcon,\n infoNotification: InformationFilled,\n successNotification: CheckmarkFilled,\n warningNotification: WarningFilled,\n dangerNotification: ErrorFilled,\n invalid: WarningFilled,\n selectArrow: ChevronDown,\n toggleChecked: Checkmark,\n}\n"],"mappings":";;;;;;AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAqBA,IAAM,eAA6B;AAAA,EACxC,UAAU;AAAA,EACV,cAAc;AAAA,EACd,aAAa;AAAA,EACb,cAAc;AAAA,EACd,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,aAAa;AAAA,EACb,eAAe;AACjB;","names":[]}