ferns-ui 0.47.10 → 1.0.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 (402) hide show
  1. package/dist/Accordion.d.ts +3 -0
  2. package/dist/Accordion.js +38 -0
  3. package/dist/Accordion.js.map +1 -0
  4. package/dist/ActionSheet.d.ts +9 -10
  5. package/dist/ActionSheet.js +8 -6
  6. package/dist/ActionSheet.js.map +1 -1
  7. package/dist/AddressField.d.ts +3 -0
  8. package/dist/AddressField.js +33 -0
  9. package/dist/AddressField.js.map +1 -0
  10. package/dist/Avatar.d.ts +2 -2
  11. package/dist/Avatar.js +132 -96
  12. package/dist/Avatar.js.map +1 -1
  13. package/dist/Badge.d.ts +1 -1
  14. package/dist/Badge.js +95 -20
  15. package/dist/Badge.js.map +1 -1
  16. package/dist/Banner.d.ts +1 -1
  17. package/dist/Banner.js +89 -51
  18. package/dist/Banner.js.map +1 -1
  19. package/dist/Body.js +4 -4
  20. package/dist/Body.js.map +1 -1
  21. package/dist/BooleanField.d.ts +3 -0
  22. package/dist/BooleanField.js +90 -0
  23. package/dist/BooleanField.js.map +1 -0
  24. package/dist/Box.js +80 -80
  25. package/dist/Box.js.map +1 -1
  26. package/dist/Button.d.ts +2 -2
  27. package/dist/Button.js +87 -109
  28. package/dist/Button.js.map +1 -1
  29. package/dist/Card.js +2 -2
  30. package/dist/Card.js.map +1 -1
  31. package/dist/CheckBox.d.ts +2 -2
  32. package/dist/CheckBox.js +23 -35
  33. package/dist/CheckBox.js.map +1 -1
  34. package/dist/Common.d.ts +1129 -413
  35. package/dist/Common.js +39 -3
  36. package/dist/Common.js.map +1 -1
  37. package/dist/CommonIconTypes.d.ts +3 -0
  38. package/dist/CommonIconTypes.js +2 -0
  39. package/dist/CommonIconTypes.js.map +1 -0
  40. package/dist/CustomSelectField.d.ts +3 -0
  41. package/dist/CustomSelectField.js +64 -0
  42. package/dist/CustomSelectField.js.map +1 -0
  43. package/dist/DateTimeActionSheet.d.ts +1 -1
  44. package/dist/DateTimeActionSheet.js +170 -158
  45. package/dist/DateTimeActionSheet.js.map +1 -1
  46. package/dist/DateTimeField.d.ts +3 -3
  47. package/dist/DateTimeField.js +140 -30
  48. package/dist/DateTimeField.js.map +1 -1
  49. package/dist/DateUtilities.js.map +1 -1
  50. package/dist/DateUtilities.test.js +2 -1
  51. package/dist/DateUtilities.test.js.map +1 -1
  52. package/dist/DecimalRangeActionSheet.js +3 -15
  53. package/dist/DecimalRangeActionSheet.js.map +1 -1
  54. package/dist/DismissButton.d.ts +3 -0
  55. package/dist/DismissButton.js +14 -0
  56. package/dist/DismissButton.js.map +1 -0
  57. package/dist/EmailField.d.ts +3 -0
  58. package/dist/EmailField.js +52 -0
  59. package/dist/EmailField.js.map +1 -0
  60. package/dist/ErrorBoundary.d.ts +1 -1
  61. package/dist/ErrorPage.js +2 -2
  62. package/dist/ErrorPage.js.map +1 -1
  63. package/dist/FernsProvider.js +1 -1
  64. package/dist/FernsProvider.js.map +1 -1
  65. package/dist/Field.d.ts +2 -2
  66. package/dist/Field.js +67 -136
  67. package/dist/Field.js.map +1 -1
  68. package/dist/Heading.js +37 -16
  69. package/dist/Heading.js.map +1 -1
  70. package/dist/HeightActionSheet.js +3 -7
  71. package/dist/HeightActionSheet.js.map +1 -1
  72. package/dist/Hyperlink.js +7 -1
  73. package/dist/Hyperlink.js.map +1 -1
  74. package/dist/Icon.d.ts +1 -2
  75. package/dist/Icon.js +8 -10
  76. package/dist/Icon.js.map +1 -1
  77. package/dist/IconButton.d.ts +2 -2
  78. package/dist/IconButton.js +93 -92
  79. package/dist/IconButton.js.map +1 -1
  80. package/dist/InfoTooltipButton.d.ts +1 -1
  81. package/dist/InfoTooltipButton.js +2 -2
  82. package/dist/InfoTooltipButton.js.map +1 -1
  83. package/dist/Link.d.ts +1 -1
  84. package/dist/Link.js +7 -3
  85. package/dist/Link.js.map +1 -1
  86. package/dist/MobileAddressAutoComplete.js +8 -8
  87. package/dist/MobileAddressAutoComplete.js.map +1 -1
  88. package/dist/Modal.d.ts +2 -2
  89. package/dist/Modal.js +95 -80
  90. package/dist/Modal.js.map +1 -1
  91. package/dist/MultiselectField.d.ts +3 -0
  92. package/dist/MultiselectField.js +49 -0
  93. package/dist/MultiselectField.js.map +1 -0
  94. package/dist/NumberField.d.ts +3 -0
  95. package/dist/NumberField.js +49 -0
  96. package/dist/NumberField.js.map +1 -0
  97. package/dist/NumberPickerActionSheet.js +2 -2
  98. package/dist/NumberPickerActionSheet.js.map +1 -1
  99. package/dist/OpenAPIContext.js.map +1 -1
  100. package/dist/Page.js +6 -6
  101. package/dist/Page.js.map +1 -1
  102. package/dist/Pagination.d.ts +2 -8
  103. package/dist/Pagination.js +107 -13
  104. package/dist/Pagination.js.map +1 -1
  105. package/dist/PasswordField.d.ts +2 -0
  106. package/dist/PasswordField.js +6 -0
  107. package/dist/PasswordField.js.map +1 -0
  108. package/dist/PhoneNumberField.d.ts +3 -0
  109. package/dist/PhoneNumberField.js +79 -0
  110. package/dist/PhoneNumberField.js.map +1 -0
  111. package/dist/PickerSelect.d.ts +6 -67
  112. package/dist/PickerSelect.js +145 -115
  113. package/dist/PickerSelect.js.map +1 -1
  114. package/dist/Radio.d.ts +3 -0
  115. package/dist/Radio.js +21 -0
  116. package/dist/Radio.js.map +1 -0
  117. package/dist/RadioField.d.ts +3 -0
  118. package/dist/RadioField.js +22 -0
  119. package/dist/RadioField.js.map +1 -0
  120. package/dist/SegmentedControl.d.ts +1 -1
  121. package/dist/SegmentedControl.js +37 -68
  122. package/dist/SegmentedControl.js.map +1 -1
  123. package/dist/SelectField.d.ts +3 -0
  124. package/dist/SelectField.js +20 -0
  125. package/dist/SelectField.js.map +1 -0
  126. package/dist/SideDrawer.js +8 -2
  127. package/dist/SideDrawer.js.map +1 -1
  128. package/dist/Signature.d.ts +1 -0
  129. package/dist/Signature.js +8 -7
  130. package/dist/Signature.js.map +1 -1
  131. package/dist/Signature.native.js +8 -7
  132. package/dist/Signature.native.js.map +1 -1
  133. package/dist/SignatureField.d.ts +3 -0
  134. package/dist/SignatureField.js +54 -0
  135. package/dist/SignatureField.js.map +1 -0
  136. package/dist/Spinner.js +17 -2
  137. package/dist/Spinner.js.map +1 -1
  138. package/dist/SplitPage.d.ts +1 -1
  139. package/dist/SplitPage.js +10 -10
  140. package/dist/SplitPage.js.map +1 -1
  141. package/dist/SplitPage.native.js +7 -7
  142. package/dist/SplitPage.native.js.map +1 -1
  143. package/dist/TapToEdit.d.ts +3 -3
  144. package/dist/TapToEdit.js +64 -59
  145. package/dist/TapToEdit.js.map +1 -1
  146. package/dist/Text.d.ts +1 -1
  147. package/dist/Text.js +70 -64
  148. package/dist/Text.js.map +1 -1
  149. package/dist/TextArea.d.ts +1 -1
  150. package/dist/TextArea.js +2 -14
  151. package/dist/TextArea.js.map +1 -1
  152. package/dist/TextField.d.ts +2 -2
  153. package/dist/TextField.js +89 -206
  154. package/dist/TextField.js.map +1 -1
  155. package/dist/TextFieldNumberActionSheet.js +2 -2
  156. package/dist/TextFieldNumberActionSheet.js.map +1 -1
  157. package/dist/Theme.d.ts +87 -3
  158. package/dist/Theme.js +197 -98
  159. package/dist/Theme.js.map +1 -1
  160. package/dist/TimezonePicker.js +3 -5
  161. package/dist/TimezonePicker.js.map +1 -1
  162. package/dist/Toast.d.ts +18 -5
  163. package/dist/Toast.js +130 -31
  164. package/dist/Toast.js.map +1 -1
  165. package/dist/Tooltip.d.ts +2 -2
  166. package/dist/Tooltip.js +177 -80
  167. package/dist/Tooltip.js.map +1 -1
  168. package/dist/UnifiedAddressAutoComplete.js +2 -2
  169. package/dist/UnifiedAddressAutoComplete.js.map +1 -1
  170. package/dist/Unifier.js.map +1 -1
  171. package/dist/Utilities.js +5 -3
  172. package/dist/Utilities.js.map +1 -1
  173. package/dist/WebAddressAutocomplete.js +2 -2
  174. package/dist/WebAddressAutocomplete.js.map +1 -1
  175. package/dist/fieldElements/FieldError.d.ts +6 -0
  176. package/dist/fieldElements/FieldError.js +14 -0
  177. package/dist/fieldElements/FieldError.js.map +1 -0
  178. package/dist/fieldElements/FieldHelperText.d.ts +6 -0
  179. package/dist/fieldElements/FieldHelperText.js +11 -0
  180. package/dist/fieldElements/FieldHelperText.js.map +1 -0
  181. package/dist/fieldElements/FieldTitle.d.ts +6 -0
  182. package/dist/fieldElements/FieldTitle.js +19 -0
  183. package/dist/fieldElements/FieldTitle.js.map +1 -0
  184. package/dist/fieldElements/index.d.ts +3 -0
  185. package/dist/fieldElements/index.js +4 -0
  186. package/dist/fieldElements/index.js.map +1 -0
  187. package/dist/icons/MobileIcon.d.ts +3 -0
  188. package/dist/icons/MobileIcon.js +24 -0
  189. package/dist/icons/MobileIcon.js.map +1 -0
  190. package/dist/icons/OfflineIcon.d.ts +3 -0
  191. package/dist/icons/OfflineIcon.js +23 -0
  192. package/dist/icons/OfflineIcon.js.map +1 -0
  193. package/dist/icons/OnlineIcon.d.ts +3 -0
  194. package/dist/icons/OnlineIcon.js +24 -0
  195. package/dist/icons/OnlineIcon.js.map +1 -0
  196. package/dist/icons/OutOfficeIcon.d.ts +3 -0
  197. package/dist/icons/OutOfficeIcon.js +24 -0
  198. package/dist/icons/OutOfficeIcon.js.map +1 -0
  199. package/dist/icons/index.d.ts +4 -0
  200. package/dist/icons/index.js +5 -0
  201. package/dist/icons/index.js.map +1 -0
  202. package/dist/index.d.ts +28 -14
  203. package/dist/index.js +28 -14
  204. package/dist/index.js.map +1 -1
  205. package/dist/setupTests.d.ts +1 -0
  206. package/dist/setupTests.js +1 -1
  207. package/dist/setupTests.js.map +1 -1
  208. package/dist/{Table.d.ts → table/Table.d.ts} +2 -2
  209. package/dist/{Table.js → table/Table.js} +18 -10
  210. package/dist/table/Table.js.map +1 -0
  211. package/dist/table/TableBadge.d.ts +6 -0
  212. package/dist/table/TableBadge.js +22 -0
  213. package/dist/table/TableBadge.js.map +1 -0
  214. package/dist/table/TableBoolean.d.ts +6 -0
  215. package/dist/table/TableBoolean.js +39 -0
  216. package/dist/table/TableBoolean.js.map +1 -0
  217. package/dist/table/TableDate.d.ts +3 -0
  218. package/dist/table/TableDate.js +26 -0
  219. package/dist/table/TableDate.js.map +1 -0
  220. package/dist/{TableHeader.d.ts → table/TableHeader.d.ts} +1 -1
  221. package/dist/{TableHeader.js → table/TableHeader.js} +2 -2
  222. package/dist/table/TableHeader.js.map +1 -0
  223. package/dist/{TableHeaderCell.d.ts → table/TableHeaderCell.d.ts} +2 -2
  224. package/dist/table/TableHeaderCell.js +58 -0
  225. package/dist/table/TableHeaderCell.js.map +1 -0
  226. package/dist/table/TableIconButton.d.ts +3 -0
  227. package/dist/table/TableIconButton.js +42 -0
  228. package/dist/table/TableIconButton.js.map +1 -0
  229. package/dist/table/TableNumber.d.ts +3 -0
  230. package/dist/table/TableNumber.js +18 -0
  231. package/dist/table/TableNumber.js.map +1 -0
  232. package/dist/{TableRow.d.ts → table/TableRow.d.ts} +1 -1
  233. package/dist/table/TableRow.js +28 -0
  234. package/dist/table/TableRow.js.map +1 -0
  235. package/dist/table/TableText.d.ts +3 -0
  236. package/dist/table/TableText.js +18 -0
  237. package/dist/table/TableText.js.map +1 -0
  238. package/dist/table/TableTitle.d.ts +3 -0
  239. package/dist/table/TableTitle.js +22 -0
  240. package/dist/table/TableTitle.js.map +1 -0
  241. package/dist/{tableContext.d.ts → table/tableContext.d.ts} +1 -1
  242. package/dist/table/tableContext.js.map +1 -0
  243. package/package.json +10 -4
  244. package/src/Accordion.tsx +92 -0
  245. package/src/ActionSheet.tsx +8 -5
  246. package/src/AddressField.tsx +122 -0
  247. package/src/Avatar.tsx +193 -147
  248. package/src/Badge.tsx +117 -49
  249. package/src/Banner.tsx +158 -111
  250. package/src/Body.tsx +4 -4
  251. package/src/BooleanField.tsx +122 -0
  252. package/src/Box.tsx +92 -82
  253. package/src/Button.tsx +151 -167
  254. package/src/Card.tsx +2 -2
  255. package/src/CheckBox.tsx +30 -111
  256. package/src/Common.ts +1380 -2059
  257. package/src/CommonIconTypes.ts +2030 -0
  258. package/src/CustomSelectField.tsx +116 -0
  259. package/src/DateTimeActionSheet.tsx +341 -259
  260. package/src/DateTimeField.tsx +168 -61
  261. package/src/DateUtilities.test.ts +6 -2
  262. package/src/DateUtilities.tsx +1 -1
  263. package/src/DecimalRangeActionSheet.tsx +2 -17
  264. package/src/DismissButton.tsx +31 -0
  265. package/src/EmailField.tsx +70 -0
  266. package/src/ErrorPage.tsx +2 -2
  267. package/src/FernsProvider.tsx +1 -1
  268. package/src/Field.tsx +83 -345
  269. package/src/Heading.tsx +44 -16
  270. package/src/HeightActionSheet.tsx +2 -9
  271. package/src/Hyperlink.tsx +8 -1
  272. package/src/Icon.tsx +22 -14
  273. package/src/IconButton.tsx +188 -156
  274. package/src/InfoTooltipButton.tsx +4 -6
  275. package/src/Link.tsx +14 -5
  276. package/src/MobileAddressAutoComplete.tsx +17 -13
  277. package/src/Modal.tsx +214 -190
  278. package/src/MultiselectField.tsx +103 -0
  279. package/src/NumberField.tsx +55 -0
  280. package/src/NumberPickerActionSheet.tsx +1 -4
  281. package/src/OpenAPIContext.tsx +1 -1
  282. package/src/Page.tsx +9 -13
  283. package/src/Pagination.tsx +171 -36
  284. package/src/PasswordField.tsx +7 -0
  285. package/src/PhoneNumberField.tsx +103 -0
  286. package/src/PickerSelect.tsx +169 -151
  287. package/src/Radio.tsx +33 -0
  288. package/src/RadioField.tsx +43 -0
  289. package/src/SegmentedControl.tsx +46 -97
  290. package/src/SelectField.tsx +41 -0
  291. package/src/SideDrawer.tsx +8 -2
  292. package/src/Signature.native.tsx +16 -9
  293. package/src/Signature.tsx +19 -11
  294. package/src/SignatureField.tsx +92 -0
  295. package/src/Spinner.tsx +16 -2
  296. package/src/SplitPage.native.tsx +9 -7
  297. package/src/SplitPage.tsx +11 -12
  298. package/src/TapToEdit.tsx +122 -109
  299. package/src/Text.tsx +79 -69
  300. package/src/TextArea.tsx +2 -2
  301. package/src/TextField.tsx +133 -285
  302. package/src/TextFieldNumberActionSheet.tsx +1 -4
  303. package/src/Theme.tsx +223 -172
  304. package/src/TimezonePicker.tsx +3 -18
  305. package/src/Toast.tsx +193 -70
  306. package/src/Tooltip.tsx +233 -122
  307. package/src/UnifiedAddressAutoComplete.tsx +3 -3
  308. package/src/Unifier.ts +4 -4
  309. package/src/Utilities.tsx +11 -3
  310. package/src/WebAddressAutocomplete.tsx +2 -3
  311. package/src/fieldElements/FieldError.tsx +24 -0
  312. package/src/fieldElements/FieldHelperText.tsx +20 -0
  313. package/src/fieldElements/FieldTitle.tsx +31 -0
  314. package/src/fieldElements/index.tsx +3 -0
  315. package/src/icons/MobileIcon.tsx +41 -0
  316. package/src/icons/OfflineIcon.tsx +38 -0
  317. package/src/icons/OnlineIcon.tsx +40 -0
  318. package/src/icons/OutOfficeIcon.tsx +37 -0
  319. package/src/icons/index.ts +4 -0
  320. package/src/index.tsx +28 -14
  321. package/src/setupTests.ts +1 -0
  322. package/src/{Table.tsx → table/Table.tsx} +24 -14
  323. package/src/table/TableBadge.tsx +46 -0
  324. package/src/table/TableBoolean.tsx +70 -0
  325. package/src/table/TableDate.tsx +38 -0
  326. package/src/{TableHeader.tsx → table/TableHeader.tsx} +3 -3
  327. package/src/table/TableHeaderCell.tsx +93 -0
  328. package/src/table/TableIconButton.tsx +62 -0
  329. package/src/table/TableNumber.tsx +29 -0
  330. package/src/{TableRow.tsx → table/TableRow.tsx} +28 -25
  331. package/src/table/TableText.tsx +29 -0
  332. package/src/table/TableTitle.tsx +32 -0
  333. package/src/{tableContext.tsx → table/tableContext.tsx} +1 -1
  334. package/dist/BlurBox.d.ts +0 -5
  335. package/dist/BlurBox.js +0 -28
  336. package/dist/BlurBox.js.map +0 -1
  337. package/dist/BlurBox.native.d.ts +0 -6
  338. package/dist/BlurBox.native.js +0 -30
  339. package/dist/BlurBox.native.js.map +0 -1
  340. package/dist/CustomSelect.d.ts +0 -3
  341. package/dist/CustomSelect.js +0 -47
  342. package/dist/CustomSelect.js.map +0 -1
  343. package/dist/DateTimeField.android.d.ts +0 -3
  344. package/dist/DateTimeField.android.js +0 -67
  345. package/dist/DateTimeField.android.js.map +0 -1
  346. package/dist/DateTimeField.ios.d.ts +0 -3
  347. package/dist/DateTimeField.ios.js +0 -49
  348. package/dist/DateTimeField.ios.js.map +0 -1
  349. package/dist/FieldWithLabels.d.ts +0 -3
  350. package/dist/FieldWithLabels.js +0 -8
  351. package/dist/FieldWithLabels.js.map +0 -1
  352. package/dist/Form.d.ts +0 -16
  353. package/dist/Form.js +0 -89
  354. package/dist/Form.js.map +0 -1
  355. package/dist/HeaderButtons.d.ts +0 -31
  356. package/dist/HeaderButtons.js +0 -53
  357. package/dist/HeaderButtons.js.map +0 -1
  358. package/dist/Mask.d.ts +0 -2
  359. package/dist/Mask.js +0 -19
  360. package/dist/Mask.js.map +0 -1
  361. package/dist/Pill.d.ts +0 -3
  362. package/dist/Pill.js +0 -8
  363. package/dist/Pill.js.map +0 -1
  364. package/dist/Pog.d.ts +0 -3
  365. package/dist/Pog.js +0 -48
  366. package/dist/Pog.js.map +0 -1
  367. package/dist/ProgressBar.d.ts +0 -3
  368. package/dist/ProgressBar.js +0 -35
  369. package/dist/ProgressBar.js.map +0 -1
  370. package/dist/SelectList.d.ts +0 -27
  371. package/dist/SelectList.js +0 -56
  372. package/dist/SelectList.js.map +0 -1
  373. package/dist/Switch.d.ts +0 -3
  374. package/dist/Switch.js +0 -20
  375. package/dist/Switch.js.map +0 -1
  376. package/dist/Table.js.map +0 -1
  377. package/dist/TableHeader.js.map +0 -1
  378. package/dist/TableHeaderCell.js +0 -36
  379. package/dist/TableHeaderCell.js.map +0 -1
  380. package/dist/TableRow.js +0 -30
  381. package/dist/TableRow.js.map +0 -1
  382. package/dist/WithLabel.d.ts +0 -3
  383. package/dist/WithLabel.js +0 -15
  384. package/dist/WithLabel.js.map +0 -1
  385. package/dist/tableContext.js.map +0 -1
  386. package/src/BlurBox.native.tsx +0 -40
  387. package/src/BlurBox.tsx +0 -31
  388. package/src/CustomSelect.tsx +0 -80
  389. package/src/DateTimeField.android.tsx +0 -103
  390. package/src/DateTimeField.ios.tsx +0 -85
  391. package/src/FieldWithLabels.tsx +0 -36
  392. package/src/Form.tsx +0 -175
  393. package/src/HeaderButtons.tsx +0 -107
  394. package/src/Mask.tsx +0 -21
  395. package/src/Pill.tsx +0 -22
  396. package/src/Pog.tsx +0 -75
  397. package/src/ProgressBar.tsx +0 -47
  398. package/src/SelectList.tsx +0 -109
  399. package/src/Switch.tsx +0 -18
  400. package/src/TableHeaderCell.tsx +0 -72
  401. package/src/WithLabel.tsx +0 -45
  402. /package/dist/{tableContext.js → table/tableContext.js} +0 -0
