@onehat/ui 0.3.381 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/package.json +37 -9
  2. package/src/Components/Accordion/Accordion.js +22 -17
  3. package/src/Components/Blank.js +1 -3
  4. package/src/Components/Buttons/BackButton.js +21 -12
  5. package/src/Components/Buttons/Button.js +65 -13
  6. package/src/Components/Buttons/CartButtonWithBadge.js +14 -6
  7. package/src/Components/Buttons/IconButton.js +31 -74
  8. package/src/Components/Buttons/PlusMinusButton.js +34 -21
  9. package/src/Components/Buttons/ReloadButton.js +7 -8
  10. package/src/Components/Buttons/SquareButton.js +41 -55
  11. package/src/Components/Container/Container.js +55 -16
  12. package/src/Components/Container/ScreenContainer.js +26 -16
  13. package/src/Components/Container/Splitter.js +38 -25
  14. package/src/Components/Editor/Editor.js +3 -2
  15. package/src/Components/Editor/InlineEditor.js +38 -32
  16. package/src/Components/Filter/DateRange.js +37 -18
  17. package/src/Components/Filter/NumberRange.js +87 -83
  18. package/src/Components/Form/Field/CKEditor/CKEditor.js +4 -4
  19. package/src/Components/Form/Field/Checkbox/CheckboxGroup.js +9 -6
  20. package/src/Components/Form/Field/Color.js +95 -86
  21. package/src/Components/Form/Field/Combo/Combo.js +347 -284
  22. package/src/Components/Form/Field/Combo/PageSizeCombo.js +4 -7
  23. package/src/Components/Form/Field/Date.js +276 -312
  24. package/src/Components/Form/Field/DisplayField.js +11 -5
  25. package/src/Components/Form/Field/File.js +26 -32
  26. package/src/Components/Form/Field/FormikForm.js +1018 -0
  27. package/src/Components/Form/Field/Input.js +91 -41
  28. package/src/Components/Form/Field/Json.js +25 -21
  29. package/src/Components/Form/Field/Number.js +70 -51
  30. package/src/Components/Form/Field/RadioGroup/RadioGroup.js +4 -6
  31. package/src/Components/Form/Field/Select/PageSizeSelect.js +33 -0
  32. package/src/Components/Form/Field/Select/Select.js +109 -0
  33. package/src/Components/Form/Field/Slider.js +38 -30
  34. package/src/Components/Form/Field/Tag/Tag.js +88 -72
  35. package/src/Components/Form/Field/Tag/ValueBox.js +25 -20
  36. package/src/Components/Form/Field/Text.js +21 -12
  37. package/src/Components/Form/Field/TextArea.js +32 -15
  38. package/src/Components/Form/Field/Toggle.js +42 -24
  39. package/src/Components/Form/FieldSet.js +77 -54
  40. package/src/Components/Form/Form.js +491 -268
  41. package/src/Components/Form/Label.js +28 -17
  42. package/src/Components/Gluestack/accordion/index.tsx +394 -0
  43. package/src/Components/Gluestack/actionsheet/index.tsx +619 -0
  44. package/src/Components/Gluestack/alert/index.tsx +310 -0
  45. package/src/Components/Gluestack/alert-dialog/index.tsx +295 -0
  46. package/src/Components/Gluestack/avatar/index.tsx +190 -0
  47. package/src/Components/Gluestack/badge/index.tsx +272 -0
  48. package/src/Components/Gluestack/bottomsheet/index.tsx +294 -0
  49. package/src/Components/Gluestack/box/index.tsx +19 -0
  50. package/src/Components/Gluestack/box/index.web.tsx +18 -0
  51. package/src/Components/Gluestack/box/styles.tsx +10 -0
  52. package/src/Components/Gluestack/button/index.tsx +494 -0
  53. package/src/Components/Gluestack/card/index.tsx +23 -0
  54. package/src/Components/Gluestack/card/index.web.tsx +22 -0
  55. package/src/Components/Gluestack/card/styles.tsx +20 -0
  56. package/src/Components/Gluestack/center/index.tsx +22 -0
  57. package/src/Components/Gluestack/center/index.web.tsx +19 -0
  58. package/src/Components/Gluestack/center/styles.tsx +8 -0
  59. package/src/Components/Gluestack/checkbox/index.tsx +305 -0
  60. package/src/Components/Gluestack/divider/index.tsx +44 -0
  61. package/src/Components/Gluestack/drawer/index.tsx +354 -0
  62. package/src/Components/Gluestack/fab/index.tsx +286 -0
  63. package/src/Components/Gluestack/flat-list/index.tsx +2 -0
  64. package/src/Components/Gluestack/form-control/index.tsx +527 -0
  65. package/src/Components/Gluestack/gluestack-ui-provider/config.ts +332 -0
  66. package/src/Components/Gluestack/gluestack-ui-provider/index.tsx +47 -0
  67. package/src/Components/Gluestack/gluestack-ui-provider/index.web.tsx +94 -0
  68. package/src/Components/Gluestack/gluestack-ui-provider/script.ts +19 -0
  69. package/src/Components/Gluestack/grid/index.tsx +341 -0
  70. package/src/Components/Gluestack/grid/index.web.tsx +65 -0
  71. package/src/Components/Gluestack/grid/styles.tsx +15 -0
  72. package/src/Components/Gluestack/heading/index.tsx +212 -0
  73. package/src/Components/Gluestack/heading/index.web.tsx +203 -0
  74. package/src/Components/Gluestack/heading/styles.tsx +43 -0
  75. package/src/Components/Gluestack/hstack/index.tsx +23 -0
  76. package/src/Components/Gluestack/hstack/index.web.tsx +22 -0
  77. package/src/Components/Gluestack/hstack/styles.tsx +25 -0
  78. package/src/Components/Gluestack/image/index.tsx +52 -0
  79. package/src/Components/Gluestack/image-background/index.tsx +21 -0
  80. package/src/Components/Gluestack/index.js +116 -0
  81. package/src/Components/Gluestack/input/index.tsx +287 -0
  82. package/src/Components/Gluestack/input-accessory-view/index.tsx +2 -0
  83. package/src/Components/Gluestack/keyboard-avoiding-view/index.tsx +2 -0
  84. package/src/Components/Gluestack/link/index.tsx +107 -0
  85. package/src/Components/Gluestack/menu/index.tsx +210 -0
  86. package/src/Components/Gluestack/modal/index.tsx +279 -0
  87. package/src/Components/Gluestack/popover/index.tsx +352 -0
  88. package/src/Components/Gluestack/portal/index.tsx +13 -0
  89. package/src/Components/Gluestack/pressable/index.tsx +46 -0
  90. package/src/Components/Gluestack/progress/index.tsx +164 -0
  91. package/src/Components/Gluestack/radio/index.tsx +304 -0
  92. package/src/Components/Gluestack/refresh-control/index.tsx +2 -0
  93. package/src/Components/Gluestack/safe-area-view/index.tsx +2 -0
  94. package/src/Components/Gluestack/scroll-view/index.tsx +2 -0
  95. package/src/Components/Gluestack/section-list/index.tsx +2 -0
  96. package/src/Components/Gluestack/select/index.tsx +335 -0
  97. package/src/Components/Gluestack/select/select-actionsheet.tsx +584 -0
  98. package/src/Components/Gluestack/skeleton/index.tsx +138 -0
  99. package/src/Components/Gluestack/skeleton/index.web.tsx +103 -0
  100. package/src/Components/Gluestack/skeleton/styles.tsx +35 -0
  101. package/src/Components/Gluestack/slider/index.tsx +283 -0
  102. package/src/Components/Gluestack/spinner/index.tsx +34 -0
  103. package/src/Components/Gluestack/status-bar/index.tsx +2 -0
  104. package/src/Components/Gluestack/switch/index.tsx +55 -0
  105. package/src/Components/Gluestack/table/index.tsx +200 -0
  106. package/src/Components/Gluestack/table/index.web.tsx +142 -0
  107. package/src/Components/Gluestack/table/styles.tsx +44 -0
  108. package/src/Components/Gluestack/text/index.tsx +48 -0
  109. package/src/Components/Gluestack/text/index.web.tsx +45 -0
  110. package/src/Components/Gluestack/text/styles.tsx +47 -0
  111. package/src/Components/Gluestack/textarea/index.tsx +108 -0
  112. package/src/Components/Gluestack/toast/index.tsx +225 -0
  113. package/src/Components/Gluestack/tooltip/index.tsx +125 -0
  114. package/src/Components/Gluestack/utils/use-break-point-value.ts +101 -0
  115. package/src/Components/Gluestack/view/index.tsx +2 -0
  116. package/src/Components/Gluestack/virtualized-list/index.tsx +2 -0
  117. package/src/Components/Gluestack/vstack/index.tsx +24 -0
  118. package/src/Components/Gluestack/vstack/index.web.tsx +23 -0
  119. package/src/Components/Gluestack/vstack/styles.tsx +25 -0
  120. package/src/Components/Grid/Grid.js +192 -135
  121. package/src/Components/Grid/GridHeaderRow.js +51 -59
  122. package/src/Components/Grid/GridRow.js +152 -58
  123. package/src/Components/Grid/HeaderColumnSelectorHandle.js +16 -10
  124. package/src/Components/Grid/HeaderReorderHandle.js +17 -13
  125. package/src/Components/Grid/HeaderResizeHandle.js +17 -13
  126. package/src/Components/Grid/NoRecordsFound.js +15 -18
  127. package/src/Components/Grid/RowDragHandle.js +9 -13
  128. package/src/Components/Hoc/Secondary/withSecondaryEditor.js +14 -9
  129. package/src/Components/Hoc/Secondary/withSecondaryWindowedEditor.js +14 -11
  130. package/src/Components/Hoc/withAlert.js +150 -200
  131. package/src/Components/Hoc/withBlank.js +4 -6
  132. package/src/Components/Hoc/withCollapsible.js +4 -3
  133. package/src/Components/Hoc/withComponent.js +33 -6
  134. package/src/Components/Hoc/withContextMenu.js +133 -141
  135. package/src/Components/Hoc/withData.js +5 -4
  136. package/src/Components/Hoc/withDnd.js +11 -9
  137. package/src/Components/Hoc/withDraggable.js +10 -10
  138. package/src/Components/Hoc/withEditor.js +18 -13
  139. package/src/Components/Hoc/withEvents.js +4 -6
  140. package/src/Components/Hoc/withFilters.js +524 -498
  141. package/src/Components/Hoc/withInlineEditor.js +7 -5
  142. package/src/Components/Hoc/withModal.js +79 -137
  143. package/src/Components/Hoc/withMultiSelection.js +4 -2
  144. package/src/Components/Hoc/withPdfButtons.js +109 -111
  145. package/src/Components/Hoc/withPresetButtons.js +49 -53
  146. package/src/Components/Hoc/withSelection.js +6 -5
  147. package/src/Components/Hoc/withSideEditor.js +12 -6
  148. package/src/Components/Hoc/withTooltip.js +18 -12
  149. package/src/Components/Hoc/withValue.js +6 -5
  150. package/src/Components/Hoc/withWindowedEditor.js +13 -11
  151. package/src/Components/Icons/AddressBook.js +7 -10
  152. package/src/Components/Icons/Alt.js +8 -15
  153. package/src/Components/Icons/AngleLeft.js +7 -14
  154. package/src/Components/Icons/AngleRight.js +7 -14
  155. package/src/Components/Icons/AnglesLeft.js +7 -14
  156. package/src/Components/Icons/AnglesRight.js +7 -14
  157. package/src/Components/Icons/Asterisk.js +7 -10
  158. package/src/Components/Icons/Ban.js +9 -14
  159. package/src/Components/Icons/Bars.js +7 -10
  160. package/src/Components/Icons/BarsStaggered.js +7 -10
  161. package/src/Components/Icons/Bell.js +7 -19
  162. package/src/Components/Icons/BigCircle.js +7 -14
  163. package/src/Components/Icons/Book.js +7 -10
  164. package/src/Components/Icons/BookOpen.js +7 -10
  165. package/src/Components/Icons/Bookmark.js +8 -17
  166. package/src/Components/Icons/Bug.js +7 -10
  167. package/src/Components/Icons/Building.js +7 -10
  168. package/src/Components/Icons/Calendar.js +7 -14
  169. package/src/Components/Icons/Calendar2.js +7 -14
  170. package/src/Components/Icons/CalendarDays.js +7 -14
  171. package/src/Components/Icons/Camera.js +7 -14
  172. package/src/Components/Icons/CaretDown.js +7 -14
  173. package/src/Components/Icons/CaretUp.js +7 -14
  174. package/src/Components/Icons/CartPlus.js +7 -10
  175. package/src/Components/Icons/CartShopping.js +7 -10
  176. package/src/Components/Icons/CashRegister.js +7 -10
  177. package/src/Components/Icons/Certificate.js +7 -10
  178. package/src/Components/Icons/ChartLine.js +7 -10
  179. package/src/Components/Icons/ChartPie.js +7 -10
  180. package/src/Components/Icons/Check.js +7 -10
  181. package/src/Components/Icons/CheckDouble.js +7 -10
  182. package/src/Components/Icons/ChevronDown.js +7 -10
  183. package/src/Components/Icons/ChevronLeft.js +7 -10
  184. package/src/Components/Icons/ChevronRight.js +7 -10
  185. package/src/Components/Icons/ChevronUp.js +7 -10
  186. package/src/Components/Icons/Circle.js +7 -10
  187. package/src/Components/Icons/CircleArrowRight.js +7 -10
  188. package/src/Components/Icons/CircleExclamation.js +7 -14
  189. package/src/Components/Icons/CircleInfo.js +7 -10
  190. package/src/Components/Icons/CircleQuestion.js +7 -10
  191. package/src/Components/Icons/CircleXmark.js +7 -10
  192. package/src/Components/Icons/CircleXmarkRegular.js +7 -10
  193. package/src/Components/Icons/Clipboard.js +7 -14
  194. package/src/Components/Icons/ClipboardCheck.js +7 -17
  195. package/src/Components/Icons/ClipboardList.js +7 -16
  196. package/src/Components/Icons/Clock.js +7 -10
  197. package/src/Components/Icons/ClockRegular.js +7 -10
  198. package/src/Components/Icons/ClockRotateLeft.js +7 -10
  199. package/src/Components/Icons/Clone.js +7 -10
  200. package/src/Components/Icons/Collapse.js +7 -14
  201. package/src/Components/Icons/Comment.js +7 -10
  202. package/src/Components/Icons/CommentDots.js +7 -10
  203. package/src/Components/Icons/CommentRegular.js +7 -10
  204. package/src/Components/Icons/Comments.js +7 -10
  205. package/src/Components/Icons/CommentsRegular.js +7 -10
  206. package/src/Components/Icons/Copyright.js +7 -10
  207. package/src/Components/Icons/Dot.js +10 -15
  208. package/src/Components/Icons/Download.js +11 -0
  209. package/src/Components/Icons/Duplicate.js +7 -14
  210. package/src/Components/Icons/Edit.js +7 -14
  211. package/src/Components/Icons/EllipsisHorizontal.js +7 -16
  212. package/src/Components/Icons/EllipsisVertical.js +7 -14
  213. package/src/Components/Icons/Envelope.js +7 -10
  214. package/src/Components/Icons/EnvelopeRegular.js +7 -10
  215. package/src/Components/Icons/Excel.js +7 -10
  216. package/src/Components/Icons/Exclamation.js +7 -10
  217. package/src/Components/Icons/Expand.js +7 -10
  218. package/src/Components/Icons/Eye.js +7 -14
  219. package/src/Components/Icons/EyeSlash.js +7 -10
  220. package/src/Components/Icons/File.js +7 -14
  221. package/src/Components/Icons/FloppyDiskRegular.js +7 -10
  222. package/src/Components/Icons/Folder.js +7 -10
  223. package/src/Components/Icons/FolderClosed.js +7 -10
  224. package/src/Components/Icons/FolderOpen.js +7 -10
  225. package/src/Components/Icons/FolderTree.js +7 -10
  226. package/src/Components/Icons/FullWidth.js +10 -25
  227. package/src/Components/Icons/Gauge.js +7 -17
  228. package/src/Components/Icons/Gear.js +7 -14
  229. package/src/Components/Icons/Gears.js +7 -10
  230. package/src/Components/Icons/Gift.js +7 -10
  231. package/src/Components/Icons/Grip.js +7 -14
  232. package/src/Components/Icons/GripLines.js +7 -14
  233. package/src/Components/Icons/GripLinesVertical.js +7 -14
  234. package/src/Components/Icons/GripVertical.js +7 -14
  235. package/src/Components/Icons/Hammer.js +7 -10
  236. package/src/Components/Icons/Hand.js +7 -10
  237. package/src/Components/Icons/HighPriority.js +7 -17
  238. package/src/Components/Icons/House.js +7 -10
  239. package/src/Components/Icons/Images.js +7 -10
  240. package/src/Components/Icons/Info.js +7 -10
  241. package/src/Components/Icons/ItunesNote.js +7 -10
  242. package/src/Components/Icons/Js.js +7 -16
  243. package/src/Components/Icons/Leaf.js +7 -10
  244. package/src/Components/Icons/Link.js +7 -9
  245. package/src/Components/Icons/List.js +7 -10
  246. package/src/Components/Icons/ListCheck.js +7 -10
  247. package/src/Components/Icons/LocationDot.js +7 -10
  248. package/src/Components/Icons/Loop.js +7 -14
  249. package/src/Components/Icons/Loop1.js +8 -13
  250. package/src/Components/Icons/LoopAll.js +8 -13
  251. package/src/Components/Icons/LowPriority.js +7 -17
  252. package/src/Components/Icons/MagnifyingGlass.js +7 -10
  253. package/src/Components/Icons/Maximize.js +7 -10
  254. package/src/Components/Icons/MedPriority.js +7 -17
  255. package/src/Components/Icons/Microphone.js +7 -10
  256. package/src/Components/Icons/Minimize.js +7 -10
  257. package/src/Components/Icons/Minus.js +7 -14
  258. package/src/Components/Icons/MobileScreenButton.js +7 -10
  259. package/src/Components/Icons/MoneyBill.js +7 -10
  260. package/src/Components/Icons/MoneyBillWave.js +7 -10
  261. package/src/Components/Icons/Mouth.js +10 -21
  262. package/src/Components/Icons/Music.js +7 -10
  263. package/src/Components/Icons/Na.js +7 -14
  264. package/src/Components/Icons/NoLoop.js +11 -13
  265. package/src/Components/Icons/NoReorderRows.js +17 -22
  266. package/src/Components/Icons/ObjectGroupRegular.js +7 -10
  267. package/src/Components/Icons/Pause.js +7 -10
  268. package/src/Components/Icons/Pdf.js +7 -10
  269. package/src/Components/Icons/Pencil.js +7 -14
  270. package/src/Components/Icons/Phone.js +7 -10
  271. package/src/Components/Icons/Play.js +7 -10
  272. package/src/Components/Icons/Plus.js +7 -14
  273. package/src/Components/Icons/Presentation.js +7 -16
  274. package/src/Components/Icons/Print.js +7 -14
  275. package/src/Components/Icons/Question.js +7 -10
  276. package/src/Components/Icons/Rate-.25x.js +12 -17
  277. package/src/Components/Icons/Rate-.5x.js +11 -16
  278. package/src/Components/Icons/Rate-.75x.js +8 -13
  279. package/src/Components/Icons/Rate-1.25x.js +8 -13
  280. package/src/Components/Icons/Rate-1.5x.js +8 -13
  281. package/src/Components/Icons/Rate-1.75x.js +8 -13
  282. package/src/Components/Icons/Rate-1x.js +11 -16
  283. package/src/Components/Icons/Rate-2x.js +8 -13
  284. package/src/Components/Icons/RateIcon-.25x.js +8 -13
  285. package/src/Components/Icons/RateIcon-.5x.js +11 -16
  286. package/src/Components/Icons/RateIcon-.75x.js +8 -13
  287. package/src/Components/Icons/RateIcon-1.25x.js +8 -13
  288. package/src/Components/Icons/RateIcon-1.5x.js +8 -13
  289. package/src/Components/Icons/RateIcon-1.75x.js +8 -13
  290. package/src/Components/Icons/RateIcon-1x.js +8 -13
  291. package/src/Components/Icons/RateIcon-2x.js +8 -13
  292. package/src/Components/Icons/RectangleXmark.js +7 -10
  293. package/src/Components/Icons/RectangleXmarkRegular.js +7 -10
  294. package/src/Components/Icons/ReorderRows.js +8 -13
  295. package/src/Components/Icons/RightFromBracket.js +7 -10
  296. package/src/Components/Icons/RightLeft.js +7 -10
  297. package/src/Components/Icons/RightToBracket.js +7 -10
  298. package/src/Components/Icons/Rotate.js +7 -14
  299. package/src/Components/Icons/RotateLeft.js +7 -10
  300. package/src/Components/Icons/RotateRight.js +7 -14
  301. package/src/Components/Icons/ScrewdriverWrench.js +7 -10
  302. package/src/Components/Icons/Scroll.js +7 -10
  303. package/src/Components/Icons/Share.js +7 -10
  304. package/src/Components/Icons/Shop.js +7 -10
  305. package/src/Components/Icons/SideBySide.js +7 -20
  306. package/src/Components/Icons/SortDown.js +7 -10
  307. package/src/Components/Icons/SortDownAlt.js +7 -10
  308. package/src/Components/Icons/SortUp.js +7 -10
  309. package/src/Components/Icons/SortUpAlt.js +7 -14
  310. package/src/Components/Icons/Square.js +7 -10
  311. package/src/Components/Icons/SquareCheck.js +7 -10
  312. package/src/Components/Icons/SquareCheckRegular.js +7 -10
  313. package/src/Components/Icons/SquareMinus.js +7 -14
  314. package/src/Components/Icons/SquareRegular.js +7 -10
  315. package/src/Components/Icons/Store.js +7 -10
  316. package/src/Components/Icons/Table.js +7 -16
  317. package/src/Components/Icons/ThumbsDown.js +7 -10
  318. package/src/Components/Icons/ThumbsDownRegular.js +7 -10
  319. package/src/Components/Icons/ThumbsUp.js +7 -10
  320. package/src/Components/Icons/ThumbsUpRegular.js +7 -10
  321. package/src/Components/Icons/Trash.js +7 -14
  322. package/src/Components/Icons/TrashCan.js +7 -14
  323. package/src/Components/Icons/TriangleExclamation.js +7 -14
  324. package/src/Components/Icons/Truck.js +7 -10
  325. package/src/Components/Icons/TruckFast.js +7 -10
  326. package/src/Components/Icons/Upload.js +11 -0
  327. package/src/Components/Icons/UploadDownload.js +11 -11
  328. package/src/Components/Icons/User.js +7 -10
  329. package/src/Components/Icons/UserGroup.js +7 -10
  330. package/src/Components/Icons/UserPlus.js +7 -10
  331. package/src/Components/Icons/UserSecret.js +7 -10
  332. package/src/Components/Icons/Video.js +7 -16
  333. package/src/Components/Icons/X.js +7 -10
  334. package/src/Components/Icons/Xmark.js +7 -10
  335. package/src/Components/Layout/CenterBox.js +13 -9
  336. package/src/Components/Layout/Footer.js +20 -13
  337. package/src/Components/Messages/ConfirmationMessage.js +30 -13
  338. package/src/Components/Messages/ErrorMessage.js +29 -23
  339. package/src/Components/Messages/Loading.js +10 -8
  340. package/src/Components/Messages/OkMessage.js +30 -13
  341. package/src/Components/Messages/Unauthorized.js +5 -8
  342. package/src/Components/Messages/WaitMessage.js +37 -73
  343. package/src/Components/Panel/AccordionGridPanel.js +6 -6
  344. package/src/Components/Panel/FormPanel.js +7 -3
  345. package/src/Components/Panel/Header.js +132 -94
  346. package/src/Components/Panel/Mask.js +4 -4
  347. package/src/Components/Panel/Panel.js +55 -72
  348. package/src/Components/Panel/TabPanel.js +1 -1
  349. package/src/Components/Picker/Picker.js +10 -9
  350. package/src/Components/Report/Report.js +17 -14
  351. package/src/Components/Screens/Manager.js +22 -22
  352. package/src/Components/Tab/TabBar.js +293 -225
  353. package/src/Components/Toolbar/FilterToolbar.js +15 -11
  354. package/src/Components/Toolbar/Pagination.js +51 -46
  355. package/src/Components/Toolbar/PaginationToolbar.js +25 -19
  356. package/src/Components/Toolbar/Toolbar.js +26 -13
  357. package/src/Components/Tooltip/Tooltip.js +35 -0
  358. package/src/Components/Tree/Tree.js +134 -140
  359. package/src/Components/Tree/TreeNode.js +75 -36
  360. package/src/Components/Viewer/Viewer.js +203 -80
  361. package/src/Components/Window/Editor.js +0 -5
  362. package/src/Components/Window/UploadsDownloadsWindow.js +40 -22
  363. package/src/Components/index.js +11 -8
  364. package/src/Constants/Alert.js +0 -0
  365. package/src/Constants/AppStates.js +0 -0
  366. package/src/Constants/Colors.js +13 -0
  367. package/src/Constants/Commands.js +0 -0
  368. package/src/Constants/Date.js +0 -0
  369. package/src/Constants/Dates.js +16 -0
  370. package/src/Constants/Directions.js +0 -0
  371. package/src/Constants/Editor.js +0 -0
  372. package/src/Constants/EditorModes.js +2 -0
  373. package/src/Constants/File.js +0 -0
  374. package/src/Constants/Filters.js +0 -0
  375. package/src/Constants/Grid.js +0 -0
  376. package/src/Constants/Input.js +1 -0
  377. package/src/Constants/MimeTypes.js +0 -0
  378. package/src/Constants/Selection.js +0 -0
  379. package/src/Constants/Styles.js +119 -108
  380. package/src/Constants/Tasks.js +3 -0
  381. package/src/Constants/Tree.js +0 -0
  382. package/src/Constants/UiModes.js +4 -3
  383. package/src/Functions/BankersRound.js +0 -0
  384. package/src/Functions/Cypress/button_functions.js +0 -0
  385. package/src/Functions/Cypress/crud_functions.js +0 -0
  386. package/src/Functions/Cypress/dom_functions.js +0 -0
  387. package/src/Functions/Cypress/grid_functions.js +0 -0
  388. package/src/Functions/Cypress/navigation_functions.js +0 -0
  389. package/src/Functions/Cypress/tree_functions.js +0 -0
  390. package/src/Functions/Cypress/utilities.js +0 -0
  391. package/src/Functions/PlatformDetector.js +0 -0
  392. package/src/Functions/Timer.js +0 -0
  393. package/src/Functions/buildAdditionalButtons.js +5 -5
  394. package/src/Functions/chunkArray.js +0 -0
  395. package/src/Functions/colorConversions.js +74 -0
  396. package/src/Functions/delay.js +0 -0
  397. package/src/Functions/delayUntil.js +0 -0
  398. package/src/Functions/deleteSaved.js +0 -0
  399. package/src/Functions/deleteSecure.js +0 -0
  400. package/src/Functions/downloadInBackground.js +0 -0
  401. package/src/Functions/downloadWithFetch.js +0 -0
  402. package/src/Functions/emptyFn.js +0 -0
  403. package/src/Functions/getComponentFromType.js +0 -0
  404. package/src/Functions/getIconButtonFromConfig.js +5 -9
  405. package/src/Functions/getIsMobile.js +0 -0
  406. package/src/Functions/getNodeIcon.js +28 -0
  407. package/src/Functions/getPref.js +0 -0
  408. package/src/Functions/getSaved.js +0 -0
  409. package/src/Functions/getSecure.js +0 -0
  410. package/src/Functions/getTokenHeaders.js +0 -0
  411. package/src/Functions/gsToHex.js +205 -0
  412. package/src/Functions/ignoreWanings.js +46 -0
  413. package/src/Functions/inArray.js +0 -0
  414. package/src/Functions/isJson.js +0 -0
  415. package/src/Functions/isSerializable.js +0 -0
  416. package/src/Functions/isVideo.js +0 -0
  417. package/src/Functions/jsonValidator.js +0 -0
  418. package/src/Functions/nbToRgb.js +1 -1
  419. package/src/Functions/objectToClassName.js +72 -0
  420. package/src/Functions/parseNotification.js +0 -0
  421. package/src/Functions/processImage.js +0 -0
  422. package/src/Functions/registerReactNativeComponents.js +0 -0
  423. package/src/Functions/registerWebComponents.js +0 -0
  424. package/src/Functions/setCustomInflector.js +0 -0
  425. package/src/Functions/setPref.js +0 -0
  426. package/src/Functions/setProgress.js +0 -0
  427. package/src/Functions/setSaved.js +0 -0
  428. package/src/Functions/setSecure.js +0 -0
  429. package/src/Functions/setThemeOverrides.js +0 -0
  430. package/src/Functions/setUiSavesRepo.js +0 -0
  431. package/src/Functions/sleep.js +0 -0
  432. package/src/Functions/tailwindFunctions.js +384 -0
  433. package/src/Functions/testProps.js +0 -0
  434. package/src/Functions/trackEngagementHit.js +0 -0
  435. package/src/Functions/verifyCompleted.js +0 -0
  436. package/src/Functions/waitFor.js +2 -2
  437. package/src/PlatformImports/Web/Attachments.js +32 -38
  438. package/src/PlatformImports/Web/File.js +38 -31
  439. package/src/UiGlobals.js +8 -1
  440. package/src/Components/Grid/ColumnSelectorWindow.js +0 -125
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onehat/ui",
3
- "version": "0.3.381",
3
+ "version": "0.4.0",
4
4
  "description": "Base UI for OneHat apps",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -25,25 +25,53 @@
