@cerberus-design/react 0.10.4 → 0.11.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 (159) hide show
  1. package/build/legacy/_tsup-dts-rollup.d.cts +244 -2
  2. package/build/legacy/components/Admonition.cjs +419 -0
  3. package/build/legacy/components/Admonition.cjs.map +1 -0
  4. package/build/legacy/components/AnimatingUploadIcon.cjs +124 -0
  5. package/build/legacy/components/AnimatingUploadIcon.cjs.map +1 -0
  6. package/build/legacy/components/Avatar.cjs +110 -13
  7. package/build/legacy/components/Avatar.cjs.map +1 -1
  8. package/build/legacy/components/Checkbox.cjs +107 -10
  9. package/build/legacy/components/Checkbox.cjs.map +1 -1
  10. package/build/legacy/components/CircularProgress.cjs +19 -5
  11. package/build/legacy/components/CircularProgress.cjs.map +1 -1
  12. package/build/legacy/components/Fieldset.cjs +66 -0
  13. package/build/legacy/components/Fieldset.cjs.map +1 -0
  14. package/build/legacy/components/FieldsetLabel.cjs +49 -0
  15. package/build/legacy/components/FieldsetLabel.cjs.map +1 -0
  16. package/build/legacy/components/FileStatus.cjs +138 -39
  17. package/build/legacy/components/FileStatus.cjs.map +1 -1
  18. package/build/legacy/components/FileUploader.cjs +120 -22
  19. package/build/legacy/components/FileUploader.cjs.map +1 -1
  20. package/build/legacy/components/Input.cjs +108 -11
  21. package/build/legacy/components/Input.cjs.map +1 -1
  22. package/build/legacy/components/Label.cjs +1 -1
  23. package/build/legacy/components/Label.cjs.map +1 -1
  24. package/build/legacy/components/Legend.cjs +95 -0
  25. package/build/legacy/components/Legend.cjs.map +1 -0
  26. package/build/legacy/components/ModalHeader.cjs +2 -2
  27. package/build/legacy/components/ModalHeader.cjs.map +1 -1
  28. package/build/legacy/components/Notification.cjs +109 -12
  29. package/build/legacy/components/Notification.cjs.map +1 -1
  30. package/build/legacy/components/Radio.cjs +27 -14
  31. package/build/legacy/components/Radio.cjs.map +1 -1
  32. package/build/legacy/components/Select.cjs +111 -14
  33. package/build/legacy/components/Select.cjs.map +1 -1
  34. package/build/legacy/components/Tag.cjs +106 -9
  35. package/build/legacy/components/Tag.cjs.map +1 -1
  36. package/build/legacy/components/Th.cjs +4 -1
  37. package/build/legacy/components/Th.cjs.map +1 -1
  38. package/build/legacy/components/Toggle.cjs +108 -11
  39. package/build/legacy/components/Toggle.cjs.map +1 -1
  40. package/build/legacy/config/cerbIcons.cjs +102 -5
  41. package/build/legacy/config/cerbIcons.cjs.map +1 -1
  42. package/build/legacy/config/defineIcons.cjs +102 -5
  43. package/build/legacy/config/defineIcons.cjs.map +1 -1
  44. package/build/legacy/context/confirm-modal.cjs +141 -40
  45. package/build/legacy/context/confirm-modal.cjs.map +1 -1
  46. package/build/legacy/context/notification-center.cjs +129 -32
  47. package/build/legacy/context/notification-center.cjs.map +1 -1
  48. package/build/legacy/context/prompt-modal.cjs +178 -66
  49. package/build/legacy/context/prompt-modal.cjs.map +1 -1
  50. package/build/legacy/hooks/useModal.cjs +6 -2
  51. package/build/legacy/hooks/useModal.cjs.map +1 -1
  52. package/build/legacy/index.cjs +793 -442
  53. package/build/legacy/index.cjs.map +1 -1
  54. package/build/modern/_tsup-dts-rollup.d.ts +244 -2
  55. package/build/modern/{chunk-S7XGIQY6.js → chunk-243VUIA6.js} +2 -2
  56. package/build/modern/{chunk-LKFXUM3Z.js → chunk-3NE6C66J.js} +36 -25
  57. package/build/modern/{chunk-LKFXUM3Z.js.map → chunk-3NE6C66J.js.map} +1 -1
  58. package/build/modern/chunk-3ZDFQO25.js +31 -0
  59. package/build/modern/chunk-3ZDFQO25.js.map +1 -0
  60. package/build/modern/{chunk-YLPSE5Z2.js → chunk-6QHOKCV3.js} +11 -6
  61. package/build/modern/chunk-6QHOKCV3.js.map +1 -0
  62. package/build/modern/chunk-6TTN2JMY.js +54 -0
  63. package/build/modern/chunk-6TTN2JMY.js.map +1 -0
  64. package/build/modern/{chunk-OW62FLJ6.js → chunk-7T3JIGM7.js} +8 -4
  65. package/build/modern/chunk-7T3JIGM7.js.map +1 -0
  66. package/build/modern/{chunk-7K6PZBHN.js → chunk-CO4BKT7K.js} +5 -2
  67. package/build/modern/{chunk-7K6PZBHN.js.map → chunk-CO4BKT7K.js.map} +1 -1
  68. package/build/modern/{chunk-NBG2OSYI.js → chunk-FT7DFRHQ.js} +2 -2
  69. package/build/modern/chunk-FTPZHG6J.js +46 -0
  70. package/build/modern/{chunk-LJYCFFX7.js.map → chunk-FTPZHG6J.js.map} +1 -1
  71. package/build/modern/{chunk-JCGWTIR4.js → chunk-HCB5NQ5J.js} +5 -4
  72. package/build/modern/chunk-HCB5NQ5J.js.map +1 -0
  73. package/build/modern/chunk-HVKM54BA.js +100 -0
  74. package/build/modern/chunk-HVKM54BA.js.map +1 -0
  75. package/build/modern/{chunk-CMUFJU4S.js → chunk-KLUBAM4U.js} +2 -2
  76. package/build/modern/{chunk-AUAPBPGW.js → chunk-MDIUFBDX.js} +2 -2
  77. package/build/modern/{chunk-I35HMGJQ.js → chunk-NMF2HYWO.js} +2 -2
  78. package/build/modern/{chunk-I35HMGJQ.js.map → chunk-NMF2HYWO.js.map} +1 -1
  79. package/build/modern/{chunk-O6JYYVO7.js → chunk-PA5EB7EO.js} +2 -2
  80. package/build/modern/chunk-PZAZKQMO.js +25 -0
  81. package/build/modern/chunk-PZAZKQMO.js.map +1 -0
  82. package/build/modern/{chunk-EZNGCXVJ.js → chunk-RDQHHCFR.js} +5 -5
  83. package/build/modern/{chunk-BDCFYW34.js → chunk-TMR7JGMP.js} +12 -9
  84. package/build/modern/chunk-TMR7JGMP.js.map +1 -0
  85. package/build/modern/{chunk-WZOYPFUU.js → chunk-UJKS4DDN.js} +2 -2
  86. package/build/modern/{chunk-WLEX22KS.js → chunk-ULYQLKWA.js} +3 -3
  87. package/build/modern/{chunk-WLEX22KS.js.map → chunk-ULYQLKWA.js.map} +1 -1
  88. package/build/modern/{chunk-6YUB3ITX.js → chunk-X4Y4WTRU.js} +10 -10
  89. package/build/modern/{chunk-UXHAFEBA.js → chunk-YMJMB6OP.js} +5 -3
  90. package/build/modern/chunk-YMJMB6OP.js.map +1 -0
  91. package/build/modern/{chunk-GMG3B34U.js → chunk-YWCTMLLO.js} +2 -2
  92. package/build/modern/chunk-ZW3FFE37.js +138 -0
  93. package/build/modern/chunk-ZW3FFE37.js.map +1 -0
  94. package/build/modern/{chunk-477G5ZEL.js → chunk-ZX6DBC2Z.js} +2 -2
  95. package/build/modern/components/Admonition.js +17 -0
  96. package/build/modern/components/Admonition.js.map +1 -0
  97. package/build/modern/components/AnimatingUploadIcon.js +7 -0
  98. package/build/modern/components/AnimatingUploadIcon.js.map +1 -0
  99. package/build/modern/components/Avatar.js +4 -3
  100. package/build/modern/components/Checkbox.js +4 -3
  101. package/build/modern/components/CircularProgress.js +2 -1
  102. package/build/modern/components/Fieldset.js +9 -0
  103. package/build/modern/components/Fieldset.js.map +1 -0
  104. package/build/modern/components/FieldsetLabel.js +7 -0
  105. package/build/modern/components/FieldsetLabel.js.map +1 -0
  106. package/build/modern/components/FileStatus.js +5 -4
  107. package/build/modern/components/FileUploader.js +5 -4
  108. package/build/modern/components/Input.js +4 -3
  109. package/build/modern/components/Label.js +1 -1
  110. package/build/modern/components/Legend.js +10 -0
  111. package/build/modern/components/Legend.js.map +1 -0
  112. package/build/modern/components/ModalHeader.js +1 -1
  113. package/build/modern/components/Notification.js +4 -3
  114. package/build/modern/components/Radio.js +1 -1
  115. package/build/modern/components/Select.js +4 -3
  116. package/build/modern/components/Tag.js +4 -3
  117. package/build/modern/components/Th.js +1 -1
  118. package/build/modern/components/Toggle.js +4 -3
  119. package/build/modern/config/cerbIcons.js +2 -1
  120. package/build/modern/config/defineIcons.js +3 -2
  121. package/build/modern/context/confirm-modal.js +8 -7
  122. package/build/modern/context/notification-center.js +6 -5
  123. package/build/modern/context/prompt-modal.js +10 -9
  124. package/build/modern/hooks/useModal.js +1 -1
  125. package/build/modern/index.js +86 -65
  126. package/build/modern/index.js.map +1 -1
  127. package/package.json +3 -3
  128. package/src/components/Admonition.tsx +186 -0
  129. package/src/components/AnimatingUploadIcon.tsx +83 -0
  130. package/src/components/CircularProgress.tsx +20 -12
  131. package/src/components/Fieldset.tsx +65 -0
  132. package/src/components/FieldsetLabel.tsx +59 -0
  133. package/src/components/FileStatus.tsx +2 -0
  134. package/src/components/FileUploader.tsx +6 -1
  135. package/src/components/Label.tsx +1 -1
  136. package/src/components/Legend.tsx +87 -0
  137. package/src/components/ModalHeader.tsx +2 -2
  138. package/src/components/Radio.tsx +10 -1
  139. package/src/components/Th.tsx +3 -0
  140. package/src/config/cerbIcons.ts +10 -8
  141. package/src/context/prompt-modal.tsx +8 -1
  142. package/src/hooks/useModal.ts +19 -4
  143. package/src/index.ts +4 -0
  144. package/build/modern/chunk-BDCFYW34.js.map +0 -1
  145. package/build/modern/chunk-JCGWTIR4.js.map +0 -1
  146. package/build/modern/chunk-LJYCFFX7.js +0 -33
  147. package/build/modern/chunk-OW62FLJ6.js.map +0 -1
  148. package/build/modern/chunk-UXHAFEBA.js.map +0 -1
  149. package/build/modern/chunk-YLPSE5Z2.js.map +0 -1
  150. /package/build/modern/{chunk-S7XGIQY6.js.map → chunk-243VUIA6.js.map} +0 -0
  151. /package/build/modern/{chunk-NBG2OSYI.js.map → chunk-FT7DFRHQ.js.map} +0 -0
  152. /package/build/modern/{chunk-CMUFJU4S.js.map → chunk-KLUBAM4U.js.map} +0 -0
  153. /package/build/modern/{chunk-AUAPBPGW.js.map → chunk-MDIUFBDX.js.map} +0 -0
  154. /package/build/modern/{chunk-O6JYYVO7.js.map → chunk-PA5EB7EO.js.map} +0 -0
  155. /package/build/modern/{chunk-EZNGCXVJ.js.map → chunk-RDQHHCFR.js.map} +0 -0
  156. /package/build/modern/{chunk-WZOYPFUU.js.map → chunk-UJKS4DDN.js.map} +0 -0
  157. /package/build/modern/{chunk-6YUB3ITX.js.map → chunk-X4Y4WTRU.js.map} +0 -0
  158. /package/build/modern/{chunk-GMG3B34U.js.map → chunk-YWCTMLLO.js.map} +0 -0
  159. /package/build/modern/{chunk-477G5ZEL.js.map → chunk-ZX6DBC2Z.js.map} +0 -0
