@terreno/ui 0.0.1

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 (446) hide show
  1. package/LICENSE +203 -0
  2. package/README.md +160 -0
  3. package/dist/Accordion.d.ts +3 -0
  4. package/dist/Accordion.js +30 -0
  5. package/dist/Accordion.js.map +1 -0
  6. package/dist/ActionSheet.d.ts +169 -0
  7. package/dist/ActionSheet.js +637 -0
  8. package/dist/ActionSheet.js.map +1 -0
  9. package/dist/AddressField.d.ts +3 -0
  10. package/dist/AddressField.js +18 -0
  11. package/dist/AddressField.js.map +1 -0
  12. package/dist/Avatar.d.ts +3 -0
  13. package/dist/Avatar.js +189 -0
  14. package/dist/Avatar.js.map +1 -0
  15. package/dist/Badge.d.ts +3 -0
  16. package/dist/Badge.js +100 -0
  17. package/dist/Badge.js.map +1 -0
  18. package/dist/Banner.d.ts +4 -0
  19. package/dist/Banner.js +103 -0
  20. package/dist/Banner.js.map +1 -0
  21. package/dist/Body.d.ts +3 -0
  22. package/dist/Body.js +17 -0
  23. package/dist/Body.js.map +1 -0
  24. package/dist/BooleanField.d.ts +3 -0
  25. package/dist/BooleanField.js +89 -0
  26. package/dist/BooleanField.js.map +1 -0
  27. package/dist/Box.d.ts +3 -0
  28. package/dist/Box.js +289 -0
  29. package/dist/Box.js.map +1 -0
  30. package/dist/Button.d.ts +3 -0
  31. package/dist/Button.js +105 -0
  32. package/dist/Button.js.map +1 -0
  33. package/dist/Card.d.ts +2 -0
  34. package/dist/Card.js +18 -0
  35. package/dist/Card.js.map +1 -0
  36. package/dist/CheckBox.d.ts +3 -0
  37. package/dist/CheckBox.js +28 -0
  38. package/dist/CheckBox.js.map +1 -0
  39. package/dist/Common.d.ts +2325 -0
  40. package/dist/Common.js +47 -0
  41. package/dist/Common.js.map +1 -0
  42. package/dist/CommonIconTypes.d.ts +3 -0
  43. package/dist/CommonIconTypes.js +2 -0
  44. package/dist/CommonIconTypes.js.map +1 -0
  45. package/dist/Constants.d.ts +12685 -0
  46. package/dist/Constants.js +3310 -0
  47. package/dist/Constants.js.map +1 -0
  48. package/dist/CustomSelectField.d.ts +3 -0
  49. package/dist/CustomSelectField.js +59 -0
  50. package/dist/CustomSelectField.js.map +1 -0
  51. package/dist/DataTable.d.ts +3 -0
  52. package/dist/DataTable.js +190 -0
  53. package/dist/DataTable.js.map +1 -0
  54. package/dist/DateTimeActionSheet.d.ts +2 -0
  55. package/dist/DateTimeActionSheet.js +270 -0
  56. package/dist/DateTimeActionSheet.js.map +1 -0
  57. package/dist/DateTimeField.d.ts +3 -0
  58. package/dist/DateTimeField.js +514 -0
  59. package/dist/DateTimeField.js.map +1 -0
  60. package/dist/DateUtilities.d.ts +57 -0
  61. package/dist/DateUtilities.js +308 -0
  62. package/dist/DateUtilities.js.map +1 -0
  63. package/dist/DecimalRangeActionSheet.d.ts +6 -0
  64. package/dist/DecimalRangeActionSheet.js +45 -0
  65. package/dist/DecimalRangeActionSheet.js.map +1 -0
  66. package/dist/DismissButton.d.ts +3 -0
  67. package/dist/DismissButton.js +12 -0
  68. package/dist/DismissButton.js.map +1 -0
  69. package/dist/EmailField.d.ts +3 -0
  70. package/dist/EmailField.js +48 -0
  71. package/dist/EmailField.js.map +1 -0
  72. package/dist/EmojiSelector.d.ts +113 -0
  73. package/dist/EmojiSelector.js +322 -0
  74. package/dist/EmojiSelector.js.map +1 -0
  75. package/dist/ErrorBoundary.d.ts +19 -0
  76. package/dist/ErrorBoundary.js +30 -0
  77. package/dist/ErrorBoundary.js.map +1 -0
  78. package/dist/ErrorPage.d.ts +6 -0
  79. package/dist/ErrorPage.js +15 -0
  80. package/dist/ErrorPage.js.map +1 -0
  81. package/dist/Field.d.ts +3 -0
  82. package/dist/Field.js +80 -0
  83. package/dist/Field.js.map +1 -0
  84. package/dist/FlatList.d.ts +2 -0
  85. package/dist/FlatList.js +3 -0
  86. package/dist/FlatList.js.map +1 -0
  87. package/dist/Heading.d.ts +3 -0
  88. package/dist/Heading.js +43 -0
  89. package/dist/Heading.js.map +1 -0
  90. package/dist/HeightActionSheet.d.ts +11 -0
  91. package/dist/HeightActionSheet.js +46 -0
  92. package/dist/HeightActionSheet.js.map +1 -0
  93. package/dist/Hyperlink.d.ts +30 -0
  94. package/dist/Hyperlink.js +144 -0
  95. package/dist/Hyperlink.js.map +1 -0
  96. package/dist/Icon.d.ts +3 -0
  97. package/dist/Icon.js +15 -0
  98. package/dist/Icon.js.map +1 -0
  99. package/dist/IconButton.d.ts +3 -0
  100. package/dist/IconButton.js +111 -0
  101. package/dist/IconButton.js.map +1 -0
  102. package/dist/Image.d.ts +8 -0
  103. package/dist/Image.js +37 -0
  104. package/dist/Image.js.map +1 -0
  105. package/dist/ImageBackground.d.ts +10 -0
  106. package/dist/ImageBackground.js +9 -0
  107. package/dist/ImageBackground.js.map +1 -0
  108. package/dist/InfoModalIcon.d.ts +3 -0
  109. package/dist/InfoModalIcon.js +10 -0
  110. package/dist/InfoModalIcon.js.map +1 -0
  111. package/dist/InfoTooltipButton.d.ts +3 -0
  112. package/dist/InfoTooltipButton.js +6 -0
  113. package/dist/InfoTooltipButton.js.map +1 -0
  114. package/dist/Link.d.ts +3 -0
  115. package/dist/Link.js +10 -0
  116. package/dist/Link.js.map +1 -0
  117. package/dist/MarkdownView.d.ts +5 -0
  118. package/dist/MarkdownView.js +44 -0
  119. package/dist/MarkdownView.js.map +1 -0
  120. package/dist/MediaQuery.d.ts +4 -0
  121. package/dist/MediaQuery.js +52 -0
  122. package/dist/MediaQuery.js.map +1 -0
  123. package/dist/MobileAddressAutoComplete.d.ts +2 -0
  124. package/dist/MobileAddressAutoComplete.js +54 -0
  125. package/dist/MobileAddressAutoComplete.js.map +1 -0
  126. package/dist/Modal.d.ts +3 -0
  127. package/dist/Modal.js +127 -0
  128. package/dist/Modal.js.map +1 -0
  129. package/dist/ModalSheet.d.ts +6 -0
  130. package/dist/ModalSheet.js +42 -0
  131. package/dist/ModalSheet.js.map +1 -0
  132. package/dist/MultiselectField.d.ts +3 -0
  133. package/dist/MultiselectField.js +45 -0
  134. package/dist/MultiselectField.js.map +1 -0
  135. package/dist/NumberField.d.ts +3 -0
  136. package/dist/NumberField.js +60 -0
  137. package/dist/NumberField.js.map +1 -0
  138. package/dist/NumberPickerActionSheet.d.ts +7 -0
  139. package/dist/NumberPickerActionSheet.js +22 -0
  140. package/dist/NumberPickerActionSheet.js.map +1 -0
  141. package/dist/OpenAPIContext.d.ts +4 -0
  142. package/dist/OpenAPIContext.js +53 -0
  143. package/dist/OpenAPIContext.js.map +1 -0
  144. package/dist/Page.d.ts +7 -0
  145. package/dist/Page.js +24 -0
  146. package/dist/Page.js.map +1 -0
  147. package/dist/Pagination.d.ts +3 -0
  148. package/dist/Pagination.js +106 -0
  149. package/dist/Pagination.js.map +1 -0
  150. package/dist/PasswordField.d.ts +2 -0
  151. package/dist/PasswordField.js +6 -0
  152. package/dist/PasswordField.js.map +1 -0
  153. package/dist/Permissions.d.ts +2 -0
  154. package/dist/Permissions.js +35 -0
  155. package/dist/Permissions.js.map +1 -0
  156. package/dist/PhoneNumberField.d.ts +3 -0
  157. package/dist/PhoneNumberField.js +83 -0
  158. package/dist/PhoneNumberField.js.map +1 -0
  159. package/dist/PickerSelect.d.ts +46 -0
  160. package/dist/PickerSelect.js +306 -0
  161. package/dist/PickerSelect.js.map +1 -0
  162. package/dist/Radio.d.ts +3 -0
  163. package/dist/Radio.js +21 -0
  164. package/dist/Radio.js.map +1 -0
  165. package/dist/RadioField.d.ts +3 -0
  166. package/dist/RadioField.js +16 -0
  167. package/dist/RadioField.js.map +1 -0
  168. package/dist/ScrollView.d.ts +2 -0
  169. package/dist/ScrollView.js +3 -0
  170. package/dist/ScrollView.js.map +1 -0
  171. package/dist/SectionDivider.d.ts +2 -0
  172. package/dist/SectionDivider.js +12 -0
  173. package/dist/SectionDivider.js.map +1 -0
  174. package/dist/SegmentedControl.d.ts +3 -0
  175. package/dist/SegmentedControl.js +65 -0
  176. package/dist/SegmentedControl.js.map +1 -0
  177. package/dist/SelectBadge.d.ts +3 -0
  178. package/dist/SelectBadge.js +166 -0
  179. package/dist/SelectBadge.js.map +1 -0
  180. package/dist/SelectField.d.ts +3 -0
  181. package/dist/SelectField.js +16 -0
  182. package/dist/SelectField.js.map +1 -0
  183. package/dist/SideDrawer.d.ts +3 -0
  184. package/dist/SideDrawer.js +32 -0
  185. package/dist/SideDrawer.js.map +1 -0
  186. package/dist/Signature.d.ts +8 -0
  187. package/dist/Signature.js +21 -0
  188. package/dist/Signature.js.map +1 -0
  189. package/dist/Signature.native.d.ts +8 -0
  190. package/dist/Signature.native.js +26 -0
  191. package/dist/Signature.native.js.map +1 -0
  192. package/dist/SignatureField.d.ts +3 -0
  193. package/dist/SignatureField.js +42 -0
  194. package/dist/SignatureField.js.map +1 -0
  195. package/dist/Slider.d.ts +3 -0
  196. package/dist/Slider.js +78 -0
  197. package/dist/Slider.js.map +1 -0
  198. package/dist/Spinner.d.ts +3 -0
  199. package/dist/Spinner.js +33 -0
  200. package/dist/Spinner.js.map +1 -0
  201. package/dist/SplitPage.d.ts +2 -0
  202. package/dist/SplitPage.js +139 -0
  203. package/dist/SplitPage.js.map +1 -0
  204. package/dist/SplitPage.native.d.ts +2 -0
  205. package/dist/SplitPage.native.js +75 -0
  206. package/dist/SplitPage.native.js.map +1 -0
  207. package/dist/TapToEdit.d.ts +4 -0
  208. package/dist/TapToEdit.js +170 -0
  209. package/dist/TapToEdit.js.map +1 -0
  210. package/dist/TerrenoProvider.d.ts +6 -0
  211. package/dist/TerrenoProvider.js +10 -0
  212. package/dist/TerrenoProvider.js.map +1 -0
  213. package/dist/Text.d.ts +3 -0
  214. package/dist/Text.js +95 -0
  215. package/dist/Text.js.map +1 -0
  216. package/dist/TextArea.d.ts +3 -0
  217. package/dist/TextArea.js +6 -0
  218. package/dist/TextArea.js.map +1 -0
  219. package/dist/TextField.d.ts +3 -0
  220. package/dist/TextField.js +144 -0
  221. package/dist/TextField.js.map +1 -0
  222. package/dist/TextFieldNumberActionSheet.d.ts +7 -0
  223. package/dist/TextFieldNumberActionSheet.js +20 -0
  224. package/dist/TextFieldNumberActionSheet.js.map +1 -0
  225. package/dist/Theme.d.ts +96 -0
  226. package/dist/Theme.js +213 -0
  227. package/dist/Theme.js.map +1 -0
  228. package/dist/TimezonePicker.d.ts +11 -0
  229. package/dist/TimezonePicker.js +27 -0
  230. package/dist/TimezonePicker.js.map +1 -0
  231. package/dist/Toast.d.ts +23 -0
  232. package/dist/Toast.js +157 -0
  233. package/dist/Toast.js.map +1 -0
  234. package/dist/Tooltip.d.ts +3 -0
  235. package/dist/Tooltip.js +289 -0
  236. package/dist/Tooltip.js.map +1 -0
  237. package/dist/UnifiedAddressAutoComplete.d.ts +2 -0
  238. package/dist/UnifiedAddressAutoComplete.js +23 -0
  239. package/dist/UnifiedAddressAutoComplete.js.map +1 -0
  240. package/dist/Unifier.d.ts +43 -0
  241. package/dist/Unifier.js +154 -0
  242. package/dist/Unifier.js.map +1 -0
  243. package/dist/Utilities.d.ts +56 -0
  244. package/dist/Utilities.js +193 -0
  245. package/dist/Utilities.js.map +1 -0
  246. package/dist/WebAddressAutocomplete.d.ts +3 -0
  247. package/dist/WebAddressAutocomplete.js +61 -0
  248. package/dist/WebAddressAutocomplete.js.map +1 -0
  249. package/dist/fieldElements/FieldError.d.ts +6 -0
  250. package/dist/fieldElements/FieldError.js +9 -0
  251. package/dist/fieldElements/FieldError.js.map +1 -0
  252. package/dist/fieldElements/FieldHelperText.d.ts +6 -0
  253. package/dist/fieldElements/FieldHelperText.js +8 -0
  254. package/dist/fieldElements/FieldHelperText.js.map +1 -0
  255. package/dist/fieldElements/FieldTitle.d.ts +6 -0
  256. package/dist/fieldElements/FieldTitle.js +16 -0
  257. package/dist/fieldElements/FieldTitle.js.map +1 -0
  258. package/dist/fieldElements/index.d.ts +3 -0
  259. package/dist/fieldElements/index.js +4 -0
  260. package/dist/fieldElements/index.js.map +1 -0
  261. package/dist/icons/MobileIcon.d.ts +2 -0
  262. package/dist/icons/MobileIcon.js +18 -0
  263. package/dist/icons/MobileIcon.js.map +1 -0
  264. package/dist/icons/OfflineIcon.d.ts +2 -0
  265. package/dist/icons/OfflineIcon.js +18 -0
  266. package/dist/icons/OfflineIcon.js.map +1 -0
  267. package/dist/icons/OnlineIcon.d.ts +2 -0
  268. package/dist/icons/OnlineIcon.js +19 -0
  269. package/dist/icons/OnlineIcon.js.map +1 -0
  270. package/dist/icons/OutOfficeIcon.d.ts +2 -0
  271. package/dist/icons/OutOfficeIcon.js +18 -0
  272. package/dist/icons/OutOfficeIcon.js.map +1 -0
  273. package/dist/icons/index.d.ts +4 -0
  274. package/dist/icons/index.js +5 -0
  275. package/dist/icons/index.js.map +1 -0
  276. package/dist/index.d.ts +1328 -0
  277. package/dist/index.js +89 -0
  278. package/dist/index.js.map +1 -0
  279. package/dist/table/Table.d.ts +3 -0
  280. package/dist/table/Table.js +53 -0
  281. package/dist/table/Table.js.map +1 -0
  282. package/dist/table/TableBadge.d.ts +6 -0
  283. package/dist/table/TableBadge.js +23 -0
  284. package/dist/table/TableBadge.js.map +1 -0
  285. package/dist/table/TableBoolean.d.ts +6 -0
  286. package/dist/table/TableBoolean.js +37 -0
  287. package/dist/table/TableBoolean.js.map +1 -0
  288. package/dist/table/TableDate.d.ts +3 -0
  289. package/dist/table/TableDate.js +27 -0
  290. package/dist/table/TableDate.js.map +1 -0
  291. package/dist/table/TableHeader.d.ts +6 -0
  292. package/dist/table/TableHeader.js +10 -0
  293. package/dist/table/TableHeader.js.map +1 -0
  294. package/dist/table/TableHeaderCell.d.ts +6 -0
  295. package/dist/table/TableHeaderCell.js +54 -0
  296. package/dist/table/TableHeaderCell.js.map +1 -0
  297. package/dist/table/TableIconButton.d.ts +3 -0
  298. package/dist/table/TableIconButton.js +39 -0
  299. package/dist/table/TableIconButton.js.map +1 -0
  300. package/dist/table/TableNumber.d.ts +3 -0
  301. package/dist/table/TableNumber.js +18 -0
  302. package/dist/table/TableNumber.js.map +1 -0
  303. package/dist/table/TableRow.d.ts +6 -0
  304. package/dist/table/TableRow.js +22 -0
  305. package/dist/table/TableRow.js.map +1 -0
  306. package/dist/table/TableText.d.ts +3 -0
  307. package/dist/table/TableText.js +18 -0
  308. package/dist/table/TableText.js.map +1 -0
  309. package/dist/table/TableTitle.d.ts +3 -0
  310. package/dist/table/TableTitle.js +21 -0
  311. package/dist/table/TableTitle.js.map +1 -0
  312. package/dist/table/tableContext.d.ts +5 -0
  313. package/dist/table/tableContext.js +38 -0
  314. package/dist/table/tableContext.js.map +1 -0
  315. package/dist/useStoredState.d.ts +1 -0
  316. package/dist/useStoredState.js +49 -0
  317. package/dist/useStoredState.js.map +1 -0
  318. package/package.json +123 -0
  319. package/src/Accordion.test.tsx +104 -0
  320. package/src/Accordion.tsx +81 -0
  321. package/src/ActionSheet.tsx +881 -0
  322. package/src/AddressField.test.tsx +120 -0
  323. package/src/AddressField.tsx +122 -0
  324. package/src/Avatar.test.tsx +163 -0
  325. package/src/Avatar.tsx +298 -0
  326. package/src/Badge.test.tsx +116 -0
  327. package/src/Badge.tsx +136 -0
  328. package/src/Banner.tsx +200 -0
  329. package/src/Body.tsx +34 -0
  330. package/src/BooleanField.tsx +141 -0
  331. package/src/Box.test.tsx +662 -0
  332. package/src/Box.tsx +368 -0
  333. package/src/Button.tsx +196 -0
  334. package/src/Card.tsx +19 -0
  335. package/src/CheckBox.tsx +45 -0
  336. package/src/Common.ts +2787 -0
  337. package/src/CommonIconTypes.ts +2030 -0
  338. package/src/Constants.ts +3311 -0
  339. package/src/CustomSelectField.tsx +115 -0
  340. package/src/DataTable.tsx +674 -0
  341. package/src/DateTimeActionSheet.tsx +559 -0
  342. package/src/DateTimeField.test.tsx +393 -0
  343. package/src/DateTimeField.tsx +777 -0
  344. package/src/DateUtilities.test.ts +440 -0
  345. package/src/DateUtilities.tsx +370 -0
  346. package/src/DecimalRangeActionSheet.tsx +85 -0
  347. package/src/DismissButton.tsx +31 -0
  348. package/src/EmailField.tsx +66 -0
  349. package/src/EmojiSelector.test.tsx +61 -0
  350. package/src/EmojiSelector.tsx +510 -0
  351. package/src/ErrorBoundary.tsx +37 -0
  352. package/src/ErrorPage.tsx +41 -0
  353. package/src/Field.tsx +101 -0
  354. package/src/FlatList.tsx +2 -0
  355. package/src/Heading.tsx +66 -0
  356. package/src/HeightActionSheet.tsx +91 -0
  357. package/src/Hyperlink.tsx +179 -0
  358. package/src/Icon.tsx +36 -0
  359. package/src/IconButton.tsx +217 -0
  360. package/src/Image.tsx +51 -0
  361. package/src/ImageBackground.tsx +14 -0
  362. package/src/InfoModalIcon.tsx +42 -0
  363. package/src/InfoTooltipButton.tsx +16 -0
  364. package/src/Link.tsx +22 -0
  365. package/src/MarkdownView.tsx +67 -0
  366. package/src/MediaQuery.ts +46 -0
  367. package/src/MobileAddressAutoComplete.tsx +126 -0
  368. package/src/Modal.tsx +300 -0
  369. package/src/ModalSheet.tsx +58 -0
  370. package/src/MultiselectField.tsx +112 -0
  371. package/src/NumberField.tsx +67 -0
  372. package/src/NumberPickerActionSheet.tsx +51 -0
  373. package/src/OpenAPIContext.tsx +74 -0
  374. package/src/Page.tsx +105 -0
  375. package/src/Pagination.tsx +169 -0
  376. package/src/PasswordField.tsx +7 -0
  377. package/src/Permissions.ts +43 -0
  378. package/src/PhoneNumberField.tsx +109 -0
  379. package/src/PickerSelect.tsx +571 -0
  380. package/src/Radio.tsx +33 -0
  381. package/src/RadioField.tsx +43 -0
  382. package/src/ScrollView.tsx +2 -0
  383. package/src/SectionDivider.tsx +18 -0
  384. package/src/SegmentedControl.tsx +126 -0
  385. package/src/SelectBadge.tsx +280 -0
  386. package/src/SelectField.tsx +41 -0
  387. package/src/SideDrawer.tsx +56 -0
  388. package/src/Signature.native.tsx +57 -0
  389. package/src/Signature.tsx +44 -0
  390. package/src/SignatureField.tsx +92 -0
  391. package/src/Slider.tsx +199 -0
  392. package/src/Spinner.tsx +35 -0
  393. package/src/SplitPage.native.tsx +163 -0
  394. package/src/SplitPage.tsx +304 -0
  395. package/src/TapToEdit.tsx +292 -0
  396. package/src/TerrenoProvider.tsx +31 -0
  397. package/src/Text.tsx +123 -0
  398. package/src/TextArea.test.tsx +255 -0
  399. package/src/TextArea.tsx +8 -0
  400. package/src/TextField.test.tsx +487 -0
  401. package/src/TextField.tsx +260 -0
  402. package/src/TextFieldNumberActionSheet.tsx +46 -0
  403. package/src/Theme.tsx +248 -0
  404. package/src/TimezonePicker.tsx +45 -0
  405. package/src/Toast.tsx +234 -0
  406. package/src/Tooltip.tsx +407 -0
  407. package/src/UnifiedAddressAutoComplete.tsx +66 -0
  408. package/src/Unifier.ts +172 -0
  409. package/src/Utilities.tsx +329 -0
  410. package/src/WebAddressAutocomplete.tsx +84 -0
  411. package/src/__snapshots__/Accordion.test.tsx.snap +126 -0
  412. package/src/__snapshots__/AddressField.test.tsx.snap +1197 -0
  413. package/src/__snapshots__/Avatar.test.tsx.snap +57 -0
  414. package/src/__snapshots__/Badge.test.tsx.snap +55 -0
  415. package/src/__snapshots__/Box.test.tsx.snap +162 -0
  416. package/src/__snapshots__/EmojiSelector.test.tsx.snap +422 -0
  417. package/src/__snapshots__/TextArea.test.tsx.snap +521 -0
  418. package/src/__snapshots__/TextField.test.tsx.snap +569 -0
  419. package/src/bunSetup.ts +1235 -0
  420. package/src/fieldElements/FieldError.tsx +24 -0
  421. package/src/fieldElements/FieldHelperText.tsx +20 -0
  422. package/src/fieldElements/FieldTitle.tsx +31 -0
  423. package/src/fieldElements/index.tsx +3 -0
  424. package/src/icons/MobileIcon.tsx +40 -0
  425. package/src/icons/OfflineIcon.tsx +37 -0
  426. package/src/icons/OnlineIcon.tsx +39 -0
  427. package/src/icons/OutOfficeIcon.tsx +36 -0
  428. package/src/icons/index.ts +4 -0
  429. package/src/index.tsx +1375 -0
  430. package/src/polyfill.d.ts +11 -0
  431. package/src/table/Table.tsx +109 -0
  432. package/src/table/TableBadge.tsx +46 -0
  433. package/src/table/TableBoolean.tsx +70 -0
  434. package/src/table/TableDate.tsx +38 -0
  435. package/src/table/TableHeader.tsx +20 -0
  436. package/src/table/TableHeaderCell.tsx +94 -0
  437. package/src/table/TableIconButton.tsx +61 -0
  438. package/src/table/TableNumber.tsx +29 -0
  439. package/src/table/TableRow.tsx +67 -0
  440. package/src/table/TableText.tsx +29 -0
  441. package/src/table/TableTitle.tsx +31 -0
  442. package/src/table/tableContext.tsx +67 -0
  443. package/src/test-utils.tsx +27 -0
  444. package/src/types/react-native-swiper-flatlist.d.ts +56 -0
  445. package/src/useStoredState.test.tsx +143 -0
  446. package/src/useStoredState.ts +56 -0
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from "react";
3
+ import { TouchableOpacity, View } from "react-native";
4
+ import { GooglePlacesAutocomplete, } from "react-native-google-places-autocomplete";
5
+ import { GOOGLE_PLACES_API_RESTRICTIONS } from "./Constants";
6
+ import { TextField } from "./TextField";
7
+ import { useTheme } from "./Theme";
8
+ import { processAddressComponents } from "./Utilities";
9
+ export const MobileAddressAutocomplete = ({ disabled, googleMapsApiKey, includeCounty, inputValue,
10
+ // More on react-native-google-places-autocomplete styles here: https://github.com/FaridSafi/react-native-google-places-autocomplete#styling
11
+ styles, handleAddressChange, handleAutoCompleteChange, testID, }) => {
12
+ var _a, _b;
13
+ const { theme } = useTheme();
14
+ const ref = useRef(null);
15
+ const [isFocused, setIsFocused] = useState(false);
16
+ // Load the Google Maps script and initialize the autocomplete.
17
+ useEffect(() => {
18
+ if (!googleMapsApiKey)
19
+ return;
20
+ if (ref === null || ref === void 0 ? void 0 : ref.current) {
21
+ ref.current.setAddressText(inputValue);
22
+ }
23
+ }, [googleMapsApiKey, inputValue]);
24
+ const textInputContainerStyles = Object.assign({ backgroundColor: theme.surface.base, borderColor: isFocused ? theme.border.hover : theme.border.default, borderRadius: theme.radius.default, borderWidth: isFocused ? 5 : 1, paddingHorizontal: isFocused ? 10 : 14, paddingVertical: isFocused ? 0 : 4 }, styles === null || styles === void 0 ? void 0 : styles.textInputContainer);
25
+ const textInputStyles = Object.assign({ backgroundColor: theme.surface.base, borderRadius: theme.radius.default, color: theme.text.primary, fontFamily: "text", fontSize: (_b = (_a = styles === null || styles === void 0 ? void 0 : styles.textInput) === null || _a === void 0 ? void 0 : _a.fontSize) !== null && _b !== void 0 ? _b : 14, height: 40, marginBottom: 0, paddingHorizontal: 0, paddingVertical: 4 }, styles === null || styles === void 0 ? void 0 : styles.textInput);
26
+ if (!googleMapsApiKey) {
27
+ return (_jsx(TextField, { disabled: disabled, id: "address1", onChange: (result) => handleAddressChange(result), testID: testID, type: "text", value: inputValue }));
28
+ }
29
+ return (_jsx(TouchableOpacity, { activeOpacity: 1, "aria-role": "button", onPress: () => setIsFocused(false), style: { flex: 1 }, children: _jsx(View, { children: _jsx(GooglePlacesAutocomplete, { disableScroll: true, fetchDetails: true, GooglePlacesDetailsQuery: {
30
+ fields: Object.values(GOOGLE_PLACES_API_RESTRICTIONS.fields).join(","),
31
+ }, onPress: (_data, details = null) => {
32
+ const addressComponents = details === null || details === void 0 ? void 0 : details.address_components;
33
+ const formattedAddressObject = processAddressComponents(addressComponents, {
34
+ includeCounty,
35
+ });
36
+ const { address1 } = formattedAddressObject;
37
+ handleAutoCompleteChange(formattedAddressObject);
38
+ if (ref.current) {
39
+ ref.current.setAddressText(address1);
40
+ }
41
+ setIsFocused(false);
42
+ }, placeholder: "Street Address", query: {
43
+ components: `country:${GOOGLE_PLACES_API_RESTRICTIONS.components.country}`,
44
+ key: googleMapsApiKey,
45
+ language: "en",
46
+ }, ref: ref, styles: Object.assign({ textInput: Object.assign({}, textInputStyles), textInputContainer: Object.assign({}, textInputContainerStyles) }, styles), textInputProps: {
47
+ onBlur: () => setIsFocused(false),
48
+ onChange: (event) => {
49
+ handleAddressChange(event.nativeEvent.text);
50
+ },
51
+ onFocus: () => setIsFocused(true),
52
+ } }) }) }));
53
+ };
54
+ //# sourceMappingURL=MobileAddressAutoComplete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MobileAddressAutoComplete.js","sourceRoot":"","sources":["../src/MobileAddressAutoComplete.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type FC } from "react";
2
+ import type { ModalProps } from "./Common";
3
+ export declare const Modal: FC<ModalProps>;
package/dist/Modal.js ADDED
@@ -0,0 +1,127 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef } from "react";
3
+ import { Dimensions, Pressable, Modal as RNModal, View } from "react-native";
4
+ import ActionSheet from "react-native-actions-sheet";
5
+ import { Gesture, GestureDetector } from "react-native-gesture-handler";
6
+ import { runOnJS } from "react-native-reanimated";
7
+ import { Button } from "./Button";
8
+ import { Heading } from "./Heading";
9
+ import { Icon } from "./Icon";
10
+ import { isMobileDevice } from "./MediaQuery";
11
+ import { Text } from "./Text";
12
+ import { useTheme } from "./Theme";
13
+ import { isNative } from "./Utilities";
14
+ const getModalSize = (size) => {
15
+ const sizeMap = {
16
+ lg: 900,
17
+ md: 720,
18
+ sm: 540,
19
+ };
20
+ let sizePx = sizeMap[size] || sizeMap.sm;
21
+ if (sizePx > Dimensions.get("window").width) {
22
+ sizePx = "90%";
23
+ }
24
+ return sizePx;
25
+ };
26
+ const ModalContent = ({ children, title, subtitle, text, primaryButtonText, primaryButtonDisabled, secondaryButtonText, primaryButtonOnClick, secondaryButtonOnClick, onDismiss, sizePx, theme, isMobile, }) => {
27
+ return (_jsxs(View, { style: Object.assign({ alignItems: "center", alignSelf: "center", backgroundColor: theme.surface.base, borderRadius: theme.radius.default, maxHeight: "100%", padding: 32, width: sizePx, zIndex: 1 }, (isMobile
28
+ ? {}
29
+ : {
30
+ boxShadow: "0px 4px 24px rgba(0, 0, 0, 0.5)",
31
+ elevation: 24,
32
+ margin: "auto",
33
+ })), children: [_jsx(View, { style: { alignSelf: "flex-end", position: "relative" }, children: _jsx(Pressable, { accessibilityHint: "Closes the modal", "aria-label": "Close modal", "aria-role": "button", onPress: onDismiss, style: {
34
+ alignItems: "center",
35
+ bottom: -8,
36
+ flex: 1,
37
+ justifyContent: "center",
38
+ left: -8,
39
+ position: "absolute",
40
+ right: -8,
41
+ top: -8,
42
+ }, children: _jsx(Icon, { iconName: "x", size: "sm" }) }) }), title && (_jsx(View, { accessibilityHint: "Modal title", "aria-label": title, "aria-role": "header", style: { alignSelf: "flex-start" }, children: _jsx(Heading, { size: "lg", children: title }) })), subtitle && (_jsx(View, { accessibilityHint: "Modal Sub Heading Text", "aria-label": subtitle, "aria-role": "text", style: { alignSelf: "flex-start", marginTop: subtitle ? 8 : 0 }, children: _jsx(Text, { size: "lg", children: subtitle }) })), text && (_jsx(View, { accessibilityHint: "Modal body text", "aria-label": text, "aria-role": "text", style: { alignSelf: "flex-start", marginVertical: text ? 12 : 0 }, children: _jsx(Text, { children: text }) })), children && (_jsx(View, { style: {
43
+ flex: isMobile ? undefined : 1,
44
+ marginTop: text ? 0 : 12,
45
+ width: "100%",
46
+ }, children: children })), _jsxs(View, { style: {
47
+ alignSelf: "flex-end",
48
+ flexDirection: "row",
49
+ marginTop: text && !children ? 20 : 32,
50
+ }, children: [Boolean(secondaryButtonText && secondaryButtonOnClick) && (_jsx(View, { style: { marginRight: primaryButtonText ? 20 : 0 }, children: _jsx(Button, { onClick: secondaryButtonOnClick, text: secondaryButtonText, variant: "muted" }) })), Boolean(primaryButtonText && primaryButtonOnClick) && (_jsx(Button, { disabled: primaryButtonDisabled, onClick: primaryButtonOnClick, text: primaryButtonText }))] })] }));
51
+ };
52
+ export const Modal = ({ children, persistOnBackgroundClick = false, primaryButtonDisabled = false, primaryButtonText, secondaryButtonText, size = "sm", subtitle, text, title, visible, onDismiss, primaryButtonOnClick, secondaryButtonOnClick, }) => {
53
+ const actionSheetRef = useRef(null);
54
+ const { theme } = useTheme();
55
+ const handleDismiss = () => {
56
+ if (visible && onDismiss) {
57
+ onDismiss();
58
+ }
59
+ };
60
+ const handlePrimaryButtonClick = (value) => {
61
+ if (visible && primaryButtonOnClick) {
62
+ return primaryButtonOnClick(value);
63
+ }
64
+ };
65
+ const handleSecondaryButtonClick = (value) => {
66
+ if (visible && secondaryButtonOnClick) {
67
+ return secondaryButtonOnClick(value);
68
+ }
69
+ };
70
+ const dragToClose = Gesture.Pan().onEnd((event) => {
71
+ if (event.translationY > 20) {
72
+ // Gesture callbacks run on the UI thread, runOnJS is required to safely invoke handleDismiss on the JS thread
73
+ runOnJS(handleDismiss)();
74
+ }
75
+ });
76
+ // Open the action sheet ref when the visible prop changes.
77
+ useEffect(() => {
78
+ if (actionSheetRef.current) {
79
+ actionSheetRef.current.setModalVisible(visible);
80
+ }
81
+ }, [visible]);
82
+ const isMobile = isMobileDevice() && isNative();
83
+ const sizePx = getModalSize(size);
84
+ const modalContentProps = {
85
+ isMobile,
86
+ onDismiss: handleDismiss,
87
+ persistOnBackgroundClick,
88
+ primaryButtonDisabled,
89
+ primaryButtonOnClick: handlePrimaryButtonClick,
90
+ primaryButtonText,
91
+ secondaryButtonOnClick: handleSecondaryButtonClick,
92
+ secondaryButtonText,
93
+ sizePx,
94
+ subtitle,
95
+ text,
96
+ theme,
97
+ title,
98
+ };
99
+ if (isMobile) {
100
+ return (_jsx(ActionSheet, { closeOnTouchBackdrop: !persistOnBackgroundClick, gestureEnabled: false,
101
+ // Disable ActionSheet's built-in gestures to avoid conflicts with scrolling
102
+ onClose: handleDismiss, ref: actionSheetRef, children: _jsxs(View, { children: [_jsx(GestureDetector, { gesture: dragToClose, children: _jsx(View, { accessibilityHint: "Pull down to close the modal", "aria-label": "Pull down bar", "aria-role": "adjustable",
103
+ // add hitSlop to make the bar easier to hit since it's small
104
+ hitSlop: { bottom: 20, left: 50, right: 50, top: 20 }, style: {
105
+ alignItems: "center",
106
+ alignSelf: "center",
107
+ backgroundColor: "#9A9A9A",
108
+ borderRadius: 5,
109
+ height: 3,
110
+ justifyContent: "center",
111
+ marginTop: 10,
112
+ padding: 2,
113
+ width: "30%",
114
+ } }) }), _jsx(ModalContent, Object.assign({}, modalContentProps, { children: children }))] }) }));
115
+ }
116
+ else {
117
+ return (_jsx(RNModal, { animationType: "slide", onRequestClose: handleDismiss, transparent: true, visible: visible, children: _jsx(Pressable, { onPress: persistOnBackgroundClick ? undefined : handleDismiss, style: {
118
+ alignItems: "center",
119
+ backgroundColor: "rgba(0, 0, 0, 0.5)",
120
+ flex: 1,
121
+ justifyContent: "center",
122
+ }, children: _jsx(Pressable, { onPress: (e) => {
123
+ persistOnBackgroundClick ? null : e.stopPropagation();
124
+ }, style: { cursor: "auto" }, children: _jsx(ModalContent, Object.assign({}, modalContentProps, { children: children })) }) }) }));
125
+ }
126
+ };
127
+ //# sourceMappingURL=Modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../src/Modal.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const useCombinedRefs: (...refs: any) => import("react").RefObject<any>;
2
+ interface Props {
3
+ children: any;
4
+ }
5
+ export declare const SimpleContent: import("react").ForwardRefExoticComponent<Props & import("react").RefAttributes<unknown>>;
6
+ export {};
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef, useEffect, useRef } from "react";
3
+ import { Animated } from "react-native";
4
+ import { Modalize } from "react-native-modalize";
5
+ import { Portal } from "react-native-portalize";
6
+ export const useCombinedRefs = (...refs) => {
7
+ const targetRef = useRef(null);
8
+ // Iterate through the refs array, and set the ref.current value to the targetRef
9
+ useEffect(() => {
10
+ refs.forEach((ref) => {
11
+ if (!ref) {
12
+ return;
13
+ }
14
+ if (typeof ref === "function") {
15
+ ref(targetRef.current);
16
+ }
17
+ else {
18
+ ref.current = targetRef.current;
19
+ }
20
+ });
21
+ }, [refs]);
22
+ return targetRef;
23
+ };
24
+ export const SimpleContent = forwardRef((props, ref) => {
25
+ const modalizeRef = useRef(null);
26
+ const combinedRef = useCombinedRefs(ref, modalizeRef);
27
+ const animated = useRef(new Animated.Value(0)).current;
28
+ // const renderHeader = () => (
29
+ // <Box paddingY={4} marginTop={4} marginBottom={4}>
30
+ // <Text>50 users online</Text>
31
+ // </Box>
32
+ // );
33
+ return (_jsx(Portal, { children: _jsx(Modalize
34
+ // HeaderComponent={renderHeader}
35
+ , {
36
+ // HeaderComponent={renderHeader}
37
+ adjustToContentHeight: true, panGestureAnimatedValue: animated, ref: combinedRef, scrollViewProps: {
38
+ showsVerticalScrollIndicator: false,
39
+ stickyHeaderIndices: [0],
40
+ }, children: props.children }) }));
41
+ });
42
+ //# sourceMappingURL=ModalSheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalSheet.js","sourceRoot":"","sources":["../src/ModalSheet.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AACpD,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAG,IAAS,EAAE,EAAE;IAC9C,MAAM,SAAS,GAAG,MAAM,CAAM,IAAI,CAAC,CAAC;IAEpC,iFAAiF;IACjF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;YACxB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YAED,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9B,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,KAAY,EAAE,GAAG,EAAE,EAAE;IAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAEvD,+BAA+B;IAC/B,sDAAsD;IACtD,mCAAmC;IACnC,WAAW;IACX,KAAK;IAEL,OAAO,CACL,KAAC,MAAM,cACL,KAAC,QAAQ;QACP,iCAAiC;;YAAjC,iCAAiC;YACjC,qBAAqB,QACrB,uBAAuB,EAAE,QAAQ,EACjC,GAAG,EAAE,WAAW,EAChB,eAAe,EAAE;gBACf,4BAA4B,EAAE,KAAK;gBACnC,mBAAmB,EAAE,CAAC,CAAC,CAAC;aACzB,YAEA,KAAK,CAAC,QAAQ,GACN,GACJ,CACV,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type FC } from "react";
2
+ import type { MultiselectFieldProps } from "./Common";
3
+ export declare const MultiselectField: FC<MultiselectFieldProps>;
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { TouchableOpacity, View } from "react-native";
4
+ import { CheckBox } from "./CheckBox";
5
+ import { FieldError, FieldHelperText } from "./fieldElements";
6
+ import { Heading } from "./Heading";
7
+ import { isMobileDevice } from "./MediaQuery";
8
+ import { Text } from "./Text";
9
+ const Option = ({ value, label, isDefault, selected, onSelect }) => {
10
+ return (_jsxs(View, { style: {
11
+ display: "flex",
12
+ flexDirection: isDefault ? "row" : "row-reverse",
13
+ justifyContent: "space-between",
14
+ }, children: [_jsx(View, { style: { flex: 1, flexWrap: "wrap" }, children: _jsx(Text, { children: label !== null && label !== void 0 ? label : value }) }), _jsx(TouchableOpacity, { accessibilityHint: `Select ${label !== null && label !== void 0 ? label : value} from list of options`, "aria-label": label !== null && label !== void 0 ? label : value, "aria-role": "checkbox", hitSlop: { bottom: 10, left: 10, right: 10, top: 10 }, onPress: onSelect, style: {
15
+ justifyContent: "center",
16
+ }, children: _jsx(View, { style: {
17
+ paddingEnd: isDefault ? 0 : 8,
18
+ paddingStart: isDefault ? 8 : 0,
19
+ }, children: _jsx(CheckBox, { selected: selected }) }) }, value)] }));
20
+ };
21
+ export const MultiselectField = ({ options, title, value = [], variant = "leftText", onChange, errorText, helperText, disabled, }) => {
22
+ const isMobile = isMobileDevice();
23
+ const isDefault = variant === "leftText";
24
+ const [selectedItems, setSelectedItems] = useState(value);
25
+ // set the selected items to the value passed in the props
26
+ useEffect(() => {
27
+ setSelectedItems(value);
28
+ }, [value]);
29
+ const toggleItem = (item) => {
30
+ const newSelectedItems = selectedItems.includes(item)
31
+ ? selectedItems.filter((selected) => selected !== item)
32
+ : [...selectedItems, item];
33
+ setSelectedItems(newSelectedItems);
34
+ onChange(newSelectedItems);
35
+ };
36
+ return (_jsxs(View, { accessibilityHint: "Contains a prompt and list of options to select", "aria-label": title, "aria-role": "combobox", style: {
37
+ display: "flex",
38
+ gap: isMobile ? 16 : 8,
39
+ width: "100%",
40
+ }, children: [_jsx(Heading, { color: "primary", size: "sm", children: title }), Boolean(errorText) && _jsx(FieldError, { text: errorText }), disabled ? (_jsx(Text, { children: value.join(", ") })) : (options.map((option) => {
41
+ var _a;
42
+ return (_jsx(Option, { isDefault: isDefault, label: option.label, onSelect: () => toggleItem(option.value), selected: selectedItems.includes(option.value), value: option.value }, (_a = option.key) !== null && _a !== void 0 ? _a : option.value));
43
+ })), Boolean(helperText) && _jsx(FieldHelperText, { text: helperText })] }));
44
+ };
45
+ //# sourceMappingURL=MultiselectField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiselectField.js","sourceRoot":"","sources":["../src/MultiselectField.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type FC } from "react";
2
+ import type { NumberFieldProps } from "./Common";
3
+ export declare const NumberField: FC<NumberFieldProps>;
@@ -0,0 +1,60 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { useCallback, useEffect, useState } from "react";
14
+ import { TextField } from "./TextField";
15
+ export const NumberField = (_a) => {
16
+ var { errorText, value: valueProp, max, min, type, onChange } = _a, rest = __rest(_a, ["errorText", "value", "max", "min", "type", "onChange"]);
17
+ const [value, setValue] = useState(valueProp !== null && valueProp !== void 0 ? valueProp : "");
18
+ // Sync local state with incoming prop values
19
+ useEffect(() => {
20
+ setValue(valueProp !== null && valueProp !== void 0 ? valueProp : "");
21
+ }, [valueProp]);
22
+ const getError = useCallback((newV) => {
23
+ const v = String(newV);
24
+ if (!v) {
25
+ return;
26
+ }
27
+ const num = type === "number" ? parseInt(v, 10) : parseFloat(v);
28
+ if (Number.isNaN(num) || (type === "number" && v.match(/[^0-9]/) !== null)) {
29
+ return "Value must be an integer";
30
+ }
31
+ else if ((type === "decimal" && v.match(/[^0-9.]+/) !== null) ||
32
+ (v.match(/\./g) || []).length > 1) {
33
+ return "Value must be a decimal";
34
+ }
35
+ else if (max !== undefined && num > max) {
36
+ return `Value must be less than or equal to ${max}`;
37
+ }
38
+ else if (min !== undefined && num < min) {
39
+ return `Value must be greater than or equal to ${min}`;
40
+ }
41
+ return undefined;
42
+ }, [max, min, type]);
43
+ const error = errorText || getError(value);
44
+ // Only return the value if it is a valid number
45
+ const localOnChange = useCallback((v) => {
46
+ if (type === "decimal" && v === ".") {
47
+ // if type is decimal and dot is the first character add 0 before it
48
+ setValue("0.");
49
+ onChange("0.");
50
+ return;
51
+ }
52
+ const err = getError(v);
53
+ if (!err) {
54
+ setValue(v);
55
+ onChange(v);
56
+ }
57
+ }, [getError, onChange, type]);
58
+ return _jsx(TextField, Object.assign({}, rest, { errorText: error, onChange: localOnChange, value: value }));
59
+ };
60
+ //# sourceMappingURL=NumberField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberField.js","sourceRoot":"","sources":["../src/NumberField.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import type { NumberPickerActionSheetProps } from "./Common";
3
+ type NumberPickerActionSheetState = {};
4
+ export declare class NumberPickerActionSheet extends React.Component<NumberPickerActionSheetProps, NumberPickerActionSheetState> {
5
+ render(): import("react/jsx-runtime").JSX.Element;
6
+ }
7
+ export {};
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Picker } from "@react-native-picker/picker";
3
+ import range from "lodash/range";
4
+ import React from "react";
5
+ import { ActionSheet } from "./ActionSheet";
6
+ import { Box } from "./Box";
7
+ import { Button } from "./Button";
8
+ const PICKER_HEIGHT = 104;
9
+ export class NumberPickerActionSheet extends React.Component {
10
+ render() {
11
+ return (_jsx(ActionSheet, { bounceOnOpen: true, gestureEnabled: true, ref: this.props.actionSheetRef, children: _jsxs(Box, { marginBottom: 8, paddingX: 4, width: "100%", children: [_jsx(Box, { alignItems: "end", display: "flex", width: "100%", children: _jsx(Box, { width: "33%", children: _jsx(Button, { onClick: () => {
12
+ var _a, _b;
13
+ (_b = (_a = this.props.actionSheetRef) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.setModalVisible(false);
14
+ }, text: "Close" }) }) }), _jsx(Picker, { itemStyle: {
15
+ height: PICKER_HEIGHT,
16
+ }, onValueChange: (itemValue) => this.props.onChange(String(itemValue)), selectedValue: String(this.props.value), style: {
17
+ backgroundColor: "#FFFFFF",
18
+ height: PICKER_HEIGHT,
19
+ }, children: range(this.props.min, this.props.max).map((n) => (_jsx(Picker.Item, { label: String(n), value: String(n) }, String(n)))) })] }) }));
20
+ }
21
+ }
22
+ //# sourceMappingURL=NumberPickerActionSheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberPickerActionSheet.js","sourceRoot":"","sources":["../src/NumberPickerActionSheet.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,6BAA6B,CAAC;AACnD,OAAO,KAAK,MAAM,cAAc,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAGhC,MAAM,aAAa,GAAG,GAAG,CAAC;AAI1B,MAAM,OAAO,uBAAwB,SAAQ,KAAK,CAAC,SAGlD;IACC,MAAM;QACJ,OAAO,CACL,KAAC,WAAW,IAAC,YAAY,QAAC,cAAc,QAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,YACrE,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAC,MAAM,aAC7C,KAAC,GAAG,IAAC,UAAU,EAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,YAC/C,KAAC,GAAG,IAAC,KAAK,EAAC,KAAK,YACd,KAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;;oCACZ,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,cAAc,0CAAE,OAAO,0CAAE,eAAe,CAAC,KAAK,CAAC,CAAC;gCAC7D,CAAC,EACD,IAAI,EAAC,OAAO,GACZ,GACE,GACF,EACN,KAAC,MAAM,IACL,SAAS,EAAE;4BACT,MAAM,EAAE,aAAa;yBACtB,EACD,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EACpE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EACvC,KAAK,EAAE;4BACL,eAAe,EAAE,SAAS;4BAC1B,MAAM,EAAE,aAAa;yBACtB,YAEA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAChD,KAAC,MAAM,CAAC,IAAI,IAAiB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAA7C,MAAM,CAAC,CAAC,CAAC,CAAwC,CACpE,CAAC,GACK,IACL,GACM,CACf,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import type React from "react";
2
+ import type { OpenAPIContextType, OpenAPIProviderProps } from "./Common";
3
+ export declare const OpenAPIProvider: ({ children, specUrl }: OpenAPIProviderProps) => React.ReactElement;
4
+ export declare const useOpenAPISpec: () => OpenAPIContextType;
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import camelCase from "lodash/camelCase";
3
+ import { createContext, useContext, useEffect, useState } from "react";
4
+ const OpenAPIContext = createContext(null);
5
+ export const OpenAPIProvider = ({ children, specUrl }) => {
6
+ const [spec, setSpec] = useState(null);
7
+ const getModelFields = (modelName) => {
8
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
9
+ const modelPath = `/${camelCase(modelName.replace(/\s/g, ""))}/`;
10
+ const rootConfig = (_a = spec === null || spec === void 0 ? void 0 : spec.paths) === null || _a === void 0 ? void 0 : _a[modelPath];
11
+ if (!rootConfig) {
12
+ if ((spec === null || spec === void 0 ? void 0 : spec.paths) && modelName) {
13
+ console.warn(`No OpenAPI model found for ${modelName}`);
14
+ }
15
+ return null;
16
+ }
17
+ return (_j = (_h = (_g = (_f = (_e = (_d = (_c = (_b = rootConfig === null || rootConfig === void 0 ? void 0 : rootConfig.get) === null || _b === void 0 ? void 0 : _b.responses) === null || _c === void 0 ? void 0 : _c["200"]) === null || _d === void 0 ? void 0 : _d.content) === null || _e === void 0 ? void 0 : _e["application/json"]) === null || _f === void 0 ? void 0 : _f.schema) === null || _g === void 0 ? void 0 : _g.properties) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.items;
18
+ };
19
+ const getModelField = (modelName, fieldName) => {
20
+ var _a, _b;
21
+ const fields = getModelFields(modelName);
22
+ const dotFields = fieldName.split(".");
23
+ let field = (_a = fields === null || fields === void 0 ? void 0 : fields.properties) === null || _a === void 0 ? void 0 : _a[dotFields[0]];
24
+ if (!field && fieldName && (fields === null || fields === void 0 ? void 0 : fields.properties)) {
25
+ console.warn(`No OpenAPI field found for ${modelName}:${fieldName}`);
26
+ }
27
+ for (const dotField of dotFields.slice(1)) {
28
+ field = (_b = field === null || field === void 0 ? void 0 : field.properties) === null || _b === void 0 ? void 0 : _b[dotField];
29
+ }
30
+ return field;
31
+ };
32
+ // Fetch the OpenAPI spec from the provided URL.
33
+ useEffect(() => {
34
+ if (!specUrl) {
35
+ return;
36
+ }
37
+ fetch(specUrl)
38
+ .then(async (response) => {
39
+ const data = (await response.json());
40
+ setSpec(data);
41
+ })
42
+ .catch((error) => console.error(`Error fetching OpenAPI spec: ${error}`));
43
+ }, [specUrl]);
44
+ return (_jsx(OpenAPIContext.Provider, { value: { getModelField, getModelFields, spec }, children: children }));
45
+ };
46
+ export const useOpenAPISpec = () => {
47
+ const context = useContext(OpenAPIContext);
48
+ if (!context) {
49
+ throw new Error("useOpenAPISpec must be used within an OpenAPIProvider");
50
+ }
51
+ return context;
52
+ };
53
+ //# sourceMappingURL=OpenAPIContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAPIContext.js","sourceRoot":"","sources":["../src/OpenAPIContext.tsx"],"names":[],"mappings":"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"}
package/dist/Page.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import type { PageProps } from "./Common";
3
+ export declare class Page extends React.Component<PageProps, {}> {
4
+ actionSheetRef: React.RefObject<any>;
5
+ renderHeader(): import("react/jsx-runtime").JSX.Element | null;
6
+ render(): import("react/jsx-runtime").JSX.Element;
7
+ }
package/dist/Page.js ADDED
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { Box } from "./Box";
4
+ import { Button } from "./Button";
5
+ import { ErrorBoundary } from "./ErrorBoundary";
6
+ import { Heading } from "./Heading";
7
+ import { IconButton } from "./IconButton";
8
+ import { Spinner } from "./Spinner";
9
+ export class Page extends React.Component {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.actionSheetRef = React.createRef();
13
+ }
14
+ renderHeader() {
15
+ if (!this.props.title && !this.props.backButton) {
16
+ return null;
17
+ }
18
+ return (_jsxs(Box, { direction: "row", display: "flex", width: "100%", children: [this.props.backButton && (_jsx(Box, { alignItems: "center", display: "block", justifyContent: "center", paddingY: 3, children: _jsx(IconButton, { accessibilityHint: "Navigate back", accessibilityLabel: "", iconName: "chevron-left", onClick: () => this.props.navigation.goBack() }) })), this.props.closeButton && (_jsx(Box, { alignItems: "center", display: "block", justifyContent: "center", paddingY: 3, children: _jsx(IconButton, { accessibilityHint: "Close page", accessibilityLabel: "", iconName: "xmark", onClick: () => this.props.navigation.goBack() }) })), Boolean(this.props.title) && (_jsx(Box, { direction: "column", display: "flex", flex: "grow", justifyContent: "center", children: _jsx(Heading, { align: "center", children: this.props.title }) })), this.props.rightButton && (_jsx(Box, { alignItems: "center", display: "block", justifyContent: "center", paddingY: 3, children: _jsx(Button, { onClick: () => { var _a, _b; return (_b = (_a = this.props).rightButtonOnClick) === null || _b === void 0 ? void 0 : _b.call(_a); }, text: this.props.rightButton, variant: "muted" }) }))] }));
19
+ }
20
+ render() {
21
+ return (_jsxs(ErrorBoundary, { onError: this.props.onError, children: [_jsxs(Box, { alignSelf: "center", avoidKeyboard: true, color: this.props.color || "base", direction: this.props.direction || "column", display: this.props.display || "flex", flex: "grow", height: "100%", keyboardOffset: this.props.keyboardOffset, maxWidth: this.props.maxWidth || 800, padding: this.props.padding !== undefined ? this.props.padding : 2, scroll: this.props.scroll === undefined ? true : this.props.scroll, width: "100%", children: [this.renderHeader(), this.props.loading === true && _jsx(Spinner, {}), this.props.children] }), Boolean(this.props.footer) && (_jsx(Box, { alignSelf: "center", color: this.props.color || "neutralLight", direction: this.props.direction || "column", display: this.props.display || "flex", flex: "shrink", marginBottom: 8, maxWidth: this.props.maxWidth || 800, paddingX: this.props.padding !== undefined ? this.props.padding : 6, paddingY: this.props.padding !== undefined ? this.props.padding : 2, width: "100%", children: this.props.footer }))] }));
22
+ }
23
+ }
24
+ //# sourceMappingURL=Page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Page.js","sourceRoot":"","sources":["../src/Page.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type FC } from "react";
2
+ import type { PaginationProps } from "./Common";
3
+ export declare const Pagination: FC<PaginationProps>;