@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
@@ -62,6 +62,102 @@ function IndeterminateIcon(props) {
62
62
  );
63
63
  }
64
64
 
65
+ // src/components/AnimatingUploadIcon.tsx
66
+ var import_jsx_runtime2 = require("react/jsx-runtime");
67
+ function AnimatingUploadIcon(props) {
68
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
69
+ "svg",
70
+ {
71
+ "aria-hidden": "true",
72
+ xmlns: "http://www.w3.org/2000/svg",
73
+ width: props.size ?? "1em",
74
+ height: props.size ?? "1em",
75
+ viewBox: "0 0 24 24",
76
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
77
+ "g",
78
+ {
79
+ fill: "none",
80
+ stroke: "currentColor",
81
+ strokeLinecap: "square",
82
+ strokeLinejoin: "round",
83
+ strokeWidth: 1.5,
84
+ children: [
85
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
86
+ "path",
87
+ {
88
+ "data-name": "animating-trail",
89
+ strokeDasharray: "2 4",
90
+ strokeDashoffset: 6,
91
+ d: "M12 21c-4.97 0 -9 -4.03 -9 -9c0 -4.97 4.03 -9 9 -9",
92
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
93
+ "animate",
94
+ {
95
+ attributeName: "stroke-dashoffset",
96
+ dur: "0.45s",
97
+ repeatCount: "indefinite",
98
+ values: "6;0"
99
+ }
100
+ )
101
+ }
102
+ ),
103
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
104
+ "path",
105
+ {
106
+ "data-name": "half-circle",
107
+ strokeDasharray: 32,
108
+ strokeDashoffset: 32,
109
+ d: "M12 3c4.97 0 9 4.03 9 9c0 4.97 -4.03 9 -9 9",
110
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
111
+ "animate",
112
+ {
113
+ fill: "freeze",
114
+ attributeName: "stroke-dashoffset",
115
+ begin: "0.075s",
116
+ dur: "0.3s",
117
+ values: "32;0"
118
+ }
119
+ )
120
+ }
121
+ ),
122
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
123
+ "svg",
124
+ {
125
+ "aria-hidden": "true",
126
+ xmlns: "http://www.w3.org/2000/svg",
127
+ width: "0.8em",
128
+ height: "0.8em",
129
+ x: "27%",
130
+ y: "27%",
131
+ viewBox: "0 0 24 24",
132
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
133
+ "polygon",
134
+ {
135
+ fill: "currentColor",
136
+ stroke: "currentColor",
137
+ strokeWidth: 0.8,
138
+ opacity: "1",
139
+ 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 ",
140
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
141
+ "animate",
142
+ {
143
+ fill: "freeze",
144
+ attributeName: "opacity",
145
+ values: "1;0;1",
146
+ dur: "2s",
147
+ repeatCount: "indefinite"
148
+ }
149
+ )
150
+ }
151
+ )
152
+ }
153
+ )
154
+ ]
155
+ }
156
+ )
157
+ }
158
+ );
159
+ }
160
+
65
161
  // src/config/cerbIcons.ts