package/dist/Theme.js CHANGED
@@ -1,113 +1,212 @@
1
- import React, { createContext, useState } from "react";
2
- import { changeColorLuminance } from "./Unifier";
3
- const DEFAULT_FONT = "Cochin";
4
- const DEFAULT_BOLD_FONT = "Cochin";
5
- const darkGray = "#111111";
6
- const lightGray = "#efefef";
7
- const gray = "#8e8e8e";
8
- const white = "#fdfdfd";
9
- const primary = "#5c58bb";
10
- const secondary = "#8d58bb";
11
- const accent = "#58b3bb";
12
- const tertiary = "#b7956f";
1
+ import React, { createContext, useMemo, useState } from "react";
2
+ const defaultPrimitives = {
3
+ neutral000: "#FFFFFF",
4
+ neutral050: "#F2F2F2",
5
+ neutral100: "#E6E6E6",
6
+ neutral200: "#D9D9D9",
7
+ neutral300: "#CDCDCD",
8
+ neutral400: "#B3B3B3",
9
+ neutral500: "#9A9A9A",
10
+ neutral600: "#686868",
11
+ neutral700: "#4E4E4E",
12
+ neutral800: "#353535",
13
+ neutral900: "#1C1C1C",
14
+ primary000: "#EBFAFF",
15
+ primary050: "#BCE9F7",
16
+ primary100: "#90D8F0",
17
+ primary200: "#73CAE8",
18
+ primary300: "#40B8E0",
19
+ primary400: "#0E9DCD",
20
+ primary500: "#0086B3",
21
+ primary600: "#0A7092",
22
+ primary700: "#035D7E",
23
+ primary800: "#004B64",
24
+ primary900: "#013749",
25
+ secondary000: "#F2F9FA",
26
+ secondary050: "#D7E5EA",
27
+ secondary100: "#B6CDD5",
28
+ secondary200: "#9EB7BF",
29
+ secondary300: "#87A1AA",
30
+ secondary400: "#608997",
31
+ secondary500: "#2B6072",
32
+ secondary600: "#1C4E5F",
33
+ secondary700: "#0F3D4D",
34
+ secondary800: "#092E3A",
35
+ secondary900: "#041E27",
36
+ accent000: "#FFFDF7",
37
+ accent050: "#FCECC2",
38
+ accent100: "#F9E0A1",
39
+ accent200: "#F7D582",
40
+ accent300: "#F2CB62",
41
+ accent400: "#E5B132",
42
+ accent500: "#D69C0E",
43
+ accent600: "#B58201",
44
+ accent700: "#956A00",
45
+ accent800: "#543C00",
46
+ accent900: "#332400",
47
+ error000: "#FDD7D7",
48
+ error100: "#D33232",
49
+ error200: "#BD1111",
50
+ warning000: "#FFE3C6",
51
+ warning100: "#F36719",
52
+ warning200: "#B14202",
53
+ success000: "#DCF2E2",
54
+ success100: "#3EA45C",
55
+ success200: "#1A7F36",
56
+ spacing0: 0,
57
+ spacing1: 4,
58
+ spacing2: 8,
59
+ spacing3: 12,
60
+ spacing4: 16,
61
+ spacing5: 24,
62
+ spacing6: 32,
63
+ spacing7: 40,
64
+ spacing8: 48,
65
+ spacing9: 56,
66
+ spacing10: 64,
67
+ spacing11: 72,
68
+ spacing12: 80,
69
+ radiusSm: 2,
70
+ radiusMd: 4,
71
+ radiusLg: 16,
72
+ radiusXl: 32,
73
+ radius2xl: 128,
74
+ radius3xl: 360,
75
+ };
13
76
  const defaultTheme = {
14
- // Primary colors
15
- white,
16
- lightGray,
17
- gray,
18
- darkGray,
19
- // secondary colors
20
- green: "#0fa573",
21
- red: "#bd081c",
22
- springGreen: "#008753",
23
- pine: "#0a6955",
24
- olive: "#364a4c",
25
- blue: "#4a90e2",
26
- navy: "#004b91",
27
- midnight: "#133a5e",
28
- purple: "#b469eb",
29
- orchid: "#8046a5",
30
- eggplant: "#5b2677",
31
- maroon: "#6e0f3c",
32
- watermelon: "#f13535",
33
- orange: "#e3780c",
34
- black: "#000000",
35
- info: "#4a90e2", // blue
36
- error: "#bd081c", // red
37
- warning: "#e3780c", // orange
38
- success: "#008753", // springGreen
39
- neutral: gray,
40
- primaryLighter: changeColorLuminance(primary, "lighter"),
41
- primaryLight: changeColorLuminance(primary, "light"),
42
- primary,
43
- primaryDark: changeColorLuminance(primary, "dark"),
44
- primaryDarker: changeColorLuminance(primary, "darker"),
45
- secondaryLighter: changeColorLuminance(secondary, "lighter"),
46
- secondaryLight: changeColorLuminance(secondary, "light"),
47
- secondary,
48
- secondaryDark: changeColorLuminance(secondary, "dark"),
49
- secondaryDarker: changeColorLuminance(secondary, "darker"),
50
- accentLighter: changeColorLuminance(accent, "lighter"),
51
- accentLight: changeColorLuminance(accent, "light"),
52
- accent,
53
- accentDark: changeColorLuminance(accent, "dark"),
54
- accentDarker: changeColorLuminance(accent, "darker"),
55
- tertiaryLighter: changeColorLuminance(tertiary, "lighter"),
56
- tertiaryLight: changeColorLuminance(tertiary, "light"),
57
- tertiary,
58
- tertiaryDark: changeColorLuminance(tertiary, "dark"),
59
- tertiaryDarker: changeColorLuminance(tertiary, "darker"),
60
- background: white,
61
- backgroundSecondary: lightGray,
62
- textPrimary: darkGray,
63
- textSecondary: lightGray,
64
- textDisabled: gray,
65
- divider: gray,
66
- // From the Atlassian templates
67
- neutral900: "#091E42",
68
- neutral800: "#172B4D",
69
- neutral700: "#253858",
70
- neutral600: "#344563",
71
- neutral500: "#42526E",
72
- neutral400: "#505F79",
73
- neutral300: "#5E6C84",
74
- neutral200: "#6B778C",
75
- neutral100: "#7A869A",
76
- neutral90: "#8993A4",
77
- neutral80: "#97A0AF",
78
- neutral70: "#A5ADBA",
79
- neutral60: "#B3BAC5",
80
- neutral50: "#C1C7D0",
81
- neutral40: "#DFE1E6",
82
- neutral30: "#EBECF0",
83
- neutral20: "#F4F5F7",
84
- neutral10: "#FAFBFC",
85
- primaryFont: DEFAULT_FONT,
86
- primaryBoldFont: DEFAULT_BOLD_FONT,
87
- secondaryFont: DEFAULT_FONT,
88
- secondaryBoldFont: DEFAULT_BOLD_FONT,
89
- accentFont: DEFAULT_FONT,
90
- accentBoldFont: DEFAULT_BOLD_FONT,
91
- buttonFont: DEFAULT_FONT,
92
- titleFont: DEFAULT_FONT,
77
+ text: {
78
+ primary: "neutral900",
79
+ inverted: "neutral000",
80
+ // TODO: ask jo about the naming here, secondaryDark is a blue, secondaryLight is a gray.
81
+ secondaryLight: "neutral600",
82
+ extraLight: "neutral500",
83
+ secondaryDark: "secondary800",
84
+ link: "primary600",
85
+ linkLight: "primary400",
86
+ accent: "accent700",
87
+ error: "error200",
88
+ warning: "warning200",
89
+ success: "success200",
90
+ },
91
+ surface: {
92
+ base: "neutral000",
93
+ primary: "primary400",
94
+ secondaryLight: "secondary100",
95
+ secondaryDark: "secondary500",
96
+ secondaryExtraDark: "secondary800",
97
+ neutral: "neutral600",
98
+ neutralLight: "neutral200",
99
+ neutralDark: "neutral800",
100
+ disabled: "neutral500",
101
+ error: "error200",
102
+ errorLight: "error000",
103
+ success: "success200",
104
+ successLight: "success000",
105
+ warning: "warning100",
106
+ warningLight: "warning000",
107
+ },
108
+ border: {
109
+ default: "neutral300",
110
+ dark: "neutral500",
111
+ activeNeutral: "neutral700",
112
+ activeAccent: "accent500",
113
+ hover: "neutral200",
114
+ focus: "primary200",
115
+ error: "error100",
116
+ success: "success100",
117
+ warning: "warning100",
118
+ },
119
+ status: {
120
+ active: "success100",
121
+ doNotDisturb: "error100",
122
+ away: "neutral500",
123
+ },
124
+ radius: {
125
+ minimal: "radiusSm",
126
+ default: "radiusMd",
127
+ full: "radiusLg",
128
+ rounded: "radius3xl",
129
+ },
130
+ spacing: {
131
+ none: "spacing0",
132
+ xs: "spacing1",
133
+ sm: "spacing2",
134
+ md: "spacing4",
135
+ lg: "spacing5",
136
+ xl: "spacing6",
137
+ "2xl": "spacing8",
138
+ "3xl": "spacing12",
139
+ },
140
+ // These will continue to throw errors until we have a proper font system in place.
141
+ // TODO: currently to use these, you need to set fontFamily to "text" or "heading",
142
+ // not theme.font.primary or theme.font.title.
143
+ font: {
144
+ primary: "Nunito",
145
+ title: "Titillium Web",
146
+ },
147
+ primitives: defaultPrimitives,
93
148
  };