25
25
  },
26
26
  "license": "UNLICENSED",
27
27
  "dependencies": {
28
- "@gluestack-style/animation-resolver": "^1.0.4",
29
- "@gluestack-style/react": "^1.0.56",
30
- "@gluestack-ui/config": "^1.1.18",
31
- "@gluestack-ui/themed": "^1.1.26",
28
+ "@gluestack-ui/accordion": "^1.0.8",
29
+ "@gluestack-ui/actionsheet": "^0.2.46",
30
+ "@gluestack-ui/alert": "^0.1.16",
31
+ "@gluestack-ui/alert-dialog": "^0.1.32",
32
+ "@gluestack-ui/avatar": "^0.1.18",
33
+ "@gluestack-ui/button": "^1.0.8",
34
+ "@gluestack-ui/checkbox": "^0.1.33",
35
+ "@gluestack-ui/divider": "^0.1.10",
36
+ "@gluestack-ui/fab": "^0.1.22",
37
+ "@gluestack-ui/form-control": "^0.1.19",
38
+ "@gluestack-ui/icon": "^0.1.23",
39
+ "@gluestack-ui/image": "^0.1.11",
40
+ "@gluestack-ui/input": "^0.1.32",
41
+ "@gluestack-ui/link": "^0.1.23",
42
+ "@gluestack-ui/menu": "^0.2.37",
43
+ "@gluestack-ui/modal": "^0.1.35",
44
+ "@gluestack-ui/nativewind-utils": "^1.0.25",
45
+ "@gluestack-ui/overlay": "^0.1.15",
46
+ "@gluestack-ui/popover": "^0.1.42",
47
+ "@gluestack-ui/pressable": "^0.1.17",
48
+ "@gluestack-ui/progress": "^0.1.18",
49
+ "@gluestack-ui/radio": "^0.1.34",
50
+ "@gluestack-ui/select": "^0.1.30",
51
+ "@gluestack-ui/slider": "^0.1.26",
52
+ "@gluestack-ui/spinner": "^0.1.15",
53
+ "@gluestack-ui/switch": "^0.1.23",
54
+ "@gluestack-ui/textarea": "^0.1.24",
55
+ "@gluestack-ui/toast": "^1.0.8",
56
+ "@gluestack-ui/tooltip": "^0.1.35",
32
57
  "@hookform/resolvers": "^3.3.1",
33
58
  "@k-renwick/colour-mixer": "^1.2.1",
34
- "@onehat/data": "^1.21.18",
59
+ "@onehat/data": "^1.21.19",
60
+ "nativewind": "4.0.36",
61
+ "normalize-css-color": "^1.0.2",
35
62
  "@react-native-community/slider": "^4.5.2",
36
- "@reduxjs/toolkit": "^1.9.5",
63
+ "@reduxjs/toolkit": "^2.2.3",
64
+ "decimal.js": "^10.4.3",
37
65
  "inflector-js": "^1.0.1",
38
66
  "js-cookie": "^3.0.5",
39
67
  "native-base": "^3.4.28",
40
68
  "react-hook-form": "^7.49.2",
41
- "react-redux": "^8.1.2",
69
+ "tailwindcss": "^3.4.13",
42
70
  "yup": "^1.2.0"
43
71
  },
