@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
package/dist/index.js ADDED
@@ -0,0 +1,89 @@
1
+ export * from "./Accordion";
2
+ export * from "./ActionSheet";
3
+ export * from "./AddressField";
4
+ export * from "./Avatar";
5
+ export * from "./Badge";
6
+ export * from "./Banner";
7
+ export * from "./Body";
8
+ export * from "./BooleanField";
9
+ export * from "./Box";
10
+ export * from "./Button";
11
+ export * from "./Card";
12
+ export * from "./CheckBox";
13
+ export * from "./Common";
14
+ export * from "./Constants";
15
+ export * from "./CustomSelectField";
16
+ export * from "./DataTable";
17
+ export * from "./DateTimeActionSheet";
18
+ export * from "./DateTimeField";
19
+ export * from "./DateUtilities";
20
+ export * from "./DecimalRangeActionSheet";
21
+ export * from "./DismissButton";
22
+ export * from "./EmailField";
23
+ export { default as EmojiSelector } from "./EmojiSelector";
24
+ export * from "./ErrorBoundary";
25
+ export * from "./ErrorPage";
26
+ export * from "./Field";
27
+ export * from "./FlatList";
28
+ export * from "./Heading";
29
+ export * from "./HeightActionSheet";
30
+ export * from "./Icon";
31
+ export * from "./IconButton";
32
+ export * from "./Image";
33
+ export * from "./ImageBackground";
34
+ export * from "./InfoModalIcon";
35
+ export * from "./InfoTooltipButton";
36
+ export * from "./Link";
37
+ export * from "./MarkdownView";
38
+ export * from "./MediaQuery";
39
+ export * from "./MobileAddressAutoComplete";
40
+ export * from "./Modal";
41
+ export * from "./ModalSheet";
42
+ export * from "./MultiselectField";
43
+ export * from "./NumberField";
44
+ export * from "./NumberPickerActionSheet";
45
+ export * from "./OpenAPIContext";
46
+ export * from "./Page";
47
+ export * from "./Pagination";
48
+ export * from "./PasswordField";
49
+ export * from "./PhoneNumberField";
50
+ export * from "./Radio";
51
+ export * from "./RadioField";
52
+ export * from "./ScrollView";
53
+ export * from "./SectionDivider";
54
+ export * from "./SegmentedControl";
55
+ export * from "./SelectBadge";
56
+ export * from "./SelectField";
57
+ export * from "./SideDrawer";
58
+ export * from "./Signature";
59
+ export * from "./SignatureField";
60
+ export * from "./Slider";
61
+ export * from "./Spinner";
62
+ export * from "./SplitPage";
63
+ export * from "./TapToEdit";
64
+ export * from "./TerrenoProvider";
65
+ export * from "./Text";
66
+ export * from "./TextArea";
67
+ export * from "./TextField";
68
+ export * from "./Theme";
69
+ export * from "./Toast";
70
+ export * from "./Tooltip";
71
+ export * from "./table/Table";
72
+ export * from "./table/Table";
73
+ export * from "./table/TableBadge";
74
+ export * from "./table/TableBoolean";
75
+ export * from "./table/TableDate";
76
+ export * from "./table/TableHeader";
77
+ export * from "./table/TableHeaderCell";
78
+ export * from "./table/TableIconButton";
79
+ export * from "./table/TableNumber";
80
+ export * from "./table/TableRow";
81
+ export * from "./table/TableText";
82
+ export * from "./table/TableTitle";
83
+ export * from "./table/tableContext";
84
+ export * from "./UnifiedAddressAutoComplete";
85
+ export * from "./Unifier";
86
+ export * from "./Utilities";
87
+ export * from "./useStoredState";
88
+ export * from "./WebAddressAutocomplete";
89
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACzD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ import type { TableProps } from "../Common";
3
+ export declare const Table: ({ children, columns, borderStyle, alternateRowBackground, maxHeight, stickyHeader, sort, page: propsPage, setPage: propsSetPage, totalPages, more, extraControls, }: TableProps) => React.ReactElement;
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { Children, useEffect } from "react";
3
+ import { ScrollView } from "react-native";
4
+ import { Box } from "../Box";
5
+ import { Pagination } from "../Pagination";
6
+ import { TableContextProvider } from "./tableContext";
7
+ export const Table = ({ children, columns, // see notes in common about table columns width and decide if we need to change this to a more specific type 'size'
8
+ borderStyle, alternateRowBackground = true, maxHeight, stickyHeader = true, sort, page: propsPage, setPage: propsSetPage, totalPages, more, extraControls, }) => {
9
+ const arrayChildren = Children.toArray(children);
10
+ // Check if any of the rows below have a drawerContents prop to see if we need to render space
11
+ // for the caret.
12
+ const [sortColumn, setSortColumn] = React.useState(sort);
13
+ const [page, setPage] = React.useState(propsPage !== null && propsPage !== void 0 ? propsPage : 1);
14
+ // Check if any of the rows below have a drawerContents prop to see if we need to render space
15
+ // for the caret.
16
+ const hasDrawerContents = arrayChildren.some((child) => {
17
+ var _a;
18
+ return (_a = child.props) === null || _a === void 0 ? void 0 : _a.drawerContents;
19
+ });
20
+ // Calculate the total width of the table. If the table has only number widths, calculate a
21
+ // width. Otherwise use 100%.
22
+ let width;
23
+ if (columns.every((column) => typeof column === "number")) {
24
+ width = columns.reduce((acc, curr) => {
25
+ return acc + curr + 8; // 8 for margin between columns;
26
+ }, 0);
27
+ if (hasDrawerContents) {
28
+ // Size of IconButton + padding is 56
29
+ width = width + 56;
30
+ }
31
+ }
32
+ else {
33
+ width = "100%";
34
+ }
35
+ // If propsPage changes in the parent, update the local page state.
36
+ useEffect(() => {
37
+ if (propsPage && propsPage !== page) {
38
+ setPage(propsPage);
39
+ }
40
+ }, [page, propsPage]);
41
+ const shouldPaginate = more || page > 1;
42
+ return (_jsxs(TableContextProvider, { alternateRowBackground: alternateRowBackground, borderStyle: borderStyle, columns: columns, hasDrawerContents: hasDrawerContents, page: page, setSortColumn: setSortColumn, sortColumn: sortColumn, stickyHeader: stickyHeader, children: [_jsx(Box, { flex: "grow", maxWidth: "100%", style: {
43
+ position: "relative",
44
+ }, width: width, children: _jsx(ScrollView, { horizontal: true, style: { maxWidth: "100%", width }, children: _jsx(ScrollView
45
+ // nestedScrollEnabled
46
+ , {
47
+ // nestedScrollEnabled
48
+ stickyHeaderIndices: stickyHeader ? [0] : undefined, style: { flex: 1, maxHeight, maxWidth: "100%", width }, children: Children.map(children, (child, index) => Boolean(child) &&
49
+ React.cloneElement(child, {
50
+ color: index % 2 === 1 && alternateRowBackground ? "neutralLight" : "base",
51
+ })) }) }) }), Boolean(shouldPaginate && totalPages !== undefined) && (_jsxs(Box, { alignItems: "center", borderTop: "default", direction: "row", height: 60, paddingX: 8, children: [_jsx(Pagination, { page: propsPage !== null && propsPage !== void 0 ? propsPage : page, setPage: propsSetPage !== null && propsSetPage !== void 0 ? propsSetPage : setPage, totalPages: totalPages }), Boolean(extraControls) && extraControls] }))] }));
52
+ };
53
+ //# sourceMappingURL=Table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../src/table/Table.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type FC } from "react";
2
+ import type { TableBadgeProps } from "../Common";
3
+ export interface TableBadgeHandles {
4
+ handleSave: () => void | Promise<void>;
5
+ }
6
+ export declare const TableBadge: FC<TableBadgeProps>;
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { View } from "react-native";
4
+ import { Badge } from "../Badge";
5
+ import { SelectField } from "../SelectField";
6
+ // TODO: Support error state in TableBadge
7
+ export const TableBadge = ({ value, badgeStatus = "info", badgeIconName, isEditing = false, editingOptions, }) => {
8
+ const [selected, setSelected] = useState(value);
9
+ const handleChange = (newVal) => {
10
+ if (newVal === "") {
11
+ setSelected(undefined);
12
+ }
13
+ else {
14
+ setSelected(newVal);
15
+ }
16
+ };
17
+ return (_jsx(View, { style: {
18
+ alignItems: "center",
19
+ justifyContent: "center",
20
+ }, children: isEditing && editingOptions ? (_jsx(SelectField, { onChange: handleChange, options: editingOptions, value: selected })) : (_jsx(Badge, { iconName: badgeIconName, secondary: true, status: badgeStatus, value: value })) }));
21
+ };
22
+ TableBadge.displayName = "TableBadge";
23
+ //# sourceMappingURL=TableBadge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableBadge.js","sourceRoot":"","sources":["../../src/table/TableBadge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,QAAQ,EAAC,MAAM,OAAO,CAAC;AACxC,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAElC,OAAO,EAAC,KAAK,EAAC,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAM3C,0CAA0C;AAC1C,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,EAC9C,KAAK,EACL,WAAW,GAAG,MAAM,EACpB,aAAa,EACb,SAAS,GAAG,KAAK,EACjB,cAAc,GACf,EAAE,EAAE;IACH,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAqB,KAAK,CAAC,CAAC;IAEpE,MAAM,YAAY,GAAG,CAAC,MAA0B,EAAE,EAAE;QAClD,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YAClB,WAAW,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE;YACL,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;SACzB,YAEA,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,CAC7B,KAAC,WAAW,IAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,GAAI,CAClF,CAAC,CAAC,CAAC,CACF,KAAC,KAAK,IAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,QAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,GAAI,CAChF,GACI,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type FC } from "react";
2
+ import type { TableBooleanProps } from "../Common";
3
+ export interface TableBooleanHandles {
4
+ handleSave: () => void | Promise<void>;
5
+ }
6
+ export declare const TableBoolean: FC<TableBooleanProps>;
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useState } from "react";
3
+ import { TouchableOpacity, View } from "react-native";
4
+ import { CheckBox } from "../CheckBox";
5
+ import { Icon } from "../Icon";
6
+ import { useTheme } from "../Theme";
7
+ export const TableBoolean = ({ value, isEditing = false }) => {
8
+ const [checked, setChecked] = useState(value);
9
+ const { theme } = useTheme();
10
+ const valueString = checked ? "checked" : "unchecked";
11
+ const oppositeValueString = checked ? "unchecked" : "checked";
12
+ const handlePress = useCallback(() => {
13
+ setChecked(!checked);
14
+ }, [checked]);
15
+ if (isEditing) {
16
+ return (_jsx(TouchableOpacity, { accessibilityHint: `Tap to change the checkbox from ${oppositeValueString} to ${valueString}`, "aria-label": `Checkbox is currently ${valueString}`, "aria-role": "checkbox", hitSlop: { bottom: 10, left: 10, right: 10, top: 10 }, onPress: handlePress, style: {
17
+ alignItems: "center",
18
+ justifyContent: "center",
19
+ }, children: _jsx(CheckBox, { selected: checked, size: "lg" }) }));
20
+ }
21
+ else {
22
+ return (_jsx(View, { style: {
23
+ alignItems: "center",
24
+ justifyContent: "center",
25
+ width: "100%",
26
+ }, children: _jsx(View, { accessibilityHint: value ? "Checked icon" : "Unchecked icon", "aria-label": `The checkbox is ${valueString}`, "aria-role": "image", style: {
27
+ alignItems: "center",
28
+ backgroundColor: value ? theme.surface.successLight : "transparent",
29
+ borderRadius: 16,
30
+ height: 32,
31
+ justifyContent: "center",
32
+ width: 32,
33
+ }, children: _jsx(Icon, { color: value ? "success" : "error", iconName: value ? "check" : "x" }) }) }));
34
+ }
35
+ };
36
+ TableBoolean.displayName = "TableBoolean";
37
+ //# sourceMappingURL=TableBoolean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableBoolean.js","sourceRoot":"","sources":["../../src/table/TableBoolean.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,WAAW,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACrD,OAAO,EAAC,gBAAgB,EAAE,IAAI,EAAiB,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAErC,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAMlC,MAAM,CAAC,MAAM,YAAY,GAA0B,CAAC,EAAC,KAAK,EAAE,SAAS,GAAG,KAAK,EAAC,EAAE,EAAE;IAChF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,EAAC,KAAK,EAAC,GAAG,QAAQ,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IACtD,MAAM,mBAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9D,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,KAAC,gBAAgB,IACf,iBAAiB,EAAE,mCAAmC,mBAAmB,OAAO,WAAW,EAAE,gBACjF,yBAAyB,WAAW,EAAE,eACxC,UAAU,EACpB,OAAO,EAAE,EAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAC,EACnD,OAAO,EAAE,WAAW,EACpB,KAAK,EACH;gBACE,UAAU,EAAE,QAAQ;gBACpB,cAAc,EAAE,QAAQ;aACZ,YAGhB,KAAC,QAAQ,IAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAC,IAAI,GAAG,GACxB,CACpB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE;gBACL,UAAU,EAAE,QAAQ;gBACpB,cAAc,EAAE,QAAQ;gBACxB,KAAK,EAAE,MAAM;aACd,YAED,KAAC,IAAI,IACH,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,gBAChD,mBAAmB,WAAW,EAAE,eAClC,OAAO,EACjB,KAAK,EAAE;oBACL,UAAU,EAAE,QAAQ;oBACpB,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa;oBACnE,YAAY,EAAE,EAAE;oBAChB,MAAM,EAAE,EAAE;oBACV,cAAc,EAAE,QAAQ;oBACxB,KAAK,EAAE,EAAE;iBACV,YAED,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAI,GACxE,GACF,CACR,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type FC } from "react";
2
+ import type { TableDateProps } from "../Common";
3
+ export declare const TableDate: FC<TableDateProps>;
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DateTime } from "luxon";
3
+ import { useState } from "react";
4
+ import { Text } from "react-native";
5
+ export const TableDate = ({ value, annotated = false }) => {
6
+ const initialDate = typeof value === "string" ? DateTime.fromISO(value) : DateTime.fromJSDate(value);
7
+ const [dateVal] = useState(initialDate);
8
+ // TODO: Formatting date with annotations should be in DateUtilities and tested.
9
+ const formatDate = (date) => {
10
+ const now = DateTime.now();
11
+ const diff = now.diff(date, ["years", "months", "days"]).toObject();
12
+ let diffString = "";
13
+ if (diff.years) {
14
+ diffString += `${Math.floor(diff.years)} Year${Math.floor(diff.years) > 1 ? "s" : ""} `;
15
+ }
16
+ if (diff.months) {
17
+ diffString += `${Math.floor(diff.months)} Mo${Math.floor(diff.months) > 1 ? "s" : ""} `;
18
+ }
19
+ if (diff.days) {
20
+ diffString += `${Math.floor(diff.days)} Day${Math.floor(diff.days) > 1 ? "s" : ""}`;
21
+ }
22
+ return `${date.toFormat("MM/dd/yyyy")} (${diffString.trim()})`;
23
+ };
24
+ return (_jsx(Text, { style: { fontSize: 16 }, children: annotated ? formatDate(dateVal) : dateVal.toFormat("MM/dd/yyyy") }));
25
+ };
26
+ TableDate.displayName = "TableDate";
27
+ //# sourceMappingURL=TableDate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableDate.js","sourceRoot":"","sources":["../../src/table/TableDate.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAU,QAAQ,EAAC,MAAM,OAAO,CAAC;AACxC,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAIlC,MAAM,CAAC,MAAM,SAAS,GAAuB,CAAC,EAAC,KAAK,EAAE,SAAS,GAAG,KAAK,EAAC,EAAE,EAAE;IAC1E,MAAM,WAAW,GACf,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACnF,MAAM,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAExC,gFAAgF;IAChF,MAAM,UAAU,GAAG,CAAC,IAAc,EAAE,EAAE;QACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEpE,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,UAAU,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;QAC1F,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,UAAU,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;QAC1F,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,UAAU,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACtF,CAAC;QAED,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;IACjE,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,EAAE,EAAC,YACxB,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,GAC5D,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type React from "react";
2
+ import type { TableHeaderProps } from "../Common";
3
+ /**
4
+ * Use TableHeader to group the header content in Table.
5
+ */
6
+ export declare const TableHeader: ({ children, display, color, }: TableHeaderProps) => React.ReactElement;
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from "../Box";
3
+ import { TableRow } from "./TableRow";
4
+ /**
5
+ * Use TableHeader to group the header content in Table.
6
+ */
7
+ export const TableHeader = ({ children, display = "tableHeaderGroup", color, }) => {
8
+ return (_jsx(Box, { color: color !== null && color !== void 0 ? color : "base", display: display === "visuallyHidden" ? "none" : "flex", children: _jsx(TableRow, { headerRow: true, children: children }) }));
9
+ };
10
+ //# sourceMappingURL=TableHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHeader.js","sourceRoot":"","sources":["../../src/table/TableHeader.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,GAAG,EAAC,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,QAAQ,EACR,OAAO,GAAG,kBAAkB,EAC5B,KAAK,GACY,EAAsB,EAAE;IACzC,OAAO,CACL,KAAC,GAAG,IAAC,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,YAClF,KAAC,QAAQ,IAAC,SAAS,kBAAE,QAAQ,GAAY,GACrC,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type ReactElement } from "react";
2
+ import type { TableHeaderCellProps } from "../Common";
3
+ /**
4
+ * Use TableHeaderCell to define a header cell in Table.
5
+ */
6
+ export declare const TableHeaderCell: ({ children, index, sortable, align, title, onSortChange, }: TableHeaderCellProps) => ReactElement;
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // TableHeaderCell.tsx
3
+ import { FontAwesome6 } from "@expo/vector-icons";
4
+ import { useCallback } from "react";
5
+ import { View } from "react-native";
6
+ import { Box } from "../Box";
7
+ import { useTheme } from "../Theme";
8
+ import { TableTitle } from "./TableTitle";
9
+ import { useTableContext } from "./tableContext";
10
+ /**
11
+ * Use TableHeaderCell to define a header cell in Table.
12
+ */
13
+ export const TableHeaderCell = ({ children, index, sortable, align = "left", title, onSortChange, }) => {
14
+ const { theme } = useTheme();
15
+ const { columns, setSortColumn, sortColumn } = useTableContext();
16
+ const width = columns[index];
17
+ if (!width) {
18
+ console.warn(`No width defined for column ${index} in TableHeaderCell`);
19
+ }
20
+ if (children && title) {
21
+ console.warn("Both children and title are defined in TableHeaderCell. Title will be ignored.");
22
+ }
23
+ if (!children && !title) {
24
+ console.error("Either children or title is required in TableHeaderCell");
25
+ }
26
+ const sort = (sortColumn === null || sortColumn === void 0 ? void 0 : sortColumn.column) === index ? sortColumn.direction : undefined;
27
+ let alignItems = "start";
28
+ if (align === "center") {
29
+ alignItems = "center";
30
+ }
31
+ else if (align === "right") {
32
+ alignItems = "end";
33
+ }
34
+ const onClick = useCallback(() => {
35
+ // desc => asc => undefined
36
+ const newSort = sort === "desc" ? "asc" : sort === "asc" ? undefined : "desc";
37
+ if (setSortColumn) {
38
+ setSortColumn(newSort ? { column: index, direction: newSort } : undefined);
39
+ }
40
+ onSortChange === null || onSortChange === void 0 ? void 0 : onSortChange(newSort);
41
+ }, [index, onSortChange, setSortColumn, sort]);
42
+ if (sortable && !onSortChange) {
43
+ console.error("onSortChange is required when sortable is true");
44
+ }
45
+ return (_jsxs(Box, { accessibilityHint: "changes sort alphabetical order", accessibilityLabel: "sort", alignItems: "center", direction: "row", flex: "grow", justifyContent: alignItems, onClick: sortable ? onClick : undefined, children: [Boolean(children) && children, Boolean(title) && _jsx(TableTitle, { align: align, title: title }), Boolean(sort) && (_jsx(Box, { alignSelf: "end", paddingX: 2, children: _jsx(View, { style: {
46
+ alignItems: "center",
47
+ backgroundColor: theme.surface.primary,
48
+ borderRadius: theme.radius.rounded,
49
+ height: 16,
50
+ justifyContent: "center",
51
+ width: 16,
52
+ }, children: _jsx(FontAwesome6, { color: theme.text.inverted, name: sort === "asc" ? "arrow-down" : "arrow-up", selectable: undefined, size: 10, solid: true }) }) }))] }));
53
+ };
54
+ //# sourceMappingURL=TableHeaderCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHeaderCell.js","sourceRoot":"","sources":["../../src/table/TableHeaderCell.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { FC } from "react";
2
+ import type { TableIconButtonProps } from "../Common";
3
+ export declare const TableIconButton: FC<TableIconButtonProps>;
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { View } from "react-native";
3
+ import { IconButton } from "../IconButton";
4
+ export const TableIconButton = ({ tableIconButtonName, onClick }) => {
5
+ const iconButtonMap = {
6
+ drawerClose: {
7
+ accessibilityHint: "Close Drawer",
8
+ accessibilityLabel: "Close Drawer for more Data",
9
+ iconName: "chevron-up",
10
+ variant: "secondary",
11
+ },
12
+ drawerOpen: {
13
+ accessibilityHint: "Open Drawer",
14
+ accessibilityLabel: "Open Drawer for more Data",
15
+ iconName: "chevron-down",
16
+ variant: "muted",
17
+ },
18
+ edit: {
19
+ accessibilityHint: "Edit row",
20
+ accessibilityLabel: "Edit",
21
+ iconName: "pen-to-square",
22
+ variant: "muted",
23
+ },
24
+ insert: {
25
+ accessibilityHint: "Insert Data",
26
+ accessibilityLabel: "Insert Data",
27
+ iconName: "plus",
28
+ variant: "primary",
29
+ },
30
+ saveAndClose: {
31
+ accessibilityHint: "Save and close row",
32
+ accessibilityLabel: "Save and close",
33
+ iconName: "check",
34
+ variant: "secondary",
35
+ },
36
+ };
37
+ return (_jsx(View, { style: { alignItems: "center", justifyContent: "center", width: "100%" }, children: _jsx(IconButton, { accessibilityLabel: iconButtonMap[tableIconButtonName].accessibilityLabel, iconName: iconButtonMap[tableIconButtonName].iconName, onClick: onClick, variant: iconButtonMap[tableIconButtonName].variant }) }));
38
+ };
39
+ //# sourceMappingURL=TableIconButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableIconButton.js","sourceRoot":"","sources":["../../src/table/TableIconButton.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,MAAM,eAAe,GAA6B,CAAC,EAAC,mBAAmB,EAAE,OAAO,EAAC,EAAE,EAAE;IAC1F,MAAM,aAAa,GAQf;QACF,WAAW,EAAE;YACX,iBAAiB,EAAE,cAAc;YACjC,kBAAkB,EAAE,4BAA4B;YAChD,QAAQ,EAAE,YAAY;YACtB,OAAO,EAAE,WAAW;SACrB;QACD,UAAU,EAAE;YACV,iBAAiB,EAAE,aAAa;YAChC,kBAAkB,EAAE,2BAA2B;YAC/C,QAAQ,EAAE,cAAc;YACxB,OAAO,EAAE,OAAO;SACjB;QACD,IAAI,EAAE;YACJ,iBAAiB,EAAE,UAAU;YAC7B,kBAAkB,EAAE,MAAM;YAC1B,QAAQ,EAAE,eAAe;YACzB,OAAO,EAAE,OAAO;SACjB;QACD,MAAM,EAAE;YACN,iBAAiB,EAAE,aAAa;YAChC,kBAAkB,EAAE,aAAa;YACjC,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,SAAS;SACnB;QACD,YAAY,EAAE;YACZ,iBAAiB,EAAE,oBAAoB;YACvC,kBAAkB,EAAE,gBAAgB;YACpC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,WAAW;SACrB;KACF,CAAC;IAEF,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,EAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAC,YAC1E,KAAC,UAAU,IACT,kBAAkB,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,kBAAkB,EACzE,QAAQ,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EACrD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,OAAO,GACnD,GACG,CACR,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FC } from "react";
2
+ import type { TableNumberProps } from "../Common";
3
+ export declare const TableNumber: FC<TableNumberProps>;
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from "react-native";
3
+ import { useTheme } from "../Theme";
4
+ // TODO: Implement isEditing to TableNumber
5
+ export const TableNumber = ({ isEditing, value, align = "right" }) => {
6
+ const { theme } = useTheme();
7
+ if (isEditing) {
8
+ console.warn("isEditing is not implemented yet.");
9
+ }
10
+ return (_jsx(Text, { style: {
11
+ color: theme.text.primary,
12
+ fontFamily: "text",
13
+ fontSize: 14,
14
+ textAlign: align,
15
+ }, children: value }));
16
+ };
17
+ TableNumber.displayName = "TableNumber";
18
+ //# sourceMappingURL=TableNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableNumber.js","sourceRoot":"","sources":["../../src/table/TableNumber.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAElC,2CAA2C;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAyB,CAAC,EAAC,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,EAAC,EAAE,EAAE;IACvF,MAAM,EAAC,KAAK,EAAC,GAAG,QAAQ,EAAE,CAAC;IAE3B,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE;YACL,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;YACzB,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,KAAK;SACjB,YAEA,KAAK,GACD,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import type { TableRowProps } from "../Common";
3
+ /**
4
+ * Use TableRow to define a row in Table.
5
+ */
6
+ export declare const TableRow: ({ children, headerRow, expanded, drawerContents, color, }: TableRowProps) => React.ReactElement;
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { Children, useRef } from "react";
3
+ import { Box } from "../Box";
4
+ import { IconButton } from "../IconButton";
5
+ import { useTableContext } from "./tableContext";
6
+ const TableCell = ({ children, index }) => {
7
+ const { columns } = useTableContext();
8
+ return (_jsx(Box, { justifyContent: "center", marginRight: 2, paddingX: 3, paddingY: 4, width: columns[index], children: children }));
9
+ };
10
+ /**
11
+ * Use TableRow to define a row in Table.
12
+ */
13
+ export const TableRow = ({ children, headerRow = false, expanded, drawerContents, color = "base", }) => {
14
+ const [isExpanded, setIsExpanded] = React.useState(expanded || false);
15
+ const { hasDrawerContents } = useTableContext();
16
+ const rowRef = useRef(null);
17
+ const border = { __style: { borderBottom: `${headerRow ? 2 : 1}px solid #e0e0e0` } };
18
+ return (_jsxs(Box, { color: color, dangerouslySetInlineStyle: border, ref: rowRef, width: "100%", children: [_jsxs(Box, { direction: "row", paddingY: 1, width: "100%", children: [Boolean(drawerContents) && (_jsx(TableCell, { index: -1, children: _jsx(IconButton, { accessibilityHint: "press to expand", accessibilityLabel: "expand", iconName: isExpanded ? "chevron-up" : "chevron-down", onClick: () => {
19
+ setIsExpanded(!isExpanded);
20
+ }, variant: "secondary" }) })), Boolean(hasDrawerContents && !drawerContents) && (_jsx(TableCell, { index: -1, children: _jsx(Box, { width: 32 }) })), Children.map(children, (child, index) => (_jsx(TableCell, { index: index, children: child })))] }), Boolean(isExpanded) && (_jsx(Box, { paddingX: 2, width: "100%", children: drawerContents }))] }));
21
+ };
22
+ //# sourceMappingURL=TableRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../../src/table/TableRow.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAC,GAAG,EAAC,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAE/C,MAAM,SAAS,GAAG,CAAC,EAAC,QAAQ,EAAE,KAAK,EAA6C,EAAE,EAAE;IAClF,MAAM,EAAC,OAAO,EAAC,GAAG,eAAe,EAAE,CAAC;IACpC,OAAO,CACL,KAAC,GAAG,IAAC,cAAc,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,YACzF,QAAQ,GACL,CACP,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,cAAc,EACd,KAAK,GAAG,MAAM,GACA,EAAsB,EAAE;IACtC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;IACtE,MAAM,EAAC,iBAAiB,EAAC,GAAG,eAAe,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAa,IAAI,CAAC,CAAC;IAExC,MAAM,MAAM,GAAG,EAAC,OAAO,EAAE,EAAC,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAC,EAAC,CAAC;IAEjF,OAAO,CACL,MAAC,GAAG,IAAC,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAC,MAAM,aAC7E,MAAC,GAAG,IAAC,SAAS,EAAC,KAAK,EAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAC,MAAM,aAC3C,OAAO,CAAC,cAAc,CAAC,IAAI,CAC1B,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,YAElB,KAAC,UAAU,IACT,iBAAiB,EAAC,iBAAiB,EACnC,kBAAkB,EAAC,QAAQ,EAC3B,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,EACpD,OAAO,EAAE,GAAG,EAAE;gCACZ,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;4BAC7B,CAAC,EACD,OAAO,EAAC,WAAW,GACnB,GACQ,CACb,EAEA,OAAO,CAAC,iBAAiB,IAAI,CAAC,cAAc,CAAC,IAAI,CAChD,KAAC,SAAS,IAAC,KAAK,EAAE,CAAC,CAAC,YAClB,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,GAAI,GACR,CACb,EACA,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACxC,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,YAAG,KAAK,GAAa,CAC7C,CAAC,IACE,EACL,OAAO,CAAC,UAAU,CAAC,IAAI,CACtB,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAC,MAAM,YAC3B,cAAc,GACX,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FC } from "react";
2
+ import type { TableTextProps } from "../Common";
3
+ export declare const TableText: FC<TableTextProps>;
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from "react-native";
3
+ import { useTheme } from "../Theme";
4
+ // TODO: Implement isEditing to TableText
5
+ export const TableText = ({ isEditing, value, align }) => {
6
+ const { theme } = useTheme();
7
+ if (isEditing) {
8
+ console.warn("isEditing is not implemented yet.");
9
+ }
10
+ return (_jsx(Text, { style: {
11
+ color: theme.text.primary,
12
+ fontFamily: "text",
13
+ fontSize: 14,
14
+ textAlign: align,
15
+ }, children: value }));
16
+ };
17
+ TableText.displayName = "TableText";
18
+ //# sourceMappingURL=TableText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableText.js","sourceRoot":"","sources":["../../src/table/TableText.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAElC,yCAAyC;AACzC,MAAM,CAAC,MAAM,SAAS,GAAuB,CAAC,EAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAC,EAAE,EAAE;IACzE,MAAM,EAAC,KAAK,EAAC,GAAG,QAAQ,EAAE,CAAC;IAE3B,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE;YACL,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;YACzB,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,KAAK;SACjB,YAEA,KAAK,GACD,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FC } from "react";
2
+ import type { TableTitleProps } from "../Common";
3
+ export declare const TableTitle: FC<TableTitleProps>;
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from "react-native";
3
+ import { useTheme } from "../Theme";
4
+ export const TableTitle = ({ title, align = "left" }) => {
5
+ const { theme } = useTheme();
6
+ return (
7
+ // No hint needed for a title.
8
+ _jsx(Text, { "aria-label": `Table title: ${title}`, "aria-role": "header", ellipsizeMode: "tail" // ensures that the text is clipped at the end of the line for all platforms
9
+ , numberOfLines: 3, style: {
10
+ color: theme.text.primary,
11
+ flexWrap: "wrap",
12
+ fontFamily: "text",
13
+ fontSize: 10,
14
+ fontWeight: "700",
15
+ lineHeight: 16,
16
+ overflow: "hidden",
17
+ textAlign: align,
18
+ textTransform: "uppercase",
19
+ }, children: title }));
20
+ };
21
+ //# sourceMappingURL=TableTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableTitle.js","sourceRoot":"","sources":["../../src/table/TableTitle.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAElC,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,EAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAC,EAAE,EAAE;IACzE,MAAM,EAAC,KAAK,EAAC,GAAG,QAAQ,EAAE,CAAC;IAC3B,OAAO;IACL,8BAA8B;IAC9B,KAAC,IAAI,kBACS,gBAAgB,KAAK,EAAE,eACzB,QAAQ,EAClB,aAAa,EAAC,MAAM,CAAC,4EAA4E;UACjG,aAAa,EAAE,CAAC,EAChB,KAAK,EAAE;YACL,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;YACzB,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,WAAW;SAC3B,YAEA,KAAK,GACD,CACR,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type React from "react";
2
+ import type { TableContextProviderProps, TableContextType } from "../Common";
3
+ export declare const Provider: React.Provider<TableContextType>;
4
+ export declare const TableContextProvider: ({ children, columns, hasDrawerContents, sortColumn, setSortColumn, stickyHeader, borderStyle, alternateRowBackground, page, }: TableContextProviderProps) => React.ReactElement<typeof Provider>;
5
+ export declare function useTableContext(): TableContextType;
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from "react";
3
+ const TableContext = createContext({
4
+ alternateRowBackground: true,
5
+ borderStyle: "sm",
6
+ columns: [],
7
+ hasDrawerContents: false,
8
+ page: 1,
9
+ setSortColumn: () => { },
10
+ sortColumn: undefined,
11
+ stickyHeader: true,
12
+ });
13
+ export const { Provider } = TableContext;
14
+ export const TableContextProvider = ({ children, columns, hasDrawerContents, sortColumn, setSortColumn, stickyHeader, borderStyle, alternateRowBackground, page, }) => {
15
+ return (_jsx(Provider, { value: {
16
+ alternateRowBackground,
17
+ borderStyle,
18
+ columns,
19
+ hasDrawerContents,
20
+ page,
21
+ setSortColumn,
22
+ sortColumn,
23
+ stickyHeader,
24
+ }, children: children }));
25
+ };
26
+ export function useTableContext() {
27
+ const { columns, hasDrawerContents, setSortColumn, sortColumn, stickyHeader, alternateRowBackground, borderStyle, } = useContext(TableContext);
28
+ return {
29
+ alternateRowBackground,
30
+ borderStyle,
31
+ columns,
32
+ hasDrawerContents,
33
+ setSortColumn,
34
+ sortColumn,
35
+ stickyHeader,
36
+ };
37
+ }
38
+ //# sourceMappingURL=tableContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableContext.js","sourceRoot":"","sources":["../../src/table/tableContext.tsx"],"names":[],"mappings":";AACA,OAAO,EAAe,aAAa,EAAE,UAAU,EAAC,MAAM,OAAO,CAAC;AAI9D,MAAM,YAAY,GAA8B,aAAa,CAAmB;IAC9E,sBAAsB,EAAE,IAAI;IAC5B,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,EAAE;IACX,iBAAiB,EAAE,KAAK;IACxB,IAAI,EAAE,CAAC;IACP,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;IACvB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,IAAI;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAC,QAAQ,EAAC,GAAG,YAAY,CAAC;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,IAAI,GACsB,EAAuC,EAAE;IACnE,OAAO,CACL,KAAC,QAAQ,IACP,KAAK,EAAE;YACL,sBAAsB;YACtB,WAAW;YACX,OAAO;YACP,iBAAiB;YACjB,IAAI;YACJ,aAAa;YACb,UAAU;YACV,YAAY;SACb,YAEA,QAAQ,GACA,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,eAAe;IAC7B,MAAM,EACJ,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,sBAAsB,EACtB,WAAW,GACZ,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7B,OAAO;QACL,sBAAsB;QACtB,WAAW;QACX,OAAO;QACP,iBAAiB;QACjB,aAAa;QACb,UAAU;QACV,YAAY;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const useStoredState: <T>(key: string, initialValue?: T) => [T | undefined, (value: T | undefined) => Promise<void>, boolean];