66
162
  var defaultIcons = {
67
163
  avatar: import_icons.UserFilled,
@@ -70,12 +166,13 @@ var defaultIcons = {
70
166
  confirmModal: import_icons.Information,
71
167
  delete: import_icons.TrashCan,
72
168
  promptModal: import_icons.Information,
73
- fileUploader: import_icons.CloudUpload,
169
+ waitingFileUploader: import_icons.CloudUpload,
170
+ fileUploader: AnimatingUploadIcon,
74
171
  indeterminate: IndeterminateIcon,
75
- infoNotification: import_icons.InformationFilled,
76
- successNotification: import_icons.CheckmarkFilled,
77
- warningNotification: import_icons.WarningFilled,
78
- dangerNotification: import_icons.ErrorFilled,
172
+ infoNotification: import_icons.Information,
173
+ successNotification: import_icons.CheckmarkOutline,
174
+ warningNotification: import_icons.WarningAlt,
175
+ dangerNotification: import_icons.WarningFilled,
79
176
  invalid: import_icons.WarningFilled,
80
177
  invalidAlt: import_icons.Warning,
81
178
  redo: import_icons.Restart,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/config/cerbIcons.ts","../../../src/config/icons/checkbox.icons.tsx"],"sourcesContent":["import {\n Checkmark,\n CheckmarkFilled,\n ChevronDown,\n CloseFilled,\n CloudUpload,\n ErrorFilled,\n Information,\n InformationFilled,\n Restart,\n TrashCan,\n UserFilled,\n Warning,\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 avatar?: IconType\n checkbox?: IconType\n close?: IconType\n confirmModal?: IconType\n delete?: 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 invalidAlt?: IconType\n redo?: IconType\n selectArrow?: IconType\n toggleChecked?: IconType\n}\n\nexport const defaultIcons: DefinedIcons = {\n avatar: UserFilled,\n checkbox: CheckmarkIcon,\n close: CloseFilled,\n confirmModal: Information,\n delete: TrashCan,\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 invalidAlt: Warning,\n redo: Restart,\n selectArrow: ChevronDown,\n toggleChecked: Checkmark,\n}\n","import type { SVGProps } from 'react'\n\n/**\n * This module contains substitute icons for the Checkbox component.\n * @module\n */\n\ninterface CheckboxIconProps extends SVGProps<SVGSVGElement> {}\n\n/**\n * Checkmark icon for Checkbox component\n */\nexport function CheckmarkIcon(props: CheckboxIconProps) {\n return (\n <svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n role=\"img\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n d=\"M9.714 18 4 12.335l1.818-1.764 3.896 3.824L18.181 6 20 7.803 9.714 18Z\"\n />\n </svg>\n )\n}\n\ninterface IndeterminateIconProps extends SVGProps<SVGSVGElement> {}\n\n/**\n * Indeterminate icon for Checkbox component\n */\nexport function IndeterminateIcon(props: IndeterminateIconProps) {\n return (\n <svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path fill=\"currentColor\" d=\"M4 11h16v2.667H4z\" />\n </svg>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAeO;;;ACOD;AAVC,SAAS,cAAc,OAA0B;AACtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAY;AAAA,MACZ,OAAM;AAAA,MACN,MAAK;AAAA,MACL,MAAK;AAAA,MACL,SAAQ;AAAA,MACP,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,GAAE;AAAA;AAAA,MACJ;AAAA;AAAA,EACF;AAEJ;AAOO,SAAS,kBAAkB,OAA+B;AAC/D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAY;AAAA,MACZ,OAAM;AAAA,MACN,MAAK;AAAA,MACL,MAAK;AAAA,MACL,SAAQ;AAAA,MACP,GAAG;AAAA,MAEJ,sDAAC,UAAK,MAAK,gBAAe,GAAE,qBAAoB;AAAA;AAAA,EAClD;AAEJ;;;ADPO,IAAM,eAA6B;AAAA,EACxC,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,cAAc;AAAA,EACd,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,eAAe;AACjB;","names":[]}
1
+ {"version":3,"sources":["../../../src/config/cerbIcons.ts","../../../src/config/icons/checkbox.icons.tsx","../../../src/components/AnimatingUploadIcon.tsx"],"sourcesContent":["import {\n Checkmark,\n CheckmarkOutline,\n ChevronDown,\n CloseFilled,\n CloudUpload,\n Information,\n Restart,\n TrashCan,\n UserFilled,\n Warning,\n WarningAlt,\n WarningFilled,\n type CarbonIconType,\n} from '@cerberus/icons'\nimport type { ElementType } from 'react'\nimport { CheckmarkIcon, IndeterminateIcon } from './icons/checkbox.icons'\nimport { AnimatingUploadIcon } from '../components/AnimatingUploadIcon'\n\nexport type IconType = CarbonIconType | ElementType\n\nexport interface DefinedIcons {\n avatar?: IconType\n checkbox?: IconType\n close?: IconType\n confirmModal?: IconType\n delete?: IconType\n promptModal?: IconType\n waitingFileUploader?: IconType\n fileUploader?: IconType\n indeterminate?: IconType\n infoNotification?: IconType\n successNotification?: IconType\n warningNotification?: IconType\n dangerNotification?: IconType\n invalid: IconType\n invalidAlt?: IconType\n redo?: IconType\n selectArrow?: IconType\n toggleChecked?: IconType\n}\n\nexport const defaultIcons: DefinedIcons = {\n avatar: UserFilled,\n checkbox: CheckmarkIcon,\n close: CloseFilled,\n confirmModal: Information,\n delete: TrashCan,\n promptModal: Information,\n waitingFileUploader: CloudUpload,\n fileUploader: AnimatingUploadIcon,\n indeterminate: IndeterminateIcon,\n infoNotification: Information,\n successNotification: CheckmarkOutline,\n warningNotification: WarningAlt,\n dangerNotification: WarningFilled,\n invalid: WarningFilled,\n invalidAlt: Warning,\n redo: Restart,\n selectArrow: ChevronDown,\n toggleChecked: Checkmark,\n}\n","import type { SVGProps } from 'react'\n\n/**\n * This module contains substitute icons for the Checkbox component.\n * @module\n */\n\ninterface CheckboxIconProps extends SVGProps<SVGSVGElement> {}\n\n/**\n * Checkmark icon for Checkbox component\n */\nexport function CheckmarkIcon(props: CheckboxIconProps) {\n return (\n <svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n role=\"img\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n d=\"M9.714 18 4 12.335l1.818-1.764 3.896 3.824L18.181 6 20 7.803 9.714 18Z\"\n />\n </svg>\n )\n}\n\ninterface IndeterminateIconProps extends SVGProps<SVGSVGElement> {}\n\n/**\n * Indeterminate icon for Checkbox component\n */\nexport function IndeterminateIcon(props: IndeterminateIconProps) {\n return (\n <svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path fill=\"currentColor\" d=\"M4 11h16v2.667H4z\" />\n </svg>\n )\n}\n","import { type CarbonIconProps } from '@cerberus/icons'\n\n/**\n * This module contains an animating icon to use for the FileStatus component.\n * @module\n */\n\nexport type AnimatingUploadIconProps = CarbonIconProps\n\nexport function AnimatingUploadIcon(props: AnimatingUploadIconProps) {\n return (\n <svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width={props.size ?? '1em'}\n height={props.size ?? '1em'}\n viewBox=\"0 0 24 24\"\n >\n <g\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n >\n <path\n data-name=\"animating-trail\"\n strokeDasharray=\"2 4\"\n strokeDashoffset={6}\n d=\"M12 21c-4.97 0 -9 -4.03 -9 -9c0 -4.97 4.03 -9 9 -9\"\n >\n <animate\n attributeName=\"stroke-dashoffset\"\n dur=\"0.45s\"\n repeatCount=\"indefinite\"\n values=\"6;0\"\n ></animate>\n </path>\n\n <path\n data-name=\"half-circle\"\n strokeDasharray={32}\n strokeDashoffset={32}\n d=\"M12 3c4.97 0 9 4.03 9 9c0 4.97 -4.03 9 -9 9\"\n >\n <animate\n fill=\"freeze\"\n attributeName=\"stroke-dashoffset\"\n begin=\"0.075s\"\n dur=\"0.3s\"\n values=\"32;0\"\n ></animate>\n </path>\n\n <svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"0.8em\"\n height=\"0.8em\"\n x=\"27%\"\n y=\"27%\"\n viewBox=\"0 0 24 24\"\n >\n <polygon\n fill=\"currentColor\"\n stroke=\"currentColor\"\n strokeWidth={0.8}\n opacity=\"1\"\n 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 \"\n >\n <animate\n fill=\"freeze\"\n attributeName=\"opacity\"\n values=\"1;0;1\"\n dur=\"2s\"\n repeatCount=\"indefinite\"\n ></animate>\n </polygon>\n </svg>\n </g>\n </svg>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAcO;;;ACQD;AAVC,SAAS,cAAc,OAA0B;AACtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAY;AAAA,MACZ,OAAM;AAAA,MACN,MAAK;AAAA,MACL,MAAK;AAAA,MACL,SAAQ;AAAA,MACP,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,GAAE;AAAA;AAAA,MACJ;AAAA;AAAA,EACF;AAEJ;AAOO,SAAS,kBAAkB,OAA+B;AAC/D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAY;AAAA,MACZ,OAAM;AAAA,MACN,MAAK;AAAA,MACL,MAAK;AAAA,MACL,SAAQ;AAAA,MACP,GAAG;AAAA,MAEJ,sDAAC,UAAK,MAAK,gBAAe,GAAE,qBAAoB;AAAA;AAAA,EAClD;AAEJ;;;AC9BM,IAAAA,sBAAA;AATC,SAAS,oBAAoB,OAAiC;AACnE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAY;AAAA,MACZ,OAAM;AAAA,MACN,OAAO,MAAM,QAAQ;AAAA,MACrB,QAAQ,MAAM,QAAQ;AAAA,MACtB,SAAQ;AAAA,MAER;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UAEb;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC,aAAU;AAAA,gBACV,iBAAgB;AAAA,gBAChB,kBAAkB;AAAA,gBAClB,GAAE;AAAA,gBAEF;AAAA,kBAAC;AAAA;AAAA,oBACC,eAAc;AAAA,oBACd,KAAI;AAAA,oBACJ,aAAY;AAAA,oBACZ,QAAO;AAAA;AAAA,gBACR;AAAA;AAAA,YACH;AAAA,YAEA;AAAA,cAAC;AAAA;AAAA,gBACC,aAAU;AAAA,gBACV,iBAAiB;AAAA,gBACjB,kBAAkB;AAAA,gBAClB,GAAE;AAAA,gBAEF;AAAA,kBAAC;AAAA;AAAA,oBACC,MAAK;AAAA,oBACL,eAAc;AAAA,oBACd,OAAM;AAAA,oBACN,KAAI;AAAA,oBACJ,QAAO;AAAA;AAAA,gBACR;AAAA;AAAA,YACH;AAAA,YAEA;AAAA,cAAC;AAAA;AAAA,gBACC,eAAY;AAAA,gBACZ,OAAM;AAAA,gBACN,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,SAAQ;AAAA,gBAER;AAAA,kBAAC;AAAA;AAAA,oBACC,MAAK;AAAA,oBACL,QAAO;AAAA,oBACP,aAAa;AAAA,oBACb,SAAQ;AAAA,oBACR,QAAO;AAAA,oBAEP;AAAA,sBAAC;AAAA;AAAA,wBACC,MAAK;AAAA,wBACL,eAAc;AAAA,wBACd,QAAO;AAAA,wBACP,KAAI;AAAA,wBACJ,aAAY;AAAA;AAAA,oBACb;AAAA;AAAA,gBACH;AAAA;AAAA,YACF;AAAA;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;;;AFxCO,IAAM,eAA6B;AAAA,EACxC,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,qBAAqB;AAAA,EACrB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,eAAe;AACjB;","names":["import_jsx_runtime"]}
@@ -65,6 +65,102 @@ function IndeterminateIcon(props) {
65
65
  );
66
66
  }
67
67
 
68
+ // src/components/AnimatingUploadIcon.tsx
69
+ var import_jsx_runtime2 = require("react/jsx-runtime");
70
+ function AnimatingUploadIcon(props) {
71
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
72
+ "svg",
73
+ {
74
+ "aria-hidden": "true",
75
+ xmlns: "http://www.w3.org/2000/svg",
76
+ width: props.size ?? "1em",
77
+ height: props.size ?? "1em",
78
+ viewBox: "0 0 24 24",
79
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
80
+ "g",
81
+ {
82
+ fill: "none",
83
+ stroke: "currentColor",
84
+ strokeLinecap: "square",
85
+ strokeLinejoin: "round",
86
+ strokeWidth: 1.5,
87
+ children: [
88
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
89
+ "path",
90
+ {
91
+ "data-name": "animating-trail",
92
+ strokeDasharray: "2 4",
93
+ strokeDashoffset: 6,
94
+ d: "M12 21c-4.97 0 -9 -4.03 -9 -9c0 -4.97 4.03 -9 9 -9",
95
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
96
+ "animate",
97
+ {
98
+ attributeName: "stroke-dashoffset",
99
+ dur: "0.45s",
100
+ repeatCount: "indefinite",
101
+ values: "6;0"
102
+ }
103
+ )
104
+ }
105
+ ),
106
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
107
+ "path",
108
+ {
109
+ "data-name": "half-circle",
110
+ strokeDasharray: 32,
111
+ strokeDashoffset: 32,
112
+ d: "M12 3c4.97 0 9 4.03 9 9c0 4.97 -4.03 9 -9 9",
113
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
114
+ "animate",
115
+ {
116
+ fill: "freeze",
117
+ attributeName: "stroke-dashoffset",
118
+ begin: "0.075s",
119
+ dur: "0.3s",
120
+ values: "32;0"
121
+ }
122
+ )
123
+ }
124
+ ),
125
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
126
+ "svg",
127
+ {
128
+ "aria-hidden": "true",
129
+ xmlns: "http://www.w3.org/2000/svg",
130
+ width: "0.8em",
131
+ height: "0.8em",
132
+ x: "27%",
133
+ y: "27%",
134
+ viewBox: "0 0 24 24",
135
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
136
+ "polygon",
137
+ {
138
+ fill: "currentColor",
139
+ stroke: "currentColor",
140
+ strokeWidth: 0.8,
141
+ opacity: "1",
142
+ 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 ",
143
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
144
+ "animate",
145
+ {
146
+ fill: "freeze",
147
+ attributeName: "opacity",
148
+ values: "1;0;1",
149
+ dur: "2s",
150
+ repeatCount: "indefinite"
151
+ }
152
+ )
153
+ }
154
+ )
155
+ }
156
+ )
157
+ ]
158
+ }
159
+ )
160
+ }
161
+ );
162
+ }
163
+
68
164
  // src/config/cerbIcons.ts