94
149
  export const ThemeContext = createContext({
95
150
  setTheme: (_theme) => { },
96
- theme: defaultTheme,
151
+ setPrimitives: (_primitives) => { },
152
+ theme: {},
97
153
  resetTheme: () => { },
98
154
  });
99
- function setThemeWithLuminances(oldTheme, newTheme) {
100
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11;
101
- return Object.assign(Object.assign(Object.assign({}, oldTheme), newTheme), { primaryLighter: (_a = newTheme.primaryLighter) !== null && _a !== void 0 ? _a : changeColorLuminance((_b = newTheme.primary) !== null && _b !== void 0 ? _b : oldTheme.primary, "lighter"), primaryLight: (_c = newTheme.primaryLight) !== null && _c !== void 0 ? _c : changeColorLuminance((_d = newTheme.primary) !== null && _d !== void 0 ? _d : oldTheme.primary, "light"), primary: (_e = newTheme.primary) !== null && _e !== void 0 ? _e : oldTheme.primary, primaryDark: (_f = newTheme.primaryDark) !== null && _f !== void 0 ? _f : changeColorLuminance((_g = newTheme.primary) !== null && _g !== void 0 ? _g : oldTheme.primary, "dark"), primaryDarker: (_h = newTheme.primaryDarker) !== null && _h !== void 0 ? _h : changeColorLuminance((_j = newTheme.primary) !== null && _j !== void 0 ? _j : oldTheme.primary, "darker"), secondaryLighter: (_k = newTheme.secondaryLighter) !== null && _k !== void 0 ? _k : changeColorLuminance((_l = newTheme.secondary) !== null && _l !== void 0 ? _l : oldTheme.secondary, "lighter"), secondaryLight: (_m = newTheme.secondaryLight) !== null && _m !== void 0 ? _m : changeColorLuminance((_o = newTheme.secondary) !== null && _o !== void 0 ? _o : oldTheme.secondary, "light"), secondary: (_p = newTheme.secondary) !== null && _p !== void 0 ? _p : oldTheme.secondary, secondaryDark: (_q = newTheme.secondaryDark) !== null && _q !== void 0 ? _q : changeColorLuminance((_r = newTheme.secondary) !== null && _r !== void 0 ? _r : oldTheme.secondary, "dark"), secondaryDarker: (_s = newTheme.secondaryDarker) !== null && _s !== void 0 ? _s : changeColorLuminance((_t = newTheme.secondary) !== null && _t !== void 0 ? _t : oldTheme.secondary, "darker"), accentLighter: (_u = newTheme.accentLighter) !== null && _u !== void 0 ? _u : changeColorLuminance((_v = newTheme.accent) !== null && _v !== void 0 ? _v : oldTheme.accent, "lighter"), accentLight: (_w = newTheme.accentLight) !== null && _w !== void 0 ? _w : changeColorLuminance((_x = newTheme.accent) !== null && _x !== void 0 ? _x : oldTheme.accent, "light"), accent: (_y = newTheme.accent) !== null && _y !== void 0 ? _y : oldTheme.accent, accentDark: (_z = newTheme.accentDark) !== null && _z !== void 0 ? _z : changeColorLuminance((_0 = newTheme.accent) !== null && _0 !== void 0 ? _0 : oldTheme.accent, "dark"), accentDarker: (_1 = newTheme.accentDarker) !== null && _1 !== void 0 ? _1 : changeColorLuminance((_2 = newTheme.accent) !== null && _2 !== void 0 ? _2 : oldTheme.accent, "darker"), tertiaryLighter: (_3 = newTheme.tertiaryLighter) !== null && _3 !== void 0 ? _3 : changeColorLuminance((_4 = newTheme.tertiary) !== null && _4 !== void 0 ? _4 : oldTheme.tertiary, "lighter"), tertiaryLight: (_5 = newTheme.tertiaryLight) !== null && _5 !== void 0 ? _5 : changeColorLuminance((_6 = newTheme.tertiary) !== null && _6 !== void 0 ? _6 : oldTheme.tertiary, "light"), tertiary: (_7 = newTheme.tertiary) !== null && _7 !== void 0 ? _7 : oldTheme.tertiary, tertiaryDark: (_8 = newTheme.tertiaryDark) !== null && _8 !== void 0 ? _8 : changeColorLuminance((_9 = newTheme.tertiary) !== null && _9 !== void 0 ? _9 : oldTheme.tertiary, "dark"), tertiaryDarker: (_10 = newTheme.tertiaryDarker) !== null && _10 !== void 0 ? _10 : changeColorLuminance((_11 = newTheme.tertiary) !== null && _11 !== void 0 ? _11 : oldTheme.tertiary, "darker") });
102
- }
103
155
  export const ThemeProvider = ({ children }) => {
104
156
  const [providerTheme, setProviderTheme] = useState(defaultTheme);
157
+ const [providerPrimitives, setProviderPrimitives] = useState(defaultPrimitives);
158
+ const computedTheme = useMemo(() => {
159
+ // Map the providerTheme and transform the strings into the actual values from the primitives.
160
+ // Do this for each sub-object in the theme. E.g. theme.text, theme.surface, etc.
161
+ const theme = Object.keys(providerTheme).reduce((acc, key) => {
162
+ var _a;
163
+ if (key === "primitives")
164
+ return acc;
165
+ const value = (_a = providerTheme[key]) !== null && _a !== void 0 ? _a : {};
166
+ // for each key, map the value to the primitive value.
167
+ acc[key] = Object.keys(value).reduce((accKey, valueKey) => {
168
+ const primitiveKey = value[valueKey];
169
+ if (key === "font") {
170
+ accKey[valueKey] = primitiveKey;
171
+ }
172
+ else {
173
+ if (providerPrimitives[primitiveKey] === undefined) {
174
+ console.error(`Primitive ${primitiveKey} not found in theme.`);
175
+ }
176
+ accKey[valueKey] = providerPrimitives[primitiveKey];
177
+ }
178
+ return accKey;
179
+ }, {});
180
+ return acc;
181
+ }, {});
182
+ return Object.assign(Object.assign({}, theme), { primitives: providerPrimitives });
183
+ }, [providerTheme, providerPrimitives]);
184
+ const setPrimitives = (newPrimitives) => {
185
+ setProviderPrimitives((prev) => (Object.assign(Object.assign({}, prev), newPrimitives)));
186
+ };
105
187
  const setTheme = (newTheme) => {
106
- setProviderTheme(setThemeWithLuminances(providerTheme, newTheme));
188
+ setProviderTheme((prev) => {
189
+ const mergedTheme = Object.assign({}, prev);
190
+ for (const key in newTheme) {
191
+ if (newTheme.hasOwnProperty(key)) {
192
+ const newSubTheme = newTheme[key];
193
+ const prevSubTheme = prev[key];
194
+ if (newSubTheme && typeof newSubTheme === "object") {
195
+ mergedTheme[key] = Object.assign(Object.assign({}, prevSubTheme), newSubTheme);
196
+ }
197
+ else {
198
+ mergedTheme[key] = newSubTheme;
199
+ }
200
+ }
201
+ }
202
+ return mergedTheme;
203
+ });
107
204
  };
108
205
  const resetTheme = () => {
109
206
  setProviderTheme(defaultTheme);
207
+ setProviderPrimitives(defaultPrimitives);
110
208
  };
111
- return (React.createElement(ThemeContext.Provider, { value: { theme: providerTheme, setTheme, resetTheme } }, children));
209
+ return (React.createElement(ThemeContext.Provider, { value: { theme: computedTheme, setTheme, setPrimitives, resetTheme } }, children));
112
210
  };