44
72
  "peerDependencies": {
73
+ "@ckeditor/ckeditor5-react": "^6.3.0",
45
74
  "@files-ui/react": "^1.0.8",
46
- "ckeditor5-custom-build": "file:ckeditor5",
47
75
  "locutus": "^2.0.16",
48
76
  "react": "*",
49
77
  "react-color": "^2.19.3",
@@ -1,12 +1,11 @@
1
1
  import { useState, useEffect, useRef, } from 'react';
2
2
  import {
3
- Box,
4
- Column,
5
- Pressable,
6
- Row,
3
+ HStack,
7
4
  ScrollView,
8
- Text,
9
- } from 'native-base';
5
+ Pressable,
6
+ VStack,
7
+ VStackNative,
8
+ } from '../Gluestack';
10
9
  import inArray from '../../Functions/inArray.js';
11
10
  import emptyFn from '../../Functions/emptyFn.js';
12
11
  import _ from 'lodash';
@@ -73,7 +72,7 @@ export default function Accordion(props) {
73
72
  rowProps.overflow = 'hidden'; // otherwise some elements mistakenly show
74
73
  }
75
74
 
76
- return <Column key={ix}>
75
+ return <VStack key={ix}>
77
76
  <Pressable
78
77
  onPress={(e) => {
79
78
  let newActiveSections = [];
@@ -94,10 +93,10 @@ export default function Accordion(props) {
94
93
  >
95
94
  {header}
96
95
  </Pressable>
97
- <Row {...rowProps} bg="#f00">
96
+ <HStack {...rowProps} className="bg-[#f00]">
98
97
  {content}
99
- </Row>
100
- </Column>;
98
+ </HStack>
99
+ </VStack>;
101
100
  });
102
101
 
103
102
  useEffect(() => {
@@ -116,16 +115,21 @@ export default function Accordion(props) {
116
115
  if (activeSections?.length && sections?.length) {
117
116
  scrollTo = sectionHeight * activeIx;
118
117
  }
119
- setTimeout(()=> {
120
- scrollView.scrollTo({ x: 0, y: scrollTo, animated: true });
121
- }, 10); // delay so render can finish
118
+ if (scrollView) {
119
+ setTimeout(()=> {
120
+ scrollView.scrollTo({ x: 0, y: scrollTo, animated: true });
121
+ }, 10); // delay so render can finish
122
+ }
122
123
 
123
124
  }, [activeSections, isRendered]);
124
125
 
125
- return <ScrollView ref={scrollViewRef} keyboardShouldPersistTaps="always" flex={1} w="100%">
126
- <Column
126
+ return <ScrollView
127
+ ref={scrollViewRef}
128
+ keyboardShouldPersistTaps="always"
129
+ className="flex-1 w-full"
130
+ >
131
+ <VStackNative
127
132
  {...propsToPass}
128
- pb={(onlyOne ? calculateExtraPadding() : 0) + 'px'}
129
133
  onLayout={(e) => {
130
134
  if (!containerInitialHeight) {
131
135
  const { height } = e.nativeEvent.layout;
@@ -136,8 +140,9 @@ export default function Accordion(props) {
136
140
  }
137
141
  setIsRendered(true);
138
142
  }}
143
+ className={` pb-${(onlyOne ? calculateExtraPadding() : 0) + 'px'} `}
139
144
  >
140
145
  {items}
141
- </Column>
146
+ </VStackNative>
142
147
  </ScrollView>;
143
148
  }
@@ -1,6 +1,4 @@
1
- import {
2
- Box,
3
- } from 'native-base';
1
+ import { Box } from './Gluestack';
4
2
  import _ from 'lodash';
5
3
 
6
4
  export default function Blank(props) {
@@ -1,18 +1,27 @@
1
+ import { forwardRef } from 'react';
1
2
  import {
2
3
  Icon,
3
- Pressable,
4
- Text,
5
- } from 'native-base';
4
+ } from '../Gluestack';
5
+ import Button from './Button';
6
6
  import AngleLeft from '../Icons/AngleLeft.js';
7
7
 
8
- export default function BackButton(props) {
8
+ const BackButton = forwardRef((props, ref) => {
9
9
  const {
10
- color = '',
11
- ...propsToPass
12
- } = props;
13
- return <Pressable flexDirection="row" justifyContent="flex-start" alignItems="center" pr={5} {...propsToPass}>
14
- <Icon as={AngleLeft} color={color} size="sm" mr={1} />
15
- <Text fontSize={18} color={color} left={-1}>Back</Text>
16
- </Pressable>;
17
- }
10
+ color = 'grey-500',
11
+ ...propsToPass
12
+ } = props,
13
+ icon = <Icon as={AngleLeft} className={`text-${color} mr-1`} />;
18
14
 
15
+ return <Button
16
+ {...propsToPass}
17
+ ref={ref}
18
+ icon={icon}
19
+ text="Back"
20
+ _text={{
21
+ className: `text-${color} text-[18px] -left-1`,
22
+ }}
23
+ className="flex-row justify-start items-center pr-[5px]"
24
+ />;
25
+ });
26
+
27
+ export default BackButton;
@@ -1,25 +1,77 @@
1
- import { useRef, } from 'react';
1
+ import { cloneElement, forwardRef, isValidElement, useRef } from 'react';
2
2
  import {
3
3
  Button,
4
- } from 'native-base';
4
+ ButtonText,
5
+ ButtonSpinner,
6
+ ButtonIcon,
7
+ ButtonGroup,
8
+ Tooltip,
9
+ } from '../Gluestack';
5
10
  import withComponent from '../Hoc/withComponent.js';