@@ -1,32 +1,15 @@
1
- import {
2
- ThemeProvider,
3
- useThemeContext
4
- } from "./chunk-EB37HRCN.js";
5
- import {
6
- Toggle
7
- } from "./chunk-GMG3B34U.js";
8
- import {
9
- ConfirmModal,
10
- useConfirmModal
11
- } from "./chunk-6YUB3ITX.js";
12
1
  import {
13
2
  NotificationCenter,
14
3
  useNotificationCenter
15
- } from "./chunk-EZNGCXVJ.js";
4
+ } from "./chunk-RDQHHCFR.js";
16
5
  import {
17
6
  PromptModal,
18
7
  usePromptModal
19
- } from "./chunk-LKFXUM3Z.js";
20
- import {
21
- TabPanel
22
- } from "./chunk-AYIRV5CL.js";
8
+ } from "./chunk-3NE6C66J.js";
23
9
  import {
24
- Table,
25
- Tr
26
- } from "./chunk-B4CVET74.js";
27
- import {
28
- Tag
29
- } from "./chunk-S7XGIQY6.js";
10
+ ThemeProvider,
11
+ useThemeContext
12
+ } from "./chunk-EB37HRCN.js";
30
13
  import {
31
14
  Tbody
32
15
  } from "./chunk-PKQTTFWA.js";