211
+ export const useTheme = () => React.useContext(ThemeContext);
113
212
  //# sourceMappingURL=Theme.js.map
package/dist/Theme.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Theme.js","sourceRoot":"","sources":["../src/Theme.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Theme.js","sourceRoot":"","sources":["../src/Theme.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import React from "react";
2
2
  import { Box } from "./Box";
3
- import { SelectList } from "./SelectList";
4
- import { WithLabel } from "./WithLabel";
3
+ import { SelectField } from "./SelectField";
5
4
  // TODO: Support world wide timezones
6
5
  const options = [
7
6
  { label: "Eastern", value: "America/New_York" },
@@ -15,12 +14,11 @@ const options = [
15
14
  export const TimezonePicker = ({ timezone, onChange, showLabel, width = 100, }) => {
16
15
  if (showLabel) {
17
16
  return (React.createElement(Box, { maxWidth: width },
18
- React.createElement(WithLabel, { label: "Timezone" },
19
- React.createElement(SelectList, { allowClear: true, options: options, style: { minHeight: 40 }, value: timezone, onChange: onChange }))));
17
+ React.createElement(SelectField, { options: options, title: "Timezone", value: timezone, onChange: onChange })));
20
18
  }
21
19
  else {
22
20
  return (React.createElement(Box, { maxWidth: width },
23
- React.createElement(SelectList, { allowClear: true, options: options, style: { minHeight: 40 }, value: timezone, onChange: onChange })));
21
+ React.createElement(SelectField, { options: options, value: timezone, onChange: onChange })));
24
22
  }