11
+ import withTooltip from '../Hoc/withTooltip.js';
12
+ import _ from 'lodash';
6
13
 
7
- const ButtonComponent = function(props) {
8
- const {
14
+ const ButtonComponent = forwardRef((props, ref) => {
15
+ let {
9
16
  self,
10
- text,
11
- } = props,
12
- buttonRef = useRef();
17
+ text, // the text to display on the button
18
+ isLoading = false, // show a spinner?
19
+ icon = null, // an actual icon element
20
+ rightIcon = null, // an actual icon element
21
+ _spinner = {}, // props for ButtonSpinner
22
+ _icon, // props for icon
23
+ _rightIcon, // props for rightIcon
24
+ _text = {}, // props for ButtonText
25
+ tooltip,
26
+ ...propsToPass
27
+ } = props;
28
+
29
+ if (icon) {
30
+ if (isValidElement(icon)) {
31
+ if (_icon) {
32
+ icon = cloneElement(icon, {..._icon});
33
+ }
34
+ } else {
35
+ icon = <ButtonIcon as={icon} {..._icon} />;
36
+ }
37
+ }
38
+ if (rightIcon) {
39
+ if (isValidElement(rightIcon)) {
40
+ if (_rightIcon) {
41
+ rightIcon = cloneElement(rightIcon, {..._rightIcon});
42
+ }
43
+ } else {
44
+ rightIcon = <ButtonIcon as={rightIcon} {..._rightIcon} />;
45
+ }
46
+ }
47
+
48
+ if (!ref) {
49
+ ref = useRef();
50
+ }
13
51
 
14
52
  if (self) {
15
- self.ref = buttonRef.current;
53
+ self.ref = ref.current;
16
54
  }
17
55
 
18
- if (text) {
19
- return <Button ref={buttonRef} {...props}>{text}</Button>;
56
+ let className = `
57
+ Button
58
+ flex
59
+ `;
60
+ if (propsToPass.className) {
61
+ className += ' ' + propsToPass.className;
62
+ }
63
+
64
+ let button = <Button {...propsToPass} className={className} ref={ref}>
65
+ {isLoading && <ButtonSpinner {..._spinner} />}
66
+ {icon}
67
+ {text && <ButtonText {..._text}>{text}</ButtonText>}
68
+ {rightIcon}
69
+ </Button>;
70
+ if (tooltip) {
71
+ button = <Tooltip text={tooltip}>{button}</Tooltip>;
20
72
  }
73
+ return button;
21
74
 
22
- return <Button ref={buttonRef} {...props} />;
23
- }
75
+ });
24
76
 
25
- export default withComponent(ButtonComponent);
77
+ export default withComponent(withTooltip(ButtonComponent));
@@ -3,7 +3,7 @@ import {
3
3
  Icon,
4
4
  Pressable,
5
5
  Text,
6
- } from 'native-base';
6
+ } from '../Gluestack';
7
7
  import {
8
8
  Ionicons,
9
9
  } from '@expo/vector-icons';