69
165
  var defaultIcons = {
70
166
  avatar: import_icons.UserFilled,
@@ -73,12 +169,13 @@ var defaultIcons = {
73
169
  confirmModal: import_icons.Information,
74
170
  delete: import_icons.TrashCan,
75
171
  promptModal: import_icons.Information,
76
- fileUploader: import_icons.CloudUpload,
172
+ waitingFileUploader: import_icons.CloudUpload,
173
+ fileUploader: AnimatingUploadIcon,
77
174
  indeterminate: IndeterminateIcon,
78
- infoNotification: import_icons.InformationFilled,
79
- successNotification: import_icons.CheckmarkFilled,
80
- warningNotification: import_icons.WarningFilled,
81
- dangerNotification: import_icons.ErrorFilled,
175
+ infoNotification: import_icons.Information,
176
+ successNotification: import_icons.CheckmarkOutline,
177
+ warningNotification: import_icons.WarningAlt,
178
+ dangerNotification: import_icons.WarningFilled,
82
179
  invalid: import_icons.WarningFilled,
83
180
  invalidAlt: import_icons.Warning,
84
181
  redo: import_icons.Restart,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/config/defineIcons.ts","../../../src/config/cerbIcons.ts","../../../src/config/icons/checkbox.icons.tsx"],"sourcesContent":["import { defaultIcons, type DefinedIcons } from './cerbIcons'\n\nfunction _validateIconsProperties(icons: DefinedIcons) {\n if (!icons.invalid) {\n throw new Error(\n 'The an invalid property must be defined in your custom icons library.',\n )\n }\n}\n\nexport function defineIcons(icons: DefinedIcons): Required<DefinedIcons> {\n _validateIconsProperties(icons)\n $cerberusIcons = {\n ...defaultIcons,\n ...icons,\n } as Required<DefinedIcons>\n return $cerberusIcons\n}\n\n// Default icons\n\nexport let $cerberusIcons = defaultIcons as Required<DefinedIcons>\n","import {\n Checkmark,\n CheckmarkFilled,\n ChevronDown,\n CloseFilled,\n CloudUpload,\n ErrorFilled,\n Information,\n InformationFilled,\n Restart,\n TrashCan,\n UserFilled,\n Warning,\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 avatar?: IconType\n checkbox?: IconType\n close?: IconType\n confirmModal?: IconType\n delete?: 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 invalidAlt?: IconType\n redo?: IconType\n selectArrow?: IconType\n toggleChecked?: IconType\n}\n\nexport const defaultIcons: DefinedIcons = {\n avatar: UserFilled,\n checkbox: CheckmarkIcon,\n close: CloseFilled,\n confirmModal: Information,\n delete: TrashCan,\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 invalidAlt: Warning,\n redo: Restart,\n selectArrow: ChevronDown,\n toggleChecked: Checkmark,\n}\n","import type { SVGProps } from 'react'\n\n/**\n * This module contains substitute icons for the Checkbox component.\n * @module\n */\n\ninterface CheckboxIconProps extends SVGProps<SVGSVGElement> {}\n\n/**\n * Checkmark icon for Checkbox component\n */\nexport function CheckmarkIcon(props: CheckboxIconProps) {\n return (\n <svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n role=\"img\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n d=\"M9.714 18 4 12.335l1.818-1.764 3.896 3.824L18.181 6 20 7.803 9.714 18Z\"\n />\n </svg>\n )\n}\n\ninterface IndeterminateIconProps extends SVGProps<SVGSVGElement> {}\n\n/**\n * Indeterminate icon for Checkbox component\n */\nexport function IndeterminateIcon(props: IndeterminateIconProps) {\n return (\n <svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path fill=\"currentColor\" d=\"M4 11h16v2.667H4z\" />\n </svg>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAeO;;;ACOD;AAVC,SAAS,cAAc,OAA0B;AACtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAY;AAAA,MACZ,OAAM;AAAA,MACN,MAAK;AAAA,MACL,MAAK;AAAA,MACL,SAAQ;AAAA,MACP,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,GAAE;AAAA;AAAA,MACJ;AAAA;AAAA,EACF;AAEJ;AAOO,SAAS,kBAAkB,OAA+B;AAC/D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAY;AAAA,MACZ,OAAM;AAAA,MACN,MAAK;AAAA,MACL,MAAK;AAAA,MACL,SAAQ;AAAA,MACP,GAAG;AAAA,MAEJ,sDAAC,UAAK,MAAK,gBAAe,GAAE,qBAAoB;AAAA;AAAA,EAClD;AAEJ;;;ADPO,IAAM,eAA6B;AAAA,EACxC,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,cAAc;AAAA,EACd,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,eAAe;AACjB;;;ADzDA,SAAS,yBAAyB,OAAqB;AACrD,MAAI,CAAC,MAAM,SAAS;AAClB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,YAAY,OAA6C;AACvE,2BAAyB,KAAK;AAC9B,mBAAiB;AAAA,IACf,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACA,SAAO;AACT;AAIO,IAAI,iBAAiB;","names":[]}
1
+ {"version":3,"sources":["../../../src/config/defineIcons.ts","../../../src/config/cerbIcons.ts","../../../src/config/icons/checkbox.icons.tsx","../../../src/components/AnimatingUploadIcon.tsx"],"sourcesContent":["import { defaultIcons, type DefinedIcons } from './cerbIcons'\n\nfunction _validateIconsProperties(icons: DefinedIcons) {\n if (!icons.invalid) {\n throw new Error(\n 'The an invalid property must be defined in your custom icons library.',\n )\n }\n}\n\nexport function defineIcons(icons: DefinedIcons): Required<DefinedIcons> {\n _validateIconsProperties(icons)\n $cerberusIcons = {\n ...defaultIcons,\n ...icons,\n } as Required<DefinedIcons>\n return $cerberusIcons\n}\n\n// Default icons\n\nexport let $cerberusIcons = defaultIcons as Required<DefinedIcons>\n","import {\n Checkmark,\n CheckmarkOutline,\n ChevronDown,\n CloseFilled,\n CloudUpload,\n Information,\n Restart,\n TrashCan,\n UserFilled,\n Warning,\n WarningAlt,\n WarningFilled,\n type CarbonIconType,\n} from '@cerberus/icons'\nimport type { ElementType } from 'react'\nimport { CheckmarkIcon, IndeterminateIcon } from './icons/checkbox.icons'\nimport { AnimatingUploadIcon } from '../components/AnimatingUploadIcon'\n\nexport type IconType = CarbonIconType | ElementType\n\nexport interface DefinedIcons {\n avatar?: IconType\n checkbox?: IconType\n close?: IconType\n confirmModal?: IconType\n delete?: IconType\n promptModal?: IconType\n waitingFileUploader?: IconType\n fileUploader?: IconType\n indeterminate?: IconType\n infoNotification?: IconType\n successNotification?: IconType\n warningNotification?: IconType\n dangerNotification?: IconType\n invalid: IconType\n invalidAlt?: IconType\n redo?: IconType\n selectArrow?: IconType\n toggleChecked?: IconType\n}\n\nexport const defaultIcons: DefinedIcons = {\n avatar: UserFilled,\n checkbox: CheckmarkIcon,\n close: CloseFilled,\n confirmModal: Information,\n delete: TrashCan,\n promptModal: Information,\n waitingFileUploader: CloudUpload,\n fileUploader: AnimatingUploadIcon,\n indeterminate: IndeterminateIcon,\n infoNotification: Information,\n successNotification: CheckmarkOutline,\n warningNotification: WarningAlt,\n dangerNotification: WarningFilled,\n invalid: WarningFilled,\n invalidAlt: Warning,\n redo: Restart,\n selectArrow: ChevronDown,\n toggleChecked: Checkmark,\n}\n","import type { SVGProps } from 'react'\n\n/**\n * This module contains substitute icons for the Checkbox component.\n * @module\n */\n\ninterface CheckboxIconProps extends SVGProps<SVGSVGElement> {}\n\n/**\n * Checkmark icon for Checkbox component\n */\nexport function CheckmarkIcon(props: CheckboxIconProps) {\n return (\n <svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n role=\"img\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n d=\"M9.714 18 4 12.335l1.818-1.764 3.896 3.824L18.181 6 20 7.803 9.714 18Z\"\n />\n </svg>\n )\n}\n\ninterface IndeterminateIconProps extends SVGProps<SVGSVGElement> {}\n\n/**\n * Indeterminate icon for Checkbox component\n */\nexport function IndeterminateIcon(props: IndeterminateIconProps) {\n return (\n <svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path fill=\"currentColor\" d=\"M4 11h16v2.667H4z\" />\n </svg>\n )\n}\n","import { type CarbonIconProps } from '@cerberus/icons'\n\n/**\n * This module contains an animating icon to use for the FileStatus component.\n * @module\n */\n\nexport type AnimatingUploadIconProps = CarbonIconProps\n\nexport function AnimatingUploadIcon(props: AnimatingUploadIconProps) {\n return (\n <svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width={props.size ?? '1em'}\n height={props.size ?? '1em'}\n viewBox=\"0 0 24 24\"\n >\n <g\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"square\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n >\n <path\n data-name=\"animating-trail\"\n strokeDasharray=\"2 4\"\n strokeDashoffset={6}\n d=\"M12 21c-4.97 0 -9 -4.03 -9 -9c0 -4.97 4.03 -9 9 -9\"\n >\n <animate\n attributeName=\"stroke-dashoffset\"\n dur=\"0.45s\"\n repeatCount=\"indefinite\"\n values=\"6;0\"\n ></animate>\n </path>\n\n <path\n data-name=\"half-circle\"\n strokeDasharray={32}\n strokeDashoffset={32}\n d=\"M12 3c4.97 0 9 4.03 9 9c0 4.97 -4.03 9 -9 9\"\n >\n <animate\n fill=\"freeze\"\n attributeName=\"stroke-dashoffset\"\n begin=\"0.075s\"\n dur=\"0.3s\"\n values=\"32;0\"\n ></animate>\n </path>\n\n <svg\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"0.8em\"\n height=\"0.8em\"\n x=\"27%\"\n y=\"27%\"\n viewBox=\"0 0 24 24\"\n >\n <polygon\n fill=\"currentColor\"\n stroke=\"currentColor\"\n strokeWidth={0.8}\n opacity=\"1\"\n 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 \"\n >\n <animate\n fill=\"freeze\"\n attributeName=\"opacity\"\n values=\"1;0;1\"\n dur=\"2s\"\n repeatCount=\"indefinite\"\n ></animate>\n </polygon>\n </svg>\n </g>\n </svg>\n )\n}\n"],"mappings":"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","names":["import_jsx_runtime"]}
@@ -103,6 +103,102 @@ function IndeterminateIcon(props) {
103
103
  );
104
104
  }
105
105
 
106
+ // src/components/AnimatingUploadIcon.tsx
107
+ var import_jsx_runtime3 = require("react/jsx-runtime");
108
+ function AnimatingUploadIcon(props) {
109
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
110
+ "svg",
111
+ {
112
+ "aria-hidden": "true",
113
+ xmlns: "http://www.w3.org/2000/svg",
114
+ width: props.size ?? "1em",
115
+ height: props.size ?? "1em",
116
+ viewBox: "0 0 24 24",
117
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
118
+ "g",
119
+ {
120
+ fill: "none",
121
+ stroke: "currentColor",
122
+ strokeLinecap: "square",
123
+ strokeLinejoin: "round",
124
+ strokeWidth: 1.5,
125
+ children: [
126
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
127
+ "path",
128
+ {
129
+ "data-name": "animating-trail",
130
+ strokeDasharray: "2 4",
131
+ strokeDashoffset: 6,
132
+ d: "M12 21c-4.97 0 -9 -4.03 -9 -9c0 -4.97 4.03 -9 9 -9",
133
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
134
+ "animate",
135
+ {
136
+ attributeName: "stroke-dashoffset",
137
+ dur: "0.45s",
138
+ repeatCount: "indefinite",
139
+ values: "6;0"
140
+ }
141
+ )
142
+ }
143
+ ),
144
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
145
+ "path",
146
+ {
147
+ "data-name": "half-circle",
148
+ strokeDasharray: 32,
149
+ strokeDashoffset: 32,
150
+ d: "M12 3c4.97 0 9 4.03 9 9c0 4.97 -4.03 9 -9 9",
151
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
152
+ "animate",
153
+ {
154
+ fill: "freeze",
155
+ attributeName: "stroke-dashoffset",
156
+ begin: "0.075s",
157
+ dur: "0.3s",
158
+ values: "32;0"
159
+ }
160
+ )
161
+ }
162
+ ),
163
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
164
+ "svg",
165
+ {
166
+ "aria-hidden": "true",
167
+ xmlns: "http://www.w3.org/2000/svg",
168
+ width: "0.8em",
169
+ height: "0.8em",
170
+ x: "27%",
171
+ y: "27%",
172
+ viewBox: "0 0 24 24",
173
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
174
+ "polygon",
175
+ {
176
+ fill: "currentColor",
177
+ stroke: "currentColor",
178
+ strokeWidth: 0.8,
179
+ opacity: "1",
180
+ 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 ",
181
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
182
+ "animate",
183
+ {
184
+ fill: "freeze",
185
+ attributeName: "opacity",
186
+ values: "1;0;1",
187
+ dur: "2s",
188
+ repeatCount: "indefinite"
189
+ }
190
+ )
191
+ }
192
+ )
193
+ }
194
+ )
195
+ ]
196
+ }
197
+ )
198
+ }
199
+ );
200
+ }
201
+
106
202
  // src/config/cerbIcons.ts