@@ -38,20 +21,21 @@ import {
38
21
  } from "./chunk-JIJM6JFJ.js";
39
22
  import {
40
23
  Th
41
- } from "./chunk-7K6PZBHN.js";
24
+ } from "./chunk-CO4BKT7K.js";
42
25
  import {
43
26
  Thead
44
27
  } from "./chunk-PKY46RRA.js";
45
28
  import {
46
- Portal
47
- } from "./chunk-GLY7GU5S.js";
29
+ Toggle
30
+ } from "./chunk-YWCTMLLO.js";
48
31
  import {
49
- Radio
50
- } from "./chunk-LJYCFFX7.js";
32
+ ConfirmModal,
33
+ useConfirmModal
34
+ } from "./chunk-X4Y4WTRU.js";
51
35
  import {
52
36
  Option,
53
37
  Select
54
- } from "./chunk-O6JYYVO7.js";
38
+ } from "./chunk-PA5EB7EO.js";
55
39
  import {
56
40
  Spinner
57
41
  } from "./chunk-7SYJFI5E.js";
@@ -62,14 +46,15 @@ import {
62
46
  TabList
63
47
  } from "./chunk-UKPF7JOB.js";
64
48
  import {
65
- ModalHeader
66
- } from "./chunk-WLEX22KS.js";
49
+ TabPanel
50
+ } from "./chunk-AYIRV5CL.js";
67
51
  import {
68
- ModalHeading
69
- } from "./chunk-2UXE5PDG.js";
52
+ Table,
53
+ Tr
54
+ } from "./chunk-B4CVET74.js";
70
55
  import {
71
- NavMenuLink
72
- } from "./chunk-KBBASJIY.js";
56
+ Tag
57
+ } from "./chunk-243VUIA6.js";
73
58
  import {
74
59
  NavMenuList,
75
60
  getPosition
@@ -83,17 +68,63 @@ import {
83
68
  } from "./chunk-O75QAT4Z.js";
84
69
  import {
85
70
  Notification
86
- } from "./chunk-CMUFJU4S.js";
71
+ } from "./chunk-KLUBAM4U.js";
87
72
  import {
88
73
  NotificationDescription
89
74
  } from "./chunk-XEW6TJJ4.js";