@@ -14,12 +14,20 @@ export default function CartButtonWithBadge(props) {
14
14
  badgeMsg,
15
15
  onPress,
16
16
  } = props;
17
- return <Pressable onPress={onPress} flexDirection="row" justifyContent="center" pr={5} {...testProps('cartBtn')}>
18
- <Icon as={Ionicons} name="cart" color="primary.800" size="xl" pb={1} />
17
+ return <Pressable
18
+ onPress={onPress}
19
+ {...testProps('cartBtn')}
20
+ className="flex-row justify-center pr-[5px]"
21
+ >
22
+ <Icon as={Ionicons} name="cart" size="xl" className="text-primary-800 pb-1" />
19
23
  {badgeMsg > 0 &&
20
- <Badge position="absolute" right={2} top={-10} colorScheme="danger" rounded="20px" variant="solid" {...testProps('cartBadge')}>
21
- <Text fontSize={12} fontWeight="bold" color="lightText">{badgeMsg}</Text>
24
+ <Badge
25
+ colorScheme="danger"
26
+ variant="solid"
27
+ {...testProps('cartBadge')}
28
+ className="absolute right-2 -top-10 rounded-[20px]">
29
+ <Text className="text-[12px] font-bold text-lightText">{badgeMsg}</Text>
22
30
  </Badge>}