107
203
  var defaultIcons = {
108
204
  avatar: import_icons.UserFilled,
@@ -111,12 +207,13 @@ var defaultIcons = {
111
207
  confirmModal: import_icons.Information,
112
208
  delete: import_icons.TrashCan,
113
209
  promptModal: import_icons.Information,
114
- fileUploader: import_icons.CloudUpload,
210
+ waitingFileUploader: import_icons.CloudUpload,
211
+ fileUploader: AnimatingUploadIcon,
115
212
  indeterminate: IndeterminateIcon,
116
- infoNotification: import_icons.InformationFilled,
117
- successNotification: import_icons.CheckmarkFilled,
118
- warningNotification: import_icons.WarningFilled,
119
- dangerNotification: import_icons.ErrorFilled,
213
+ infoNotification: import_icons.Information,
214
+ successNotification: import_icons.CheckmarkOutline,
215
+ warningNotification: import_icons.WarningAlt,
216
+ dangerNotification: import_icons.WarningFilled,
120
217
  invalid: import_icons.WarningFilled,
121
218
  invalidAlt: import_icons.Warning,
122
219
  redo: import_icons.Restart,
@@ -168,9 +265,9 @@ function Show(props) {
168
265
  var import_css2 = require("@cerberus/styled-system/css");
169
266
  var import_recipes2 = require("@cerberus/styled-system/recipes");
170
267
  var import_react2 = require("react");
171
- var import_jsx_runtime3 = require("react/jsx-runtime");
268
+ var import_jsx_runtime4 = require("react/jsx-runtime");
172
269
  function ModalEl(props, ref) {
173
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
270
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
174
271
  "dialog",
175
272
  {
176
273
  ...props,
@@ -185,29 +282,33 @@ var Modal = (0, import_react2.forwardRef)(ModalEl);
185
282
  var import_react3 = require("react");
186
283
  function useModal() {
187
284
  const modalRef = (0, import_react3.useRef)(null);
285
+ const [isOpen, setIsOpen] = (0, import_react3.useState)(false);
188
286
  const show = (0, import_react3.useCallback)(() => {
189
287
  var _a;
190
288
  (_a = modalRef.current) == null ? void 0 : _a.showModal();
289
+ setIsOpen(true);
191
290
  }, []);
192
291
  const close = (0, import_react3.useCallback)(() => {
193
292
  var _a;
194
293
  (_a = modalRef.current) == null ? void 0 : _a.close();
294
+ setIsOpen(false);
195
295
  }, []);
196
296
  return (0, import_react3.useMemo)(() => {
197
297
  return {
198
298
  modalRef,
199
299
  show,
200
- close
300
+ close,
301
+ isOpen
201
302
  };
202
- }, [modalRef, show, close]);
303
+ }, [modalRef, show, close, isOpen]);
203
304
  }
204
305
 
205
306
  // src/components/ModalHeader.tsx
206
307
  var import_css3 = require("@cerberus/styled-system/css");
207
308
  var import_patterns = require("@cerberus/styled-system/patterns");
208
- var import_jsx_runtime4 = require("react/jsx-runtime");
309
+ var import_jsx_runtime5 = require("react/jsx-runtime");
209
310
  function ModalHeader(props) {
210
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
311
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
211
312
  "div",
212
313
  {
213
314
  ...props,
@@ -215,8 +316,8 @@ function ModalHeader(props) {
215
316
  props.className,
216
317
  (0, import_patterns.vstack)({
217
318
  alignItems: "flex-start",
218
- gap: "4",
219
- mb: "8"
319
+ gap: "md",
320
+ mb: "md"
220
321
  })
221
322
  )
222
323
  }
@@ -226,24 +327,24 @@ function ModalHeader(props) {
226
327
  // src/components/ModalHeading.tsx
227
328
  var import_css4 = require("@cerberus/styled-system/css");
228
329
  var import_recipes3 = require("@cerberus/styled-system/recipes");
229
- var import_jsx_runtime5 = require("react/jsx-runtime");
330
+ var import_jsx_runtime6 = require("react/jsx-runtime");
230
331
  function ModalHeading(props) {
231
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { ...props, className: (0, import_css4.cx)(props.className, (0, import_recipes3.modal)().heading) });
332
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { ...props, className: (0, import_css4.cx)(props.className, (0, import_recipes3.modal)().heading) });
232
333
  }
233
334
 
234
335
  // src/components/ModalDescription.tsx
235
336
  var import_css5 = require("@cerberus/styled-system/css");
236
337
  var import_recipes4 = require("@cerberus/styled-system/recipes");
237
- var import_jsx_runtime6 = require("react/jsx-runtime");
338
+ var import_jsx_runtime7 = require("react/jsx-runtime");
238
339
  function ModalDescription(props) {
239
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { ...props, className: (0, import_css5.cx)(props.className, (0, import_recipes4.modal)().description) });
340
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { ...props, className: (0, import_css5.cx)(props.className, (0, import_recipes4.modal)().description) });
240
341
  }
241
342
 
242
343
  // src/components/Avatar.tsx
243
344
  var import_css6 = require("@cerberus/styled-system/css");
244
345
  var import_patterns2 = require("@cerberus/styled-system/patterns");
245
346
  var import_recipes5 = require("@cerberus/styled-system/recipes");
246
- var import_jsx_runtime7 = require("react/jsx-runtime");
347
+ var import_jsx_runtime8 = require("react/jsx-runtime");
247
348
  function Avatar(props) {
248
349
  const {
249
350
  ariaLabel,
@@ -258,7 +359,7 @@ function Avatar(props) {
258
359
  } = props;
259
360
  const { avatar: AvatarIcon } = $cerberusIcons;
260
361
  const initials = (ariaLabel || "").split(" ").map((word) => word[0]).join("").slice(0, 2);
261
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
362
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
262
363
  "div",
263
364
  {
264
365
  ...nativeProps,
@@ -267,19 +368,19 @@ function Avatar(props) {
267
368
  (0, import_recipes5.avatar)({ gradient, size }),
268
369
  (0, import_patterns2.circle)()
269
370
  ),
270
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
371
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
271
372
  Show,
272
373
  {
273
374
  when: Boolean(src) || Boolean(as),
274
- fallback: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
375
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
275
376
  Show,
276
377
  {
277
378
  when: Boolean(initials),
278
- fallback: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
379
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
279
380
  Show,
280
381
  {
281
382
  when: Boolean(icon),
282
- fallback: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
383
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
283
384
  AvatarIcon,
284
385
  {
285
386
  size: iconSizeMap[size]
@@ -291,11 +392,11 @@ function Avatar(props) {
291
392
  children: initials
292
393
  }
293
394
  ),
294
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
395
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
295
396
  Show,
296
397
  {
297
398
  when: Boolean(as),
298
- fallback: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
399
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
299
400
  "img",
300
401
  {
301
402
  alt: props.ariaLabel,
@@ -331,7 +432,7 @@ var iconSizeMap = {
331
432
  };
332
433
 
333
434
  // src/context/confirm-modal.tsx
334
- var import_jsx_runtime8 = require("react/jsx-runtime");
435
+ var import_jsx_runtime9 = require("react/jsx-runtime");
335
436
  var ConfirmModalContext = (0, import_react4.createContext)(null);
336
437
  function ConfirmModal(props) {
337
438
  const { modalRef, show, close } = useModal();
@@ -371,36 +472,36 @@ function ConfirmModal(props) {
371
472
  }),
372
473
  [handleShow]
373
474
  );
374
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(ConfirmModalContext.Provider, { value, children: [
475
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(ConfirmModalContext.Provider, { value, children: [
375
476
  props.children,
376
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(Modal, { onKeyDown: focusTrap, ref: modalRef, children: [
377
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(ModalHeader, { children: [
378
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
477
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(Modal, { onKeyDown: focusTrap, ref: modalRef, children: [
478
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(ModalHeader, { children: [
479
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
379
480
  "div",
380
481
  {
381
482
  className: (0, import_patterns3.hstack)({
382
483
  justify: "center",
383
484
  w: "full"
384
485
  }),
385
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
486
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
386
487
  Show,
387
488
  {
388
489
  when: palette === "danger",
389
- fallback: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
490
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
390
491
  Avatar,
391
492
  {
392
493
  ariaLabel: "",
393
494
  gradient: "charon-light",
394
- icon: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ConfirmIcon, { size: 24 }),
495
+ icon: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ConfirmIcon, { size: 24 }),
395
496
  src: ""
396
497
  }
397
498
  ),
398
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
499
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
399
500
  Avatar,
400
501
  {
401
502
  ariaLabel: "",
402
503
  gradient: "hades-dark",
403
- icon: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ConfirmIcon, { size: 24 }),
504
+ icon: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ConfirmIcon, { size: 24 }),
404
505
  src: ""
405
506
  }
406
507
  )
@@ -408,17 +509,17 @@ function ConfirmModal(props) {
408
509
  )
409
510
  }
410
511
  ),
411
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ModalHeading, { children: content == null ? void 0 : content.heading }),
412
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ModalDescription, { children: content == null ? void 0 : content.description })
512
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ModalHeading, { children: content == null ? void 0 : content.heading }),
513
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ModalDescription, { children: content == null ? void 0 : content.description })
413
514
  ] }),
414
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
515
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
415
516
  "div",
416
517
  {
417
518
  className: (0, import_patterns3.hstack)({
418
519
  gap: "4"
419
520
  }),
420
521
  children: [
421
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
522
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
422
523
  Button,
423
524
  {
424
525
  autoFocus: true,
@@ -432,7 +533,7 @@ function ConfirmModal(props) {
432
533
  children: content == null ? void 0 : content.actionText
433
534
  }
434
535
  ),
435
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
536
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
436
537
  Button,
437
538
  {
438
539
  className: (0, import_css7.css)({