25
23
  };
26
24
  //# sourceMappingURL=TimezonePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimezonePicker.js","sourceRoot":"","sources":["../src/TimezonePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAEtC,qCAAqC;AACrC,MAAM,OAAO,GAAG;IACd,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAC;IAC7C,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAC;IAC5C,EAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAC;IAC5C,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,qBAAqB,EAAC;IAChD,EAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAC;IAC7C,EAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAC;IAC5C,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAC;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,KAAK,GAAG,GAAG,GACS,EAAsB,EAAE;IAC5C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,oBAAC,GAAG,IAAC,QAAQ,EAAE,KAAK;YAClB,oBAAC,SAAS,IAAC,KAAK,EAAC,UAAU;gBACzB,oBAAC,UAAU,IACT,UAAU,QACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,EAAC,SAAS,EAAE,EAAE,EAAC,EACtB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,QAAQ,GAClB,CACQ,CACR,CACP,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CACL,oBAAC,GAAG,IAAC,QAAQ,EAAE,KAAK;YAClB,oBAAC,UAAU,IACT,UAAU,QACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,EAAC,SAAS,EAAE,EAAE,EAAC,EACtB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,QAAQ,GAClB,CACE,CACP,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"TimezonePicker.js","sourceRoot":"","sources":["../src/TimezonePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAE1C,qCAAqC;AACrC,MAAM,OAAO,GAAG;IACd,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAC;IAC7C,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAC;IAC5C,EAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAC;IAC5C,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,qBAAqB,EAAC;IAChD,EAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAC;IAC7C,EAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAC;IAC5C,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAC;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,KAAK,GAAG,GAAG,GACS,EAAsB,EAAE;IAC5C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,oBAAC,GAAG,IAAC,QAAQ,EAAE,KAAK;YAClB,oBAAC,WAAW,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,CACnF,CACP,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CACL,oBAAC,GAAG,IAAC,QAAQ,EAAE,KAAK;YAClB,oBAAC,WAAW,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAClE,CACP,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