23
- </Pressable>
31
+ </Pressable>;
24
32
  }
25
33
 
@@ -1,81 +1,38 @@
1
- import React, { useRef, } from 'react';
2
- import {
3
- Icon,
4
- Pressable,
5
- Spinner,
6
- Tooltip,
7
- } from 'native-base';
8
- import withComponent from '../Hoc/withComponent.js';
1
+ import { forwardRef } from 'react';
2
+ import Button from './Button';
9
3
  import UiGlobals from '../../UiGlobals.js';
10
4
  import _ from 'lodash';
11
5
 
12
- const
13
- IconButton = (props) => {
14
- const {
15
- // _icon, // props for the icon component
16
- // icon, // The actual icon component to use
17
- _spinner,
18
- isLoading = false,
19
- tooltip,
20
- tooltipPlacement = 'bottom',
21
- self,
22
- } = props,
23
- styles = UiGlobals.styles;
24
- let ref = props.outerRef;
25
6
 
26
- if (!ref) {
27
- ref = useRef();
28
- }
29
- if (self) {
30
- self.ref = ref.current;
31
- }
7
+ const IconButtonElement = forwardRef((props, ref) => {
8
+ let icon = props.icon,
9
+ styles = UiGlobals.styles;
32
10
 
33
- const propsIcon = props._icon || {};
34
- let icon = props.icon,
35
- ret;
36
- if (isLoading) {
37
- icon = <Spinner {..._spinner} />;
38
- }
39
- if (React.isValidElement(icon)) {
40
- if (!_.isEmpty(propsIcon)) {
41
- icon = React.cloneElement(icon, {...propsIcon});
42
- }
43
- } else {
44
- icon = <Icon as={icon} {...propsIcon} />;
45
- }
46
- const pressable = <Pressable
47
- ref={ref}
48
- borderRadius="md"
49
- colorScheme="primary"
50
- flexDirection="row"
51
- justifyContent="center"
52
- alignItems="center"
53
- px={styles.ICON_BUTTON_PX}
54
- py={styles.ICON_BUTTON_PY}
55
- // bg={styles.ICON_BUTTON_BG}
56
- _hover={{
57
- bg: styles.ICON_BUTTON_BG_HOVER,
58
- }}
59
- _disabled={{
60
- bg: styles.ICON_BUTTON_BG_DISABLED,
61
- }}
62
- _pressed={{
63
- bg: styles.ICON_BUTTON_BG_PRESSED,
64
- }}
65
- {...props}
66
- size={null /* this prop was coming from above and messing things up! */}
67
- >
68
- {icon}
69
- </Pressable>;
70
- ret = pressable;
71
- if (tooltip) {
72
- ret = <Tooltip label={tooltip} placement={tooltipPlacement}>{ret}</Tooltip>;
73
- }
74
- return ret;
75
- },
76
- IconButtonComponent = withComponent(IconButton);
11
+ if (!icon && !props._icon?.as) {
12
+ throw Error('IconButton requires an icon prop');
13
+ }
77
14
 
78
- // withComponent needs us to forwardRef
79
- export default React.forwardRef((props, ref) => {
80
- return <IconButtonComponent {...props} outerRef={ref} />;
15
+ let buttonClassName = `
16
+ IconButton
17
+ ${styles.ICON_BUTTON_PY}
18
+ ${styles.ICON_BUTTON_PX}
19
+ ${styles.ICON_BUTTON_BG}
20
+ ${styles.ICON_BUTTON_BG_HOVER}
21
+ ${styles.ICON_BUTTON_BG_ACTIVE}
22
+ ${styles.ICON_BUTTON_BG_DISABLED}
23
+ rounded-md
24
+ self-center
25
+ `;
26
+ if (props.className) {
27
+ buttonClassName += ' ' + props.className;
28
+ }
29
+
30
+ return <Button
31
+ ref={ref}
32
+ {...props}
33
+ className={buttonClassName}
34
+ action="none"
35
+ variant="none"
36
+ />;
81
37
  });
38
+ export default IconButtonElement;
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import {
3
- Row,
4
- Text,
5
- } from 'native-base';
3
+ HStack,
4
+ HStackNative,
5
+ } from '../Gluestack';
6
6
  import IconButton from './IconButton.js';
7
7
  import Plus from '../Icons/Plus.js';
8
8
  import Minus from '../Icons/Minus.js';
@@ -15,25 +15,38 @@ const PlusMinusButton = React.forwardRef((props, ref) => {
15
15
  isMinusDisabled = false,
16
16
  plusHandler = () => {},
17
17
  minusHandler = () => {},
18
- } = props;
18
+ plusTooltip,
19
+ minusTooltip,
20
+ } = props,
21
+ _icon = {
22
+ className: 'text-black',
23
+ };
19
24
 
20
- return <Row {...props}>
21
- <Row alignItems="center">
22
- <IconButton
23
- icon={<Minus color="#fff" />}
24
- onPress={minusHandler}
25
- bg="primary.200"
26
- isDisabled={isMinusDisabled}
27
- />
28
- <IconButton
29
- icon={<Plus color="#fff" />}
30
- onPress={plusHandler}
31
- bg="primary.200"
32
- isDisabled={isPlusDisabled}
33
- ml={1}
34
- />
35
- </Row>
36
- </Row>;
25
+ let className = `
26
+ PlusMinusButton-HStack
27
+ items-center
28
+ `;
29
+ if (props.className) {
30
+ className += ' ' + props.className
31
+ }
32
+
33
+ return <HStack className={className}>
34
+ <IconButton
35
+ icon={Minus}
36
+ _icon={_icon}
37
+ onPress={minusHandler}
38
+ isDisabled={isMinusDisabled}
39
+ tooltip={minusTooltip}
40
+ />
41
+ <IconButton
42
+ icon={Plus}
43
+ _icon={_icon}
44
+ onPress={plusHandler}
45
+ isDisabled={isPlusDisabled}
46
+ className="ml-1"
47
+ tooltip={plusTooltip}
48
+ />
49
+ </HStack>;
37
50
 
38
51
  });