90
75
  import {
91
76
  NotificationHeading
92
77
  } from "./chunk-SXIXDXG3.js";
78
+ import {
79
+ Portal
80
+ } from "./chunk-GLY7GU5S.js";
81
+ import {
82
+ Radio
83
+ } from "./chunk-FTPZHG6J.js";
84
+ import {
85
+ Input
86
+ } from "./chunk-UJKS4DDN.js";
87
+ import {
88
+ Label
89
+ } from "./chunk-NMF2HYWO.js";
90
+ import {
91
+ Legend
92
+ } from "./chunk-6TTN2JMY.js";
93
+ import {
94
+ Modal
95
+ } from "./chunk-BE4EOU2P.js";
96
+ import {
97
+ ModalDescription
98
+ } from "./chunk-Q7BRMIBR.js";
99
+ import {
100
+ ModalHeader
101
+ } from "./chunk-ULYQLKWA.js";
102
+ import {
103
+ ModalHeading
104
+ } from "./chunk-2UXE5PDG.js";
105
+ import {
106
+ NavMenuLink
107
+ } from "./chunk-KBBASJIY.js";
108
+ import {
109
+ Droppable
110
+ } from "./chunk-TKI2CKHH.js";
111
+ import {
112
+ FeatureFlag
113
+ } from "./chunk-BIDE4IJG.js";
114
+ import {
115
+ FeatureFlags,
116
+ useFeatureFlags
117
+ } from "./chunk-CJFW36DZ.js";
118
+ import {
119
+ Fieldset
120
+ } from "./chunk-3ZDFQO25.js";
121
+ import {
122
+ FieldsetLabel
123
+ } from "./chunk-PZAZKQMO.js";
93
124
  import {
94
125
  FileStatus,
95
126
  processStatus
96
- } from "./chunk-UXHAFEBA.js";
127
+ } from "./chunk-YMJMB6OP.js";
97
128
  import {
98
129
  ProgressBar
99
130
  } from "./chunk-KCANMM64.js";
@@ -102,22 +133,10 @@ import {
102
133
  } from "./chunk-JWIJHSI6.js";
103
134
  import {
104
135
  FileUploader
105
- } from "./chunk-JCGWTIR4.js";
136
+ } from "./chunk-HCB5NQ5J.js";
106
137
  import {
107
138
  IconButton
108
139
  } from "./chunk-APD6IX5R.js";