package/dist/Toast.d.ts CHANGED
@@ -1,10 +1,23 @@
1
1
  import React from "react";
2
2
  import { ToastProps } from "./Common";
3
+ type UseToastVariantOptions = {
4
+ persistent?: ToastProps["persistent"];
5
+ secondary?: ToastProps["secondary"];
6
+ size?: ToastProps["size"];
7
+ onDismiss?: ToastProps["onDismiss"];
8
+ subtitle?: ToastProps["subtitle"];
9
+ };
10
+ type UseToastOptions = {
11
+ variant?: ToastProps["variant"];
12
+ } & UseToastVariantOptions;
3
13
  export declare function useToast(): {
4
- warn: (text: string, options?: Omit<ToastProps["data"], "variant">) => string;
5
14
  hide: (id: string) => void;
6
- show: (text: string, options?: ToastProps["data"]) => string;
7
- catch: (error: any, message?: string, options?: Omit<ToastProps["data"], "variant">) => void;
8
- error: (text: string, options?: Omit<ToastProps["data"], "variant">) => string;
15
+ success: (title: string, options?: UseToastVariantOptions) => string;
16
+ info: (title: string, options?: UseToastVariantOptions) => string;
17
+ warn: (title: string, options?: UseToastVariantOptions) => string;
18
+ error: (title: string, options?: UseToastVariantOptions) => string;
19
+ show: (title: string, options?: UseToastOptions) => string;
20
+ catch: (error: any, message?: string, options?: UseToastVariantOptions) => void;
9
21
  };