39
52
 
@@ -1,16 +1,14 @@
1
- import {
2
- Icon,
3
- } from 'native-base';
4
1
  import testProps from '../../Functions/testProps.js';
5
2
  import IconButton from './IconButton.js';
6
3
  import Rotate from '../Icons/Rotate.js';
7
4
 
8
5
  export default function ReloadButton(props) {
9
6
  const {
10
- iconProps ={},
7
+ _icon ={},
11
8
  self,
12
9
  Repository,
13
10
  isTree = false,
11
+ propsToPass,
14
12
  } = props,
15
13
  onPress = () => {
16
14
  if (isTree) {
@@ -26,13 +24,14 @@ export default function ReloadButton(props) {
26
24
 
27
25
  return <IconButton
28
26
  {...testProps('reloadBtn')}
29
- {...props}
30
- reference="reloadBtn"
31
27
  parent={self}
32
- icon={<Icon as={Rotate} {...iconProps} color="trueGray.600" />}
28
+ reference="reloadBtn"
33
29
  onPress={onPress}
30
+ {...propsToPass}
31
+ icon={Rotate}
32
+ _icon={_icon}
33
+ className="ml-2"
34
34
  tooltip="Reload"
35
- ml={2}
36
35
  />;
37
36
  }
38
37
 
@@ -1,79 +1,65 @@
1
- import React from 'react';
2
- import {
3
- Icon,
4
- Pressable,
5
- Text,
6
- } from 'native-base';
7
1
  import IconButton from './IconButton.js';
8
- import UiGlobals from '../../UiGlobals.js';
2
+
3
+ // This component is used to create a square button with an icon and text
4
+ // For example, the Gingerich app uses this for EqStatusesSwitch and WoPrioritiesSwitch
9
5
 
10
6
  export default function SquareButton(props) {
11
7
  const {
12
8
  text,
13
9
  isActive = false,
14
- showText = true,
15
10
  activeColor,
16
11
  invertColorWhenActive = false,
12
+ showText = true,
17
13
  disableInteractions = false,
18
14
  fontSize = '20px',
19
15
  ...propsToPass
20
16
  } = props,
21
- styles = UiGlobals.styles,
22
17
  bg = isActive ? activeColor || '#56a6f8' : '#fff',
23
18
  color = invertColorWhenActive && isActive ? '#fff' : '#000';
24
19
 
25
- const propsIcon = props._icon || {};
26
- let icon = props.icon;
27
- if (!icon) {
20
+ if (!props.icon) {
28
21
  throw Error('icon missing');
29
22
  }
30
23
  if (!text) {
31
- throw Error('text missing');
24
+ throw Error('text missing. If you want to hide the text, use showText={false}');
32
25
  }
33
26
 
34
- const
35
- hoverProps = {},
36
- pressedProps = {};
37
- if (!disableInteractions) {
38
- hoverProps.bg = styles.ICON_BUTTON_BG_HOVER;
39
- pressedProps.bg = styles.ICON_BUTTON_BG_PRESSED;
40
- }
41
-
42
- if (!showText) {
43
- return <IconButton
44
- icon={icon}
45
- borderRadius="md"
46
- p={2}
47
- _icon={{
48
- size: '20px',
27
+ return <IconButton
28
+ className={`
29
+ rounded-md
30
+ p-2
31
+ bg-[${bg}]
32
+ hover:bg-[${bg}]
33
+ disabled:bg-[${bg}]
34
+ h-[100px]
35
+ w-[100px]
36
+ flex
37
+ flex-col
38
+ justify-center
39
+ items-center
40
+ `}
41
+ style={{
42
+ // backgroundColor: bg,
43
+ }}
44
+ _icon={{
45
+ className: `
46
+ h-[40px]
47
+ w-[40px]
48
+ `,
49
+ style: {
49
50
  color,
50
- }}
51
- {...propsToPass}
52
- bg={bg}
53
- />;
54
- }
55
-
56
- if (React.isValidElement(icon)) {
57
- if (!_.isEmpty(propsIcon)) {
58
- icon = React.cloneElement(icon, {...propsIcon});
59
- }
60
- } else {
61
- icon = <Icon as={icon} {...propsIcon} />;
62
- }
63
-
64
- return <Pressable
65
- borderRadius="md"
66
- flexDirection="column"
67
- justifyContent="center"
68
- alignItems="center"
69
- p={2}
51
+ }
52
+ }}
53
+ _text={{
54
+ style: {
55
+ color,
56
+ fontSize
57
+ }
58
+ }}
59
+ text={showText ? text : null}
60
+ isDisabled={disableInteractions}
70
61
  {...propsToPass}
71
- bg={bg}
72
- // _hover={hoverProps}
73
- // _pressed={pressedProps}
74
- >
75
- <Icon as={icon} color={color} size="xl" />
76
- <Text fontSize={fontSize} color={color}>{text}</Text>
77
- </Pressable>;
62
+ />;
63
+
78
64
  }
79
65