109
- import {
110
- Input
111
- } from "./chunk-WZOYPFUU.js";
112
- import {
113
- Label
114
- } from "./chunk-I35HMGJQ.js";
115
- import {
116
- Modal
117
- } from "./chunk-BE4EOU2P.js";
118
- import {
119
- ModalDescription
120
- } from "./chunk-Q7BRMIBR.js";
121
140
  import {
122
141
  MODE_KEY,
123
142
  THEME_KEY,
@@ -126,32 +145,27 @@ import {
126
145
  import {
127
146
  useToggle
128
147
  } from "./chunk-REO5GUNC.js";
148
+ import {
149
+ Admonition,
150
+ AdmonitionDescription,
151
+ AdmonitionHeading
152
+ } from "./chunk-ZW3FFE37.js";
129
153
  import {
130
154
  Avatar
131
- } from "./chunk-477G5ZEL.js";
155
+ } from "./chunk-ZX6DBC2Z.js";
132
156
  import {
133
157
  Button
134
158
  } from "./chunk-EXGKZGML.js";
135
159
  import {
136
160
  Checkbox
137
- } from "./chunk-AUAPBPGW.js";
161
+ } from "./chunk-MDIUFBDX.js";
138
162
  import {
139
163
  Field,
140
164
  useFieldContext
141
165
  } from "./chunk-UZDVOIW5.js";
142
166
  import {
143
167
  CircularProgress
144
- } from "./chunk-YLPSE5Z2.js";
145
- import {
146
- Droppable
147
- } from "./chunk-TKI2CKHH.js";
148
- import {
149
- FeatureFlag
150
- } from "./chunk-BIDE4IJG.js";
151
- import {
152
- FeatureFlags,
153
- useFeatureFlags
154
- } from "./chunk-CJFW36DZ.js";
168
+ } from "./chunk-6QHOKCV3.js";
155
169
  import {
156
170
  Show
157
171
  } from "./chunk-BUVVRQLZ.js";
@@ -173,17 +187,21 @@ import {
173
187
  import {
174
188
  $cerberusIcons,
175
189
  defineIcons
176
- } from "./chunk-NBG2OSYI.js";
177
- import "./chunk-BDCFYW34.js";
190
+ } from "./chunk-FT7DFRHQ.js";
191
+ import "./chunk-TMR7JGMP.js";
178
192
  import "./chunk-CP7OUC2Q.js";
193
+ import "./chunk-HVKM54BA.js";
179
194
  import {
180
195
  useModal
181
- } from "./chunk-OW62FLJ6.js";
196
+ } from "./chunk-7T3JIGM7.js";
182
197
 
183
198
  // src/index.ts
184
199
  export * from "@dnd-kit/core";
185
200
  export {
186
201
  $cerberusIcons,
202
+ Admonition,
203
+ AdmonitionDescription,
204
+ AdmonitionHeading,
187
205
  Avatar,
188
206
  Button,
189
207
  Checkbox,
@@ -194,11 +212,14 @@ export {
194
212
  FeatureFlags,
195
213
  Field,
196
214
  FieldMessage,
215
+ Fieldset,
216
+ FieldsetLabel,
197
217
  FileStatus,
198
218
  FileUploader,
199
219
  IconButton,
200
220
  Input,
201
221
  Label,
222
+ Legend,
202
223
  MODE_KEY,
203
224
  Modal,
204
225
  ModalDescription,
@@ -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/Avatar'\nexport * from './components/Button'\nexport * from './components/Checkbox'\nexport * from './components/CircularProgress'\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/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/Spinner'\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFA,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/Admonition'\nexport * from './components/Avatar'\nexport * from './components/Button'\nexport * from './components/Checkbox'\nexport * from './components/CircularProgress'\nexport * from './components/Droppable'\nexport * from './components/FieldMessage'\nexport * from './components/FeatureFlag'\nexport * from './components/Fieldset'\nexport * from './components/FieldsetLabel'\nexport * from './components/FileStatus'\nexport * from './components/FileUploader'\nexport * from './components/IconButton'\nexport * from './components/Input'\nexport * from './components/Label'\nexport * from './components/Legend'\nexport * from './components/Modal'\nexport * from './components/ModalHeader'\nexport * from './components/ModalHeading'\nexport * from './components/ModalDescription'\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/Spinner'\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,cAAc;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cerberus-design/react",
3
- "version": "0.10.4",
3
+ "version": "0.11.0",
4
4
  "description": "The Cerberus Design React component library.",
5
5
  "browserslist": "> 0.25%, not dead",
6
6
  "sideEffects": false,
@@ -25,8 +25,8 @@
25
25
  "react": "^18",
26
26
  "react-dom": "^18",
27
27
  "tsup": "^8.1.0",
28
- "@cerberus-design/styled-system": "0.10.4",
29
- "@cerberus-design/configs": "0.0.0"
28
+ "@cerberus-design/configs": "0.0.0",
29
+ "@cerberus-design/styled-system": "0.11.0"
30
30
  },
31
31
  "publishConfig": {
32
32
  "access": "public"
@@ -0,0 +1,186 @@
1
+ import {
2
+ admonition,
3
+ type AdmonitionVariantProps,
4
+ } from '@cerberus/styled-system/recipes'
5
+ import { cx } from '@cerberus-design/styled-system/css'
6
+ import { hstack } from '@cerberus/styled-system/patterns'
7
+ import { $cerberusIcons } from '../config/defineIcons'
8
+ import type { HTMLAttributes, ReactNode } from 'react'
9
+ import { Avatar } from './Avatar'
10
+ import { Show } from './Show'
11
+
12
+ /**
13
+ * This module provides a set of components for creating admonitions.
14
+ * @module Admonition
15
+ */
16
+
17
+ export type AdmonitionProps = HTMLAttributes<HTMLDivElement> &
18
+ AdmonitionVariantProps & {
19
+ /**
20
+ * One off replacement for the icon.
21
+ */
22
+ icon?: ReactNode
23
+ }
24
+
25
+ /**
26
+ * The `Admonition` component is used to create an admonition.
27
+ * @example
28
+ * ```tsx
29
+ * <Admonition palette="page">
30
+ * <AdmonitionHeading palette="page">Page</AdmonitionHeading>
31
+ * <AdmonitionDescription palette="page">
32
+ * This is a page admonition.
33
+ * </AdmonitionDescription>
34
+ * </Admonition>
35
+ * ```
36
+ * @see https://cerberus.digitalu.design/react/admonition
37
+ */
38
+ export function Admonition(props: AdmonitionProps) {
39
+ const { children, palette = 'page', usage, icon, ...nativeProps } = props
40
+ return (
41
+ <aside
42
+ {...nativeProps}
43
+ className={cx(
44
+ nativeProps.className,
45
+ hstack({
46
+ gap: 'md',
47
+ w: 'full',
48
+ }),
49
+ admonition({ palette, usage }).root,
50
+ )}
51
+ >
52
+ <Show when={Boolean(icon)} fallback={<MatchAvatar palette={palette} />}>
53
+ {icon}
54
+ </Show>
55
+ <div>{children}</div>
56
+ </aside>
57
+ )
58
+ }
59
+
60
+ export type AdmonitionHeadingProps = HTMLAttributes<HTMLParagraphElement> &
61
+ AdmonitionVariantProps
62
+
63
+ /**
64
+ * The `AdmonitionHeading` component is used to create a heading within an
65
+ * admonition.
66
+ * @example
67
+ * ```tsx
68
+ * <Admonition palette="page">
69
+ * <AdmonitionHeading palette="page">Page</AdmonitionHeading>
70
+ * <AdmonitionDescription palette="page">
71
+ * This is a page admonition.
72
+ * </AdmonitionDescription>
73
+ * </Admonition>
74
+ * ```
75
+ * @see https://cerberus.digitalu.design/react/admonition
76
+ */
77
+ export function AdmonitionHeading(props: AdmonitionHeadingProps) {
78
+ const { palette, usage, ...nativeProps } = props
79
+ return (
80
+ <p
81
+ {...nativeProps}
82
+ className={cx(
83
+ nativeProps.className,
84
+ admonition({ palette, usage }).heading,
85
+ )}
86
+ />
87
+ )
88
+ }
89
+
90
+ export type AdmonitionDescriptionProps = HTMLAttributes<HTMLParagraphElement> &
91
+ AdmonitionVariantProps
92
+
93
+ /**
94
+ * The `AdmonitionDescription` component is used to create a description within
95
+ * an admonition.
96
+ * @example
97
+ * ```tsx
98
+ * <Admonition palette="page">
99
+ * <AdmonitionHeading palette="page">Page</AdmonitionHeading>
100
+ * <AdmonitionDescription palette="page">
101
+ * This is a page admonition.
102
+ * </AdmonitionDescription>
103
+ * </Admonition>
104
+ * ```
105
+ * @see https://cerberus.digitalu.design/react/admonition
106
+ */
107
+ export function AdmonitionDescription(props: AdmonitionDescriptionProps) {
108
+ const { palette, usage, ...nativeProps } = props
109
+ return (
110
+ <p
111
+ {...nativeProps}
112
+ className={cx(
113
+ nativeProps.className,
114
+ admonition({ palette, usage }).description,
115
+ )}
116
+ />
117
+ )
118
+ }
119
+
120
+ // Private components
121
+
122
+ type MatchAvatarProps = AdmonitionVariantProps
123
+
124
+ function MatchAvatar(props: MatchAvatarProps) {
125
+ const {
126
+ infoNotification: InfoIcon,
127
+ successNotification: SuccessIcon,
128
+ warningNotification: WarningIcon,
129
+ dangerNotification: DangerIcon,
130
+ } = $cerberusIcons
131
+ switch (props.palette) {
132
+ case 'page':
133
+ return (
134
+ <Avatar
135
+ gradient="charon-light"
136
+ ariaLabel=""
137
+ icon={<InfoIcon />}
138
+ size="sm"
139
+ src=""
140
+ />
141
+ )
142
+ case 'info':
143
+ return (
144
+ <Avatar
145
+ gradient="amphiaraus-dark"
146
+ ariaLabel=""
147
+ icon={<InfoIcon />}
148
+ size="sm"
149
+ src=""
150
+ />
151
+ )
152
+ case 'success':
153
+ return (
154
+ <Avatar
155
+ gradient="thanatos-dark"
156
+ ariaLabel=""
157
+ icon={<SuccessIcon />}
158
+ size="sm"
159
+ src=""
160
+ />
161
+ )
162
+ case 'warning':
163
+ return (
164
+ <Avatar
165
+ gradient="asphodel-light"
166
+ ariaLabel=""
167
+ icon={<WarningIcon />}
168
+ size="sm"
169
+ src=""
170
+ />
171
+ )
172
+ case 'danger':
173
+ return (
174
+ <Avatar
175
+ gradient="hades-light"
176
+ ariaLabel=""
177
+ icon={<DangerIcon />}
178
+ size="sm"
179
+ src=""
180
+ />
181
+ )
182
+
183
+ default:
184
+ throw new Error('Unsupported admonition palette')
185
+ }
186
+ }
@@ -0,0 +1,83 @@
1
+ import { type CarbonIconProps } from '@cerberus/icons'
2
+
3
+ /**
4
+ * This module contains an animating icon to use for the FileStatus component.
5
+ * @module
6
+ */
7
+
8
+ export type AnimatingUploadIconProps = CarbonIconProps
9
+
10
+ export function AnimatingUploadIcon(props: AnimatingUploadIconProps) {
11
+ return (
12
+ <svg
13
+ aria-hidden="true"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ width={props.size ?? '1em'}
16
+ height={props.size ?? '1em'}
17
+ viewBox="0 0 24 24"
18
+ >
19
+ <g
20
+ fill="none"
21
+ stroke="currentColor"
22
+ strokeLinecap="square"
23
+ strokeLinejoin="round"
24
+ strokeWidth={1.5}
25
+ >
26
+ <path
27
+ data-name="animating-trail"
28
+ strokeDasharray="2 4"
29
+ strokeDashoffset={6}
30
+ d="M12 21c-4.97 0 -9 -4.03 -9 -9c0 -4.97 4.03 -9 9 -9"
31
+ >
32
+ <animate
33
+ attributeName="stroke-dashoffset"
34
+ dur="0.45s"
35
+ repeatCount="indefinite"
36
+ values="6;0"
37
+ ></animate>
38
+ </path>
39
+
40
+ <path
41
+ data-name="half-circle"
42
+ strokeDasharray={32}
43
+ strokeDashoffset={32}
44
+ d="M12 3c4.97 0 9 4.03 9 9c0 4.97 -4.03 9 -9 9"
45
+ >
46
+ <animate
47
+ fill="freeze"
48
+ attributeName="stroke-dashoffset"
49
+ begin="0.075s"
50
+ dur="0.3s"
51
+ values="32;0"
52
+ ></animate>
53
+ </path>
54
+
55
+ <svg
56
+ aria-hidden="true"
57
+ xmlns="http://www.w3.org/2000/svg"
58
+ width="0.8em"
59
+ height="0.8em"
60
+ x="27%"
61
+ y="27%"
62
+ viewBox="0 0 24 24"
63
+ >
64
+ <polygon
65
+ fill="currentColor"
66
+ stroke="currentColor"
67
+ strokeWidth={0.8}
68
+ opacity="1"
69
+ points="3.7,6.7 7.5,2.9 7.5,15 8.5,15 8.5,2.9 12.3,6.7 13,6 8,1 3,6 "
70
+ >
71
+ <animate
72
+ fill="freeze"
73
+ attributeName="opacity"
74
+ values="1;0;1"
75
+ dur="2s"
76
+ repeatCount="indefinite"
77
+ ></animate>
78
+ </polygon>
79
+ </svg>
80
+ </g>
81
+ </svg>
82
+ )
83
+ }
@@ -3,6 +3,7 @@
3
3
  import { cq } from '@cerberus/styled-system/patterns'
4
4
  import { css } from '@cerberus/styled-system/css'
5
5
  import type { SVGProps } from 'react'
6
+ import { Show } from './Show'
6
7
 
7
8
  /**
8
9
  * This module contains the CircularProgress component.
@@ -30,6 +31,10 @@ export interface CircularProgressProps extends SVGProps<SVGSVGElement> {
30
31
  * What is shown below the now value (default: 'Done')
31
32
  */
32
33
  syntax?: string
34
+ /**
35
+ * The background style of the CircularProgress
36
+ */
37
+ bgStyle?: 'filled' | 'transparent'
33
38
  }
34
39
 
35
40
  /**
@@ -49,6 +54,7 @@ export function CircularProgress(props: CircularProgressProps) {
49
54
  const radius = `calc(50% * (1 - ${strokeW}/100))`
50
55
  const status: string = props.syntax ?? 'Done'
51
56
  const now: number = props.now >= 100 ? 100 : props.now
57
+ const bgStyle: string = props.bgStyle ?? 'filled'
52
58
 
53
59
  return (
54
60
  <div
@@ -84,24 +90,26 @@ export function CircularProgress(props: CircularProgressProps) {
84
90
  <linearGradient id="gradient">
85
91
  <stop
86
92
  offset="0%"
87
- stopColor="var(--cerberus-colors-action-bg-initial)"
93
+ stopColor="var(--cerberus-colors-data-viz-progress-start)"
88
94
  />
89
95
  <stop
90
96
  offset="100%"
91
- stopColor="var(--cerberus-colors-action-bg-active)"
97
+ stopColor="var(--cerberus-colors-data-viz-progress-end)"
92
98
  />
93
99
  </linearGradient>
94
100
  </defs>
95
101
 
96
- <circle
97
- className={css({
98
- fill: 'page.surface.initial',
99
- })}
100
- cx="50%"
101
- cy="50%"
102
- r={`calc(50% * (1 - ${strokeW}/100))`}
103
- pathLength="100"
104
- />
102
+ <Show when={bgStyle === 'filled'}>
103
+ <circle
104
+ className={css({
105
+ fill: 'page.surface.initial',
106
+ })}
107
+ cx="50%"
108
+ cy="50%"
109
+ r={`calc(50% * (1 - ${strokeW}/100))`}
110
+ pathLength="100"
111
+ />
112
+ </Show>
105
113
  <circle
106
114
  className={css({
107
115
  stroke: 'page.bg.100',
@@ -116,7 +124,7 @@ export function CircularProgress(props: CircularProgressProps) {
116
124
  className={css({
117
125
  stroke: 'url(#gradient)',
118
126
  transition: 'stroke-dashoffset, stroke 0.5s ease',
119
- '&:is([data-complete=true])': {
127
+ _isComplete: {
120
128
  stroke: 'success.bg.initial',
121
129
  },
122
130
  })}
@@ -0,0 +1,65 @@
1
+ 'use client'
2
+
3
+ import { css, cx } from '@cerberus/styled-system/css'
4
+ import type { FieldsetHTMLAttributes } from 'react'
5
+ import { useFieldContext } from '../context/field'
6
+
7
+ /**
8
+ * This module contains the Fieldset component.
9
+ * @module Fieldset
10
+ */
11
+
12
+ export type FieldsetProps = FieldsetHTMLAttributes<HTMLFieldSetElement>
13
+
14
+ /**
15
+ * A component to group related elements in a form for accessibility.
16
+ * @memberof Field
17
+ * @see https://cerberus.digitalu.com/react/fieldset
18
+ * @description [A11y Form Checklist](https://www.a11yproject.com/checklist/#forms)
19
+ * @description [MDN Web Docs: Fieldset](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset)
20
+ * @example
21
+ * ```tsx
22
+ * import { Fieldset, Legend, Field, Radio, Label } from '@cerberus/react'
23
+ * import { Hstack } from '@cerberus/styled-system/jsx'
24
+ *
25
+ * function SomeForm() {
26
+ * return (
27
+ * <form>
28
+ * <Fieldset>
29
+ * <Legend>Do you like cats?</Legend>
30
+ * <Hstack>
31
+ * <Field>
32
+ * <Radio id="yes" name="cats" value="yes" />
33
+ * <Label htmlFor="yes">Yes</Label>
34
+ * </Field>
35
+ * </Hstack>
36
+ * <Hstack>
37
+ * <Field>
38
+ * <Radio id="no" name="cats" value="no" />
39
+ * <Label htmlFor="no">No</Label>
40
+ * </Field>
41
+ * </Hstack>
42
+ * </Fieldset>
43
+ * </form>
44
+ * )
45
+ * }
46
+ */
47
+ export function Fieldset(props: FieldsetProps) {
48
+ const { invalid, ...formState } = useFieldContext()
49
+
50
+ return (
51
+ <fieldset
52
+ {...props}
53
+ {...formState}
54
+ {...(invalid && { 'aria-invalid': true })}
55
+ className={cx(
56
+ props.className,
57
+ css({
58
+ border: 'none',
59
+ pt: 2,
60
+ margin: 0,
61
+ }),
62
+ )}
63
+ />
64
+ )
65
+ }