10
- export declare const Toast: ({ message, data }: ToastProps) => React.ReactElement;
22
+ export declare const Toast: ({ title, variant, secondary, size, onDismiss, persistent, subtitle, }: ToastProps) => React.ReactElement;
23
+ export {};
package/dist/Toast.js CHANGED
@@ -1,31 +1,39 @@
1
1
  import React from "react";
2
- import { Dimensions } from "react-native";
2
+ import { Platform, Pressable, View } from "react-native";
3
3
  import { useToast as useRNToast } from "react-native-toast-notifications";
4
- import { Box } from "./Box";
5
- import { Button } from "./Button";
4
+ import { Heading } from "./Heading";
6
5
  import { Icon } from "./Icon";
7
- import { IconButton } from "./IconButton";
8
6
  import { Text } from "./Text";
7
+ import { useTheme } from "./Theme";
9
8
  import { isAPIError, printAPIError } from "./Utilities";
10
9
  const TOAST_DURATION_MS = 3 * 1000;
11
10
  export function useToast() {
12
11
  const toast = useRNToast();
13
- const show = (text, options) => {
14
- return toast.show(text, {
15
- data: options,
12
+ const show = (title, options) => {
13
+ const toastData = Object.assign(Object.assign({ variant: "info" }, options), { title });
14
+ return toast.show(title, {
15
+ data: toastData,
16
16
  // a duration of 0 keeps the toast up infinitely until hidden
17
17
  duration: (options === null || options === void 0 ? void 0 : options.persistent) ? 0 : TOAST_DURATION_MS,
18
18
  });
19
19
  };
20
20
  return {
21
21
  show,
22
- warn: (text, options) => {
23
- console.warn(text);
24
- return show(text, Object.assign(Object.assign({}, options), { variant: "warning" }));
22
+ warn: (title, options) => {
23
+ console.warn(title);
24
+ return show(title, Object.assign(Object.assign({}, options), { variant: "warning" }));
25
25
  },
26
- error: (text, options) => {
27
- console.error(text);
28
- return show(text, Object.assign(Object.assign({}, options), { variant: "error" }));
26
+ error: (title, options) => {
27
+ console.error(title);
28
+ return show(title, Object.assign(Object.assign({}, options), { variant: "error" }));
29
+ },
30
+ success: (title, options) => {
31
+ console.info(title);
32
+ return show(title, Object.assign(Object.assign({}, options), { variant: "success" }));
33
+ },
34
+ info: (title, options) => {
35
+ console.info(title);
36
+ return show(title, Object.assign(Object.assign({}, options), { variant: "info" }));
29
37
  },
30
38
  hide: (id) => toast.hide(id),
31
39
  catch: (error, message, options) => {
@@ -44,24 +52,115 @@ export function useToast() {
44
52
  },
45
53
  };
46
54
  }
47
- export const Toast = ({ message, data }) => {
48
- // margin 8 on either side, times the standard 4px we multiply by.
49
- const width = Math.min(Dimensions.get("window").width - 16 * 4, 712);
50
- const { variant, buttonText, buttonOnClick, persistent, onDismiss } = data !== null && data !== void 0 ? data : {};
51
- let color = "darkGray";
52
- if (variant === "warning" || variant === "error") {
53
- color = variant;
55
+ // TODO: Support secondary version of Toast.
56
+ // TODO: Support dismissible version of Toast. Currently only persistent are dismissible.
57
+ // This may require a different library from react-native-toast-notifications.
58
+ export const Toast = ({ title, variant = "info", secondary, size = "sm", onDismiss, persistent,
59
+ // TODO enforce these should only show if size is "lg" with type discrinimation
60
+ subtitle, }) => {
61
+ const { theme } = useTheme();
62
+ let color;
63
+ let textColor;
64
+ let iconName;
65
+ if (secondary) {
66
+ throw new Error("Secondary not supported yet");
67
+ }
68
+ if (!persistent && !onDismiss) {
69
+ console.warn("Toast is not persistent but no onDismiss callback provided");
70
+ }
71
+ if (variant === "warning") {
72
+ color = "warning";
73
+ textColor = "inverted";
74
+ iconName = "triangle-exclamation";
75
+ }
76
+ else if (variant === "error") {
77
+ color = "error";
78
+ textColor = "inverted";
79
+ iconName = "circle-exclamation";
80
+ }
81
+ else if (variant === "success") {
82
+ color = "success";
83
+ textColor = "inverted";
84
+ iconName = "circle-check";
85
+ }
86
+ else {
87
+ color = "neutralDark";
88
+ textColor = "inverted";
89
+ iconName = "circle-info";
54
90
  }
55
- return (React.createElement(Box, { alignItems: "center", color: color, direction: "row", flex: "shrink", marginBottom: 4, marginLeft: 8, marginRight: 8, maxWidth: width, padding: 2, paddingX: 4, paddingY: 3, rounding: 4 },
56
- Boolean(variant === "error") && (React.createElement(Box, { marginRight: 4 },
57
- React.createElement(Icon, { color: "white", name: "exclamation-circle", size: "lg" }))),
58
- Boolean(variant === "warning") && (React.createElement(Box, { marginRight: 4 },
59
- React.createElement(Icon, { color: "white", name: "exclamation-triangle", size: "lg" }))),
60
- React.createElement(Box, { alignItems: "center", direction: "column", flex: "shrink", justifyContent: "center" },
61
- React.createElement(Text, { color: "white", size: "lg", weight: "bold" }, message)),
62
- Boolean(buttonOnClick && buttonText) && (React.createElement(Box, { alignItems: "center", justifyContent: "center", marginLeft: 4 },
63
- React.createElement(Button, { color: "lightGray", shape: "pill", text: buttonText, onClick: buttonOnClick }))),
64
- Boolean(onDismiss && persistent) && (React.createElement(Box, { alignItems: "center", justifyContent: "center", marginLeft: 4 },
65
- React.createElement(IconButton, { accessibilityLabel: "Dismiss notification", icon: "times", iconColor: "white", onClick: onDismiss })))));
91
+ return (React.createElement(View, { style: {
92
+ display: "flex",
93
+ flexDirection: "row",
94
+ justifyContent: "center",
95
+ width: "100%",
96
+ paddingLeft: Platform.OS === "web" ? "10%" : theme.spacing.sm,
97
+ paddingRight: Platform.OS === "web" ? "10%" : theme.spacing.sm,
98
+ marginTop: theme.spacing.sm,
99
+ maxWidth: Platform.OS === "web" ? 900 : "100%",
100
+ flexGrow: 1,
101
+ } },
102
+ React.createElement(View, { style: {
103
+ display: "flex",
104
+ flexShrink: 1,
105
+ flexDirection: "row",
106
+ minWidth: 150,
107
+ paddingTop: theme.spacing.xs,
108
+ paddingBottom: theme.spacing.xs,
109
+ paddingRight: theme.spacing.sm,
110
+ alignItems: "center",
111
+ gap: 10,
112
+ borderRadius: theme.radius.default,
113
+ backgroundColor: theme.surface[color],
114
+ alignSelf: "flex-start",
115
+ minHeight: size === "lg" ? 32 : undefined,
116
+ maxWidth: "100%", // Ensure the content does not overflow
117
+ } },
118
+ React.createElement(View, { style: {
119
+ paddingLeft: 8,
120
+ paddingRight: 8,
121
+ display: "flex",
122
+ flexDirection: "row",
123
+ alignItems: "center",
124
+ gap: 12,
125
+ maxWidth: "100%",
126
+ flexShrink: 1, // Ensure the content can shrink properly
127
+ flexGrow: 1,
128
+ } },
129
+ React.createElement(View, { style: {
130
+ display: "flex",
131
+ flexDirection: "row",
132
+ paddingTop: size === "lg" ? 8 : 0,
133
+ paddingBottom: size === "lg" ? 8 : 0,
134
+ paddingLeft: size === "lg" ? 4 : 0,
135
+ paddingRight: size === "lg" ? 4 : 0,
136
+ alignItems: size === "lg" ? "center" : undefined,
137
+ alignSelf: size === "lg" ? "stretch" : undefined,
138
+ borderTopLeftRadius: theme.radius.default,
139
+ borderBottomLeftRadius: theme.radius.default,
140
+ } },
141
+ React.createElement(Icon, { color: textColor, iconName: iconName, size: size === "lg" ? "2xl" : "md" })),
142
+ React.createElement(View, { style: {
143
+ display: "flex",
144
+ paddingTop: 8,
145
+ paddingBottom: 8,
146
+ flexDirection: "column",
147
+ justifyContent: "center",
148
+ alignItems: "flex-start",
149
+ gap: 2,
150
+ alignSelf: "stretch",
151
+ flexWrap: "wrap",
152
+ flexShrink: 1, // Ensure the content can shrink properly
153
+ } },
154
+ Boolean(size === "lg") ? (React.createElement(Heading, { color: textColor, size: "sm" }, title)) : (React.createElement(Text, { bold: true, color: textColor, size: "md" }, title)),
155
+ Boolean(size === "lg" && subtitle) && (React.createElement(Text, { color: textColor, size: "sm" }, subtitle)))),
156
+ Boolean(persistent && onDismiss) && (React.createElement(Pressable, { accessibilityRole: "button", style: {
157
+ display: "flex",
158
+ alignItems: "center",
159
+ alignSelf: "center",
160
+ gap: 12,
161
+ marginLeft: 10,
162
+ padding: size === "lg" ? 8 : 0,
163
+ }, onPress: onDismiss },
164
+ React.createElement(Icon, { color: textColor, iconName: "xmark" }))))));
66
165
  };
67
166
  //# sourceMappingURL=Toast.js.map