@onehat/ui 0.4.56 → 0.4.58

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 (401) hide show
  1. package/package.json +1 -1
  2. package/src/{components → Components}/Hoc/withComponent.js +2 -2
  3. package/src/Components/Icons/Stop.js +11 -0
  4. package/src/Components/Layout/AsyncOperation.js +153 -0
  5. package/src/Components/Tab/Tab.js +93 -0
  6. package/src/{components → Components}/Tab/TabBar.js +77 -112
  7. package/src/Components/Tab/TabButton.js +82 -0
  8. package/src/{components → Components}/index.js +2 -0
  9. package/src/Constants/Styles.js +3 -1
  10. /package/src/{components → Components}/Accordion/Accordion.js +0 -0
  11. /package/src/{components → Components}/Blank.js +0 -0
  12. /package/src/{components → Components}/Buttons/BackButton.js +0 -0
  13. /package/src/{components → Components}/Buttons/Button.js +0 -0
  14. /package/src/{components → Components}/Buttons/CartButtonWithBadge.js +0 -0
  15. /package/src/{components → Components}/Buttons/CheckboxButton.js +0 -0
  16. /package/src/{components → Components}/Buttons/ExpandButton.js +0 -0
  17. /package/src/{components → Components}/Buttons/IconButton.js +0 -0
  18. /package/src/{components → Components}/Buttons/PlusMinusButton.js +0 -0
  19. /package/src/{components → Components}/Buttons/ReloadButton.js +0 -0
  20. /package/src/{components → Components}/Buttons/ReloadPageButton.js +0 -0
  21. /package/src/{components → Components}/Buttons/ReloadTreeButton.js +0 -0
  22. /package/src/{components → Components}/Buttons/SquareButton.js +0 -0
  23. /package/src/{components → Components}/Container/Container.js +0 -0
  24. /package/src/{components → Components}/Container/ScreenContainer.js +0 -0
  25. /package/src/{components → Components}/Container/Splitter.js +0 -0
  26. /package/src/{components → Components}/Editor/Editor.js +0 -0
  27. /package/src/{components → Components}/Editor/InlineEditor.js +0 -0
  28. /package/src/{components → Components}/Filter/DateRange.js +0 -0
  29. /package/src/{components → Components}/Filter/NumberRange.js +0 -0
  30. /package/src/{components → Components}/Form/Field/CKEditor/CKEditor.js +0 -0
  31. /package/src/{components → Components}/Form/Field/CKEditor/ckeditor.css +0 -0
  32. /package/src/{components → Components}/Form/Field/Checkbox/ArrayCheckboxGroup.js +0 -0
  33. /package/src/{components → Components}/Form/Field/Checkbox/Checkbox.js +0 -0
  34. /package/src/{components → Components}/Form/Field/Checkbox/CheckboxGroup.js +0 -0
  35. /package/src/{components → Components}/Form/Field/Color.js +0 -0
  36. /package/src/{components → Components}/Form/Field/Combo/ArrayCombo.js +0 -0
  37. /package/src/{components → Components}/Form/Field/Combo/BooleanCombo.js +0 -0
  38. /package/src/{components → Components}/Form/Field/Combo/Combo.js +0 -0
  39. /package/src/{components → Components}/Form/Field/Combo/IntervalsCombo.js +0 -0
  40. /package/src/{components → Components}/Form/Field/Combo/MeterTypesCombo.js +0 -0
  41. /package/src/{components → Components}/Form/Field/Combo/MonthsCombo.js +0 -0
  42. /package/src/{components → Components}/Form/Field/Combo/PageSizeCombo.js +0 -0
  43. /package/src/{components → Components}/Form/Field/Combo/TimezonesCombo.js +0 -0
  44. /package/src/{components → Components}/Form/Field/Combo/YearsCombo.js +0 -0
  45. /package/src/{components → Components}/Form/Field/Date.js +0 -0
  46. /package/src/{components → Components}/Form/Field/DisplayField.js +0 -0
  47. /package/src/{components → Components}/Form/Field/File.js +0 -0
  48. /package/src/{components → Components}/Form/Field/FormikForm.js +0 -0
  49. /package/src/{components → Components}/Form/Field/Input.js +0 -0
  50. /package/src/{components → Components}/Form/Field/Json.js +0 -0
  51. /package/src/{components → Components}/Form/Field/Number.js +0 -0
  52. /package/src/{components → Components}/Form/Field/RadioGroup/ArrayRadioGroup.js +0 -0
  53. /package/src/{components → Components}/Form/Field/RadioGroup/RadioGroup.js +0 -0
  54. /package/src/{components → Components}/Form/Field/Select/PageSizeSelect.js +0 -0
  55. /package/src/{components → Components}/Form/Field/Select/Select.js +0 -0
  56. /package/src/{components → Components}/Form/Field/Slider.js +0 -0
  57. /package/src/{components → Components}/Form/Field/Tag/Tag.js +0 -0
  58. /package/src/{components → Components}/Form/Field/Tag/ValueBox.js +0 -0
  59. /package/src/{components → Components}/Form/Field/Text.js +0 -0
  60. /package/src/{components → Components}/Form/Field/TextArea.js +0 -0
  61. /package/src/{components → Components}/Form/Field/Toggle.js +0 -0
  62. /package/src/{components → Components}/Form/FieldSet.js +0 -0
  63. /package/src/{components → Components}/Form/FiltersForm.js +0 -0
  64. /package/src/{components → Components}/Form/Form.js +0 -0
  65. /package/src/{components → Components}/Form/Label.js +0 -0
  66. /package/src/{components → Components}/Gluestack/accordion/index.tsx +0 -0
  67. /package/src/{components → Components}/Gluestack/actionsheet/index.tsx +0 -0
  68. /package/src/{components → Components}/Gluestack/alert/index.tsx +0 -0
  69. /package/src/{components → Components}/Gluestack/alert-dialog/index.tsx +0 -0
  70. /package/src/{components → Components}/Gluestack/avatar/index.tsx +0 -0
  71. /package/src/{components → Components}/Gluestack/badge/index.tsx +0 -0
  72. /package/src/{components → Components}/Gluestack/bottomsheet/index.tsx +0 -0
  73. /package/src/{components → Components}/Gluestack/box/index.tsx +0 -0
  74. /package/src/{components → Components}/Gluestack/box/index.web.tsx +0 -0
  75. /package/src/{components → Components}/Gluestack/box/styles.tsx +0 -0
  76. /package/src/{components → Components}/Gluestack/button/index.tsx +0 -0
  77. /package/src/{components → Components}/Gluestack/card/index.tsx +0 -0
  78. /package/src/{components → Components}/Gluestack/card/index.web.tsx +0 -0
  79. /package/src/{components → Components}/Gluestack/card/styles.tsx +0 -0
  80. /package/src/{components → Components}/Gluestack/center/index.tsx +0 -0
  81. /package/src/{components → Components}/Gluestack/center/index.web.tsx +0 -0
  82. /package/src/{components → Components}/Gluestack/center/styles.tsx +0 -0
  83. /package/src/{components → Components}/Gluestack/checkbox/index.tsx +0 -0
  84. /package/src/{components → Components}/Gluestack/divider/index.tsx +0 -0
  85. /package/src/{components → Components}/Gluestack/drawer/index.tsx +0 -0
  86. /package/src/{components → Components}/Gluestack/fab/index.tsx +0 -0
  87. /package/src/{components → Components}/Gluestack/flat-list/index.tsx +0 -0
  88. /package/src/{components → Components}/Gluestack/form-control/index.tsx +0 -0
  89. /package/src/{components → Components}/Gluestack/gluestack-ui-provider/config.ts +0 -0
  90. /package/src/{components → Components}/Gluestack/gluestack-ui-provider/index.tsx +0 -0
  91. /package/src/{components → Components}/Gluestack/gluestack-ui-provider/index.web.tsx +0 -0
  92. /package/src/{components → Components}/Gluestack/gluestack-ui-provider/script.ts +0 -0
  93. /package/src/{components → Components}/Gluestack/grid/index.tsx +0 -0
  94. /package/src/{components → Components}/Gluestack/grid/index.web.tsx +0 -0
  95. /package/src/{components → Components}/Gluestack/grid/styles.tsx +0 -0
  96. /package/src/{components → Components}/Gluestack/heading/index.tsx +0 -0
  97. /package/src/{components → Components}/Gluestack/heading/index.web.tsx +0 -0
  98. /package/src/{components → Components}/Gluestack/heading/styles.tsx +0 -0
  99. /package/src/{components → Components}/Gluestack/hstack/index.tsx +0 -0
  100. /package/src/{components → Components}/Gluestack/hstack/index.web.tsx +0 -0
  101. /package/src/{components → Components}/Gluestack/hstack/styles.tsx +0 -0
  102. /package/src/{components → Components}/Gluestack/icon/index.tsx +0 -0
  103. /package/src/{components → Components}/Gluestack/icon/index.web.tsx +0 -0
  104. /package/src/{components → Components}/Gluestack/image/index.tsx +0 -0
  105. /package/src/{components → Components}/Gluestack/image-background/index.tsx +0 -0
  106. /package/src/{components → Components}/Gluestack/index.js +0 -0
  107. /package/src/{components → Components}/Gluestack/input/index.tsx +0 -0
  108. /package/src/{components → Components}/Gluestack/input-accessory-view/index.tsx +0 -0
  109. /package/src/{components → Components}/Gluestack/keyboard-avoiding-view/index.tsx +0 -0
  110. /package/src/{components → Components}/Gluestack/link/index.tsx +0 -0
  111. /package/src/{components → Components}/Gluestack/menu/index.tsx +0 -0
  112. /package/src/{components → Components}/Gluestack/modal/index.tsx +0 -0
  113. /package/src/{components → Components}/Gluestack/popover/index.tsx +0 -0
  114. /package/src/{components → Components}/Gluestack/portal/index.tsx +0 -0
  115. /package/src/{components → Components}/Gluestack/pressable/index.tsx +0 -0
  116. /package/src/{components → Components}/Gluestack/progress/index.tsx +0 -0
  117. /package/src/{components → Components}/Gluestack/radio/index.tsx +0 -0
  118. /package/src/{components → Components}/Gluestack/refresh-control/index.tsx +0 -0
  119. /package/src/{components → Components}/Gluestack/safe-area-view/index.tsx +0 -0
  120. /package/src/{components → Components}/Gluestack/scroll-view/index.tsx +0 -0
  121. /package/src/{components → Components}/Gluestack/section-list/index.tsx +0 -0
  122. /package/src/{components → Components}/Gluestack/select/index.tsx +0 -0
  123. /package/src/{components → Components}/Gluestack/select/select-actionsheet.tsx +0 -0
  124. /package/src/{components → Components}/Gluestack/skeleton/index.tsx +0 -0
  125. /package/src/{components → Components}/Gluestack/skeleton/index.web.tsx +0 -0
  126. /package/src/{components → Components}/Gluestack/skeleton/styles.tsx +0 -0
  127. /package/src/{components → Components}/Gluestack/slider/index.tsx +0 -0
  128. /package/src/{components → Components}/Gluestack/spinner/index.tsx +0 -0
  129. /package/src/{components → Components}/Gluestack/status-bar/index.tsx +0 -0
  130. /package/src/{components → Components}/Gluestack/switch/index.tsx +0 -0
  131. /package/src/{components → Components}/Gluestack/table/index.tsx +0 -0
  132. /package/src/{components → Components}/Gluestack/table/index.web.tsx +0 -0
  133. /package/src/{components → Components}/Gluestack/table/styles.tsx +0 -0
  134. /package/src/{components → Components}/Gluestack/text/index.tsx +0 -0
  135. /package/src/{components → Components}/Gluestack/text/index.web.tsx +0 -0
  136. /package/src/{components → Components}/Gluestack/text/styles.tsx +0 -0
  137. /package/src/{components → Components}/Gluestack/textarea/index.tsx +0 -0
  138. /package/src/{components → Components}/Gluestack/toast/index.tsx +0 -0
  139. /package/src/{components → Components}/Gluestack/tooltip/index.tsx +0 -0
  140. /package/src/{components → Components}/Gluestack/utils/use-break-point-value.ts +0 -0
  141. /package/src/{components → Components}/Gluestack/view/index.tsx +0 -0
  142. /package/src/{components → Components}/Gluestack/virtualized-list/index.tsx +0 -0
  143. /package/src/{components → Components}/Gluestack/vstack/index.tsx +0 -0
  144. /package/src/{components → Components}/Gluestack/vstack/index.web.tsx +0 -0
  145. /package/src/{components → Components}/Gluestack/vstack/styles.tsx +0 -0
  146. /package/src/{components → Components}/Grid/Grid.js +0 -0
  147. /package/src/{components → Components}/Grid/GridHeaderRow.js +0 -0
  148. /package/src/{components → Components}/Grid/GridRow.js +0 -0
  149. /package/src/{components → Components}/Grid/HeaderColumnSelectorHandle.js +0 -0
  150. /package/src/{components → Components}/Grid/HeaderReorderHandle.js +0 -0
  151. /package/src/{components → Components}/Grid/HeaderResizeHandle.js +0 -0
  152. /package/src/{components → Components}/Grid/NoRecordsFound.js +0 -0
  153. /package/src/{components → Components}/Grid/RowDragHandle.js +0 -0
  154. /package/src/{components → Components}/Hoc/Secondary/withSecondaryData.js +0 -0
  155. /package/src/{components → Components}/Hoc/Secondary/withSecondaryEditor.js +0 -0
  156. /package/src/{components → Components}/Hoc/Secondary/withSecondarySelection.js +0 -0
  157. /package/src/{components → Components}/Hoc/Secondary/withSecondarySideEditor.js +0 -0
  158. /package/src/{components → Components}/Hoc/Secondary/withSecondaryValue.js +0 -0
  159. /package/src/{components → Components}/Hoc/Secondary/withSecondaryWindowedEditor.js +0 -0
  160. /package/src/{components → Components}/Hoc/withAlert.js +0 -0
  161. /package/src/{components → Components}/Hoc/withBlank.js +0 -0
  162. /package/src/{components → Components}/Hoc/withCollapsible.js +0 -0
  163. /package/src/{components → Components}/Hoc/withContextMenu.js +0 -0
  164. /package/src/{components → Components}/Hoc/withData.js +0 -0
  165. /package/src/{components → Components}/Hoc/withDnd.js +0 -0
  166. /package/src/{components → Components}/Hoc/withDraggable.js +0 -0
  167. /package/src/{components → Components}/Hoc/withEditor.js +0 -0
  168. /package/src/{components → Components}/Hoc/withEvents.js +0 -0
  169. /package/src/{components → Components}/Hoc/withFilters.js +0 -0
  170. /package/src/{components → Components}/Hoc/withInlineEditor.js +0 -0
  171. /package/src/{components → Components}/Hoc/withInlineSideEditor.js +0 -0
  172. /package/src/{components → Components}/Hoc/withModal.js +0 -0
  173. /package/src/{components → Components}/Hoc/withMultiSelection.js +0 -0
  174. /package/src/{components → Components}/Hoc/withPdfButtons.js +0 -0
  175. /package/src/{components → Components}/Hoc/withPermissions.js +0 -0
  176. /package/src/{components → Components}/Hoc/withPresetButtons.js +0 -0
  177. /package/src/{components → Components}/Hoc/withSelection.js +0 -0
  178. /package/src/{components → Components}/Hoc/withSideEditor.js +0 -0
  179. /package/src/{components → Components}/Hoc/withToast.js +0 -0
  180. /package/src/{components → Components}/Hoc/withTooltip.js +0 -0
  181. /package/src/{components → Components}/Hoc/withValue.js +0 -0
  182. /package/src/{components → Components}/Hoc/withWindowedEditor.js +0 -0
  183. /package/src/{components → Components}/Icons/AddressBook.js +0 -0
  184. /package/src/{components → Components}/Icons/Alt.js +0 -0
  185. /package/src/{components → Components}/Icons/AngleLeft.js +0 -0
  186. /package/src/{components → Components}/Icons/AngleRight.js +0 -0
  187. /package/src/{components → Components}/Icons/AnglesLeft.js +0 -0
  188. /package/src/{components → Components}/Icons/AnglesRight.js +0 -0
  189. /package/src/{components → Components}/Icons/Asterisk.js +0 -0
  190. /package/src/{components → Components}/Icons/Ban.js +0 -0
  191. /package/src/{components → Components}/Icons/Bars.js +0 -0
  192. /package/src/{components → Components}/Icons/BarsStaggered.js +0 -0
  193. /package/src/{components → Components}/Icons/Bell.js +0 -0
  194. /package/src/{components → Components}/Icons/BigCircle.js +0 -0
  195. /package/src/{components → Components}/Icons/Book.js +0 -0
  196. /package/src/{components → Components}/Icons/BookOpen.js +0 -0
  197. /package/src/{components → Components}/Icons/Bookmark.js +0 -0
  198. /package/src/{components → Components}/Icons/Bug.js +0 -0
  199. /package/src/{components → Components}/Icons/Building.js +0 -0
  200. /package/src/{components → Components}/Icons/Calendar.js +0 -0
  201. /package/src/{components → Components}/Icons/Calendar2.js +0 -0
  202. /package/src/{components → Components}/Icons/CalendarDays.js +0 -0
  203. /package/src/{components → Components}/Icons/Camera.js +0 -0
  204. /package/src/{components → Components}/Icons/CaretDown.js +0 -0
  205. /package/src/{components → Components}/Icons/CaretUp.js +0 -0
  206. /package/src/{components → Components}/Icons/CartPlus.js +0 -0
  207. /package/src/{components → Components}/Icons/CartShopping.js +0 -0
  208. /package/src/{components → Components}/Icons/CashRegister.js +0 -0
  209. /package/src/{components → Components}/Icons/Certificate.js +0 -0
  210. /package/src/{components → Components}/Icons/ChartLine.js +0 -0
  211. /package/src/{components → Components}/Icons/ChartPie.js +0 -0
  212. /package/src/{components → Components}/Icons/Check.js +0 -0
  213. /package/src/{components → Components}/Icons/CheckDouble.js +0 -0
  214. /package/src/{components → Components}/Icons/ChevronDown.js +0 -0
  215. /package/src/{components → Components}/Icons/ChevronLeft.js +0 -0
  216. /package/src/{components → Components}/Icons/ChevronRight.js +0 -0
  217. /package/src/{components → Components}/Icons/ChevronUp.js +0 -0
  218. /package/src/{components → Components}/Icons/Circle.js +0 -0
  219. /package/src/{components → Components}/Icons/CircleArrowRight.js +0 -0
  220. /package/src/{components → Components}/Icons/CircleExclamation.js +0 -0
  221. /package/src/{components → Components}/Icons/CircleInfo.js +0 -0
  222. /package/src/{components → Components}/Icons/CircleQuestion.js +0 -0
  223. /package/src/{components → Components}/Icons/CircleXmark.js +0 -0
  224. /package/src/{components → Components}/Icons/CircleXmarkRegular.js +0 -0
  225. /package/src/{components → Components}/Icons/Clipboard.js +0 -0
  226. /package/src/{components → Components}/Icons/ClipboardCheck.js +0 -0
  227. /package/src/{components → Components}/Icons/ClipboardList.js +0 -0
  228. /package/src/{components → Components}/Icons/Clock.js +0 -0
  229. /package/src/{components → Components}/Icons/ClockRegular.js +0 -0
  230. /package/src/{components → Components}/Icons/ClockRotateLeft.js +0 -0
  231. /package/src/{components → Components}/Icons/Clone.js +0 -0
  232. /package/src/{components → Components}/Icons/Collapse.js +0 -0
  233. /package/src/{components → Components}/Icons/Comment.js +0 -0
  234. /package/src/{components → Components}/Icons/CommentDots.js +0 -0
  235. /package/src/{components → Components}/Icons/CommentRegular.js +0 -0
  236. /package/src/{components → Components}/Icons/Comments.js +0 -0
  237. /package/src/{components → Components}/Icons/CommentsRegular.js +0 -0
  238. /package/src/{components → Components}/Icons/Copyright.js +0 -0
  239. /package/src/{components → Components}/Icons/Dot.js +0 -0
  240. /package/src/{components → Components}/Icons/Download.js +0 -0
  241. /package/src/{components → Components}/Icons/Duplicate.js +0 -0
  242. /package/src/{components → Components}/Icons/Edit.js +0 -0
  243. /package/src/{components → Components}/Icons/EllipsisHorizontal.js +0 -0
  244. /package/src/{components → Components}/Icons/EllipsisVertical.js +0 -0
  245. /package/src/{components → Components}/Icons/Envelope.js +0 -0
  246. /package/src/{components → Components}/Icons/EnvelopeRegular.js +0 -0
  247. /package/src/{components → Components}/Icons/Excel.js +0 -0
  248. /package/src/{components → Components}/Icons/Exclamation.js +0 -0
  249. /package/src/{components → Components}/Icons/Expand.js +0 -0
  250. /package/src/{components → Components}/Icons/Eye.js +0 -0
  251. /package/src/{components → Components}/Icons/EyeSlash.js +0 -0
  252. /package/src/{components → Components}/Icons/File.js +0 -0
  253. /package/src/{components → Components}/Icons/FloppyDiskRegular.js +0 -0
  254. /package/src/{components → Components}/Icons/Folder.js +0 -0
  255. /package/src/{components → Components}/Icons/FolderClosed.js +0 -0
  256. /package/src/{components → Components}/Icons/FolderOpen.js +0 -0
  257. /package/src/{components → Components}/Icons/FolderTree.js +0 -0
  258. /package/src/{components → Components}/Icons/FullWidth.js +0 -0
  259. /package/src/{components → Components}/Icons/Gauge.js +0 -0
  260. /package/src/{components → Components}/Icons/Gear.js +0 -0
  261. /package/src/{components → Components}/Icons/Gears.js +0 -0
  262. /package/src/{components → Components}/Icons/Gift.js +0 -0
  263. /package/src/{components → Components}/Icons/Grip.js +0 -0
  264. /package/src/{components → Components}/Icons/GripLines.js +0 -0
  265. /package/src/{components → Components}/Icons/GripLinesVertical.js +0 -0
  266. /package/src/{components → Components}/Icons/GripVertical.js +0 -0
  267. /package/src/{components → Components}/Icons/Hammer.js +0 -0
  268. /package/src/{components → Components}/Icons/Hand.js +0 -0
  269. /package/src/{components → Components}/Icons/HighPriority.js +0 -0
  270. /package/src/{components → Components}/Icons/House.js +0 -0
  271. /package/src/{components → Components}/Icons/Images.js +0 -0
  272. /package/src/{components → Components}/Icons/Info.js +0 -0
  273. /package/src/{components → Components}/Icons/ItunesNote.js +0 -0
  274. /package/src/{components → Components}/Icons/Js.js +0 -0
  275. /package/src/{components → Components}/Icons/Leaf.js +0 -0
  276. /package/src/{components → Components}/Icons/Link.js +0 -0
  277. /package/src/{components → Components}/Icons/List.js +0 -0
  278. /package/src/{components → Components}/Icons/ListCheck.js +0 -0
  279. /package/src/{components → Components}/Icons/LocationDot.js +0 -0
  280. /package/src/{components → Components}/Icons/Loop.js +0 -0
  281. /package/src/{components → Components}/Icons/Loop1.js +0 -0
  282. /package/src/{components → Components}/Icons/LoopAll.js +0 -0
  283. /package/src/{components → Components}/Icons/LowPriority.js +0 -0
  284. /package/src/{components → Components}/Icons/MagnifyingGlass.js +0 -0
  285. /package/src/{components → Components}/Icons/Maximize.js +0 -0
  286. /package/src/{components → Components}/Icons/MedPriority.js +0 -0
  287. /package/src/{components → Components}/Icons/Microphone.js +0 -0
  288. /package/src/{components → Components}/Icons/Minimize.js +0 -0
  289. /package/src/{components → Components}/Icons/Minus.js +0 -0
  290. /package/src/{components → Components}/Icons/MobileScreenButton.js +0 -0
  291. /package/src/{components → Components}/Icons/MoneyBill.js +0 -0
  292. /package/src/{components → Components}/Icons/MoneyBillWave.js +0 -0
  293. /package/src/{components → Components}/Icons/Mouth.js +0 -0
  294. /package/src/{components → Components}/Icons/Music.js +0 -0
  295. /package/src/{components → Components}/Icons/Na.js +0 -0
  296. /package/src/{components → Components}/Icons/NoLoop.js +0 -0
  297. /package/src/{components → Components}/Icons/NoReorderRows.js +0 -0
  298. /package/src/{components → Components}/Icons/ObjectGroupRegular.js +0 -0
  299. /package/src/{components → Components}/Icons/Pause.js +0 -0
  300. /package/src/{components → Components}/Icons/Pdf.js +0 -0
  301. /package/src/{components → Components}/Icons/Pencil.js +0 -0
  302. /package/src/{components → Components}/Icons/Phone.js +0 -0
  303. /package/src/{components → Components}/Icons/Play.js +0 -0
  304. /package/src/{components → Components}/Icons/Plus.js +0 -0
  305. /package/src/{components → Components}/Icons/Presentation.js +0 -0
  306. /package/src/{components → Components}/Icons/Print.js +0 -0
  307. /package/src/{components → Components}/Icons/Question.js +0 -0
  308. /package/src/{components → Components}/Icons/Rate-.25x.js +0 -0
  309. /package/src/{components → Components}/Icons/Rate-.5x.js +0 -0
  310. /package/src/{components → Components}/Icons/Rate-.75x.js +0 -0
  311. /package/src/{components → Components}/Icons/Rate-1.25x.js +0 -0
  312. /package/src/{components → Components}/Icons/Rate-1.5x.js +0 -0
  313. /package/src/{components → Components}/Icons/Rate-1.75x.js +0 -0
  314. /package/src/{components → Components}/Icons/Rate-1x.js +0 -0
  315. /package/src/{components → Components}/Icons/Rate-2x.js +0 -0
  316. /package/src/{components → Components}/Icons/RateIcon-.25x.js +0 -0
  317. /package/src/{components → Components}/Icons/RateIcon-.5x.js +0 -0
  318. /package/src/{components → Components}/Icons/RateIcon-.75x.js +0 -0
  319. /package/src/{components → Components}/Icons/RateIcon-1.25x.js +0 -0
  320. /package/src/{components → Components}/Icons/RateIcon-1.5x.js +0 -0
  321. /package/src/{components → Components}/Icons/RateIcon-1.75x.js +0 -0
  322. /package/src/{components → Components}/Icons/RateIcon-1x.js +0 -0
  323. /package/src/{components → Components}/Icons/RateIcon-2x.js +0 -0
  324. /package/src/{components → Components}/Icons/RectangleXmark.js +0 -0
  325. /package/src/{components → Components}/Icons/RectangleXmarkRegular.js +0 -0
  326. /package/src/{components → Components}/Icons/ReorderRows.js +0 -0
  327. /package/src/{components → Components}/Icons/RightFromBracket.js +0 -0
  328. /package/src/{components → Components}/Icons/RightLeft.js +0 -0
  329. /package/src/{components → Components}/Icons/RightToBracket.js +0 -0
  330. /package/src/{components → Components}/Icons/Rotate.js +0 -0
  331. /package/src/{components → Components}/Icons/RotateLeft.js +0 -0
  332. /package/src/{components → Components}/Icons/RotateRight.js +0 -0
  333. /package/src/{components → Components}/Icons/ScrewdriverWrench.js +0 -0
  334. /package/src/{components → Components}/Icons/Scroll.js +0 -0
  335. /package/src/{components → Components}/Icons/Share.js +0 -0
  336. /package/src/{components → Components}/Icons/Shop.js +0 -0
  337. /package/src/{components → Components}/Icons/SideBySide.js +0 -0
  338. /package/src/{components → Components}/Icons/SortDown.js +0 -0
  339. /package/src/{components → Components}/Icons/SortDownAlt.js +0 -0
  340. /package/src/{components → Components}/Icons/SortUp.js +0 -0
  341. /package/src/{components → Components}/Icons/SortUpAlt.js +0 -0
  342. /package/src/{components → Components}/Icons/Square.js +0 -0
  343. /package/src/{components → Components}/Icons/SquareCheck.js +0 -0
  344. /package/src/{components → Components}/Icons/SquareCheckRegular.js +0 -0
  345. /package/src/{components → Components}/Icons/SquareMinus.js +0 -0
  346. /package/src/{components → Components}/Icons/SquareRegular.js +0 -0
  347. /package/src/{components → Components}/Icons/Store.js +0 -0
  348. /package/src/{components → Components}/Icons/Table.js +0 -0
  349. /package/src/{components → Components}/Icons/ThumbsDown.js +0 -0
  350. /package/src/{components → Components}/Icons/ThumbsDownRegular.js +0 -0
  351. /package/src/{components → Components}/Icons/ThumbsUp.js +0 -0
  352. /package/src/{components → Components}/Icons/ThumbsUpRegular.js +0 -0
  353. /package/src/{components → Components}/Icons/Trash.js +0 -0
  354. /package/src/{components → Components}/Icons/TrashCan.js +0 -0
  355. /package/src/{components → Components}/Icons/TriangleExclamation.js +0 -0
  356. /package/src/{components → Components}/Icons/Truck.js +0 -0
  357. /package/src/{components → Components}/Icons/TruckFast.js +0 -0
  358. /package/src/{components → Components}/Icons/Upload.js +0 -0
  359. /package/src/{components → Components}/Icons/UploadDownload.js +0 -0
  360. /package/src/{components → Components}/Icons/User.js +0 -0
  361. /package/src/{components → Components}/Icons/UserGroup.js +0 -0
  362. /package/src/{components → Components}/Icons/UserPlus.js +0 -0
  363. /package/src/{components → Components}/Icons/UserSecret.js +0 -0
  364. /package/src/{components → Components}/Icons/Video.js +0 -0
  365. /package/src/{components → Components}/Icons/X.js +0 -0
  366. /package/src/{components → Components}/Icons/Xmark.js +0 -0
  367. /package/src/{components → Components}/Layout/CenterBox.js +0 -0
  368. /package/src/{components → Components}/Layout/Footer.js +0 -0
  369. /package/src/{components → Components}/Layout/ScreenHeader.js +0 -0
  370. /package/src/{components → Components}/Layout/TextWithTooltip.js +0 -0
  371. /package/src/{components → Components}/Messages/ConfirmationMessage.js +0 -0
  372. /package/src/{components → Components}/Messages/ErrorMessage.js +0 -0
  373. /package/src/{components → Components}/Messages/Loading.js +0 -0
  374. /package/src/{components → Components}/Messages/OkMessage.js +0 -0
  375. /package/src/{components → Components}/Messages/Unauthorized.js +0 -0
  376. /package/src/{components → Components}/Messages/WaitMessage.js +0 -0
  377. /package/src/{components → Components}/Panel/AccordionGridPanel.js +0 -0
  378. /package/src/{components → Components}/Panel/FormPanel.js +0 -0
  379. /package/src/{components → Components}/Panel/GridPanel.js +0 -0
  380. /package/src/{components → Components}/Panel/Header.js +0 -0
  381. /package/src/{components → Components}/Panel/Mask.js +0 -0
  382. /package/src/{components → Components}/Panel/Panel.js +0 -0
  383. /package/src/{components → Components}/Panel/TabPanel.js +0 -0
  384. /package/src/{components → Components}/Panel/TreePanel.js +0 -0
  385. /package/src/{components → Components}/Panel/UploadDownload.js +0 -0
  386. /package/src/{components → Components}/Picker/Picker.js +0 -0
  387. /package/src/{components → Components}/Report/Report.js +0 -0
  388. /package/src/{components → Components}/Screens/DataMgt.js +0 -0
  389. /package/src/{components → Components}/Screens/Manager.js +0 -0
  390. /package/src/{components → Components}/Screens/ReportsManager.js +0 -0
  391. /package/src/{components → Components}/Toolbar/FilterToolbar.js +0 -0
  392. /package/src/{components → Components}/Toolbar/Pagination.js +0 -0
  393. /package/src/{components → Components}/Toolbar/PaginationToolbar.js +0 -0
  394. /package/src/{components → Components}/Toolbar/Toolbar.js +0 -0
  395. /package/src/{components → Components}/Tooltip/Tooltip.js +0 -0
  396. /package/src/{components → Components}/Tree/Tree.js +0 -0
  397. /package/src/{components → Components}/Tree/TreeNode.js +0 -0
  398. /package/src/{components → Components}/Viewer/MeterTypeText.js +0 -0
  399. /package/src/{components → Components}/Viewer/TextWithLinks.js +0 -0
  400. /package/src/{components → Components}/Viewer/Viewer.js +0 -0
  401. /package/src/{components → Components}/Window/UploadsDownloadsWindow.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onehat/ui",
3
- "version": "0.4.56",
3
+ "version": "0.4.58",
4
4
  "description": "Base UI for OneHat apps",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -75,11 +75,11 @@ export default function withComponent(WrappedComponent) {
75
75
  });
76
76
 
77
77
  useEffect(() => {
78
- if (parent && !parent?.hasChild(selfRef.current)) {
78
+ if (parent?.hasChild && !parent.hasChild(selfRef.current)) {
79
79
  parent.registerChild(selfRef.current);
80
80
  }
81
81
  return () => {
82
- if (parent) {
82
+ if (parent?.unregisterChild) {
83
83
  parent.unregisterChild(selfRef.current);
84
84
  }
85
85
  childrenRef.current = {};
@@ -0,0 +1,11 @@
1
+ import { createIcon } from "../Gluestack/icon";
2
+ // Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.
3
+ import Svg, { Path } from 'react-native-svg';
4
+
5
+ const SvgComponent = createIcon({
6
+ Root: Svg,
7
+ viewBox: '0 0 384 512',
8
+ path: <Path d="M0 128c0-35.3 28.7-64 64-64h256c35.3 0 64 28.7 64 64v256c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z" />,
9
+ });
10
+
11
+ export default SvgComponent
@@ -0,0 +1,153 @@
1
+ import { useState, } from 'react';
2
+ import {
3
+ Box,
4
+ Text,
5
+ VStack,
6
+ } from '@project-components/Gluestack';
7
+ import isJson from '../../Functions/isJson.js';
8
+ import Form from '../Form/Form.js';
9
+ import Button from '../Buttons/Button.js';
10
+ import withComponent from '../Hoc/withComponent.js';
11
+ import withAlert from '../Hoc/withAlert.js';
12
+ import ChevronLeft from '../Icons/ChevronLeft.js';
13
+ import ChevronRight from '../Icons/ChevronRight.js';
14
+ import Play from '../Icons/Play.js';
15
+ import Stop from '../Icons/Stop.js';
16
+ import TabBar from '../Tab/TabBar.js';
17
+ import Panel from '../Panel/Panel.js';
18
+ import Toolbar from '../Toolbar/Toolbar.js';
19
+ import _ from 'lodash';
20
+
21
+
22
+ function AsyncOperation(props) {
23
+ const {
24
+ action,
25
+ Repository,
26
+ formItems = [],
27
+ formStartingValues = {},
28
+
29
+ // withComponent
30
+ self,
31
+
32
+ // withAlert
33
+ alert,
34
+ } = props,
35
+ initiate = async () => {
36
+
37
+ if (!Repository || !action) {
38
+ alert('AsyncOperation: Repository and action are required!');
39
+ return;
40
+ }
41
+
42
+ setFooter(getFooter('processing'));
43
+
44
+ const
45
+ method = Repository.methods.edit,
46
+ uri = Repository.getModel() + '/' + action,
47
+ formValues = self.children.form.formGetValues(),
48
+ result = await Repository._send(method, uri, formValues);
49
+
50
+ const response = Repository._processServerResponse(result);
51
+ if (!response.success) {
52
+ alert(result.message);
53
+ reset();
54
+ return;
55
+ }
56
+
57
+ let results = <Text>Success</Text>;
58
+ if (response.message) {
59
+ let message = response.message;
60
+ if (isJson(message)) {
61
+ message = JSON.parse(message);
62
+ }
63
+ results = _.isArray(message) ?
64
+ <VStack>
65
+ {message?.map((line, ix)=> {
66
+ return <Text key={ix}>{line}</Text>;
67
+ })}
68
+ </VStack> :
69
+ <Text>{message}</Text>;
70
+ }
71
+ showResults(results);
72
+ },
73
+ getFooter = (which = 'initiate') => {
74
+ switch(which) {
75
+ case 'initiate':
76
+ return <Toolbar>
77
+ <Button
78
+ text="Initiate"
79
+ rightIcon={ChevronRight}
80
+ onPress={() => initiate()}
81
+ />
82
+ </Toolbar>;
83
+ case 'processing':
84
+ return <Toolbar>
85
+ <Button
86
+ text="Please wait"
87
+ isLoading={true}
88
+ variant="link"
89
+ />
90
+ </Toolbar>;
91
+ case 'results':
92
+ return <Toolbar>
93
+ <Button
94
+ text="Reset"
95
+ icon={ChevronLeft}
96
+ onPress={() => reset()}
97
+ />
98
+ </Toolbar>;
99
+ }
100
+ },
101
+ [footer, setFooter] = useState(getFooter()),
102
+ [results, setResults] = useState(''),
103
+ [currentTabIx, setCurrentTab] = useState(0),
104
+ showResults = (results) => {
105
+ setCurrentTab(1);
106
+ setFooter(getFooter('results'));
107
+ setResults(results);
108
+ },
109
+ reset = () => {
110
+ setCurrentTab(0);
111
+ setFooter(getFooter());
112
+ };
113
+
114
+ return <Panel {...props} footer={footer}>
115
+ <TabBar
116
+ tabs={[
117
+ {
118
+ title: 'Initiate',
119
+ icon: Play,
120
+ isDisabled: currentTabIx !== 0,
121
+ content: <Form
122
+ reference="form"
123
+ parent={self}
124
+ className="w-full h-full flex-1"
125
+ disableFooter={true}
126
+ items={formItems}
127
+ startingValues={formStartingValues}
128
+ />,
129
+ },
130
+ {
131
+ title: 'Results',
132
+ icon: Stop,
133
+ isDisabled: currentTabIx !== 1,
134
+ content: <Box className="p-2">{results}</Box>,
135
+ },
136
+ ]}
137
+ currentTabIx={currentTabIx}
138
+ canToggleCollapse={false}
139
+ tabsAreButtons={false}
140
+ />
141
+ </Panel>;
142
+ }
143
+
144
+ function withAdditionalProps(WrappedComponent) {
145
+ return (props) => {
146
+ return <WrappedComponent
147
+ reference={props.reference || 'AsyncOperation'}
148
+ {...props}
149
+ />;
150
+ };
151
+ }
152
+
153
+ export default withAdditionalProps(withComponent(withAlert(AsyncOperation)));
@@ -0,0 +1,93 @@
1
+ import { forwardRef, useRef } from 'react';
2
+ import {
3
+ HStack,
4
+ Icon,
5
+ } from '@project-components/Gluestack';
6
+ import {
7
+ HORIZONTAL,
8
+ VERTICAL,
9
+ } from '../../Constants/Directions.js';
10
+ import withTooltip from '../Hoc/withTooltip.js';
11
+ import IconButton from '../Buttons/IconButton.js';
12
+ import Xmark from '../Icons/Xmark.js';
13
+ import UiGlobals from '../../UiGlobals.js';
14
+ import _ from 'lodash';
15
+
16
+ const Tab = forwardRef((props, ref) => {
17
+ let {
18
+ className,
19
+ direction,
20
+ isDisabled,
21
+ isCurrentTab,
22
+ text,
23
+ _text,
24
+ useIconOnly,
25
+ icon,
26
+ _icon,
27
+ useCloseBtn,
28
+ onClose,
29
+ onPress, // remove it from propsToPass
30
+ ...propsToPass
31
+ } = props,
32
+ styles = UiGlobals.styles;
33
+
34
+ if (!ref) {
35
+ ref = useRef();
36
+ }
37
+
38
+ if (isCurrentTab) {
39
+ className += ' ' + styles.TAB_BG_CURRENT;
40
+ _icon.className += ' ' + styles.TAB_ICON_COLOR_CURRENT;
41
+ _text.className += ' ' + styles.TAB_COLOR_CURRENT;
42
+ }
43
+ if (isDisabled) {
44
+ className += ' ' + styles.TAB_BG_DISABLED_2;
45
+ _icon.className += ' ' + styles.TAB_COLOR_DISABLED;
46
+ _text.className += ' ' + styles.TAB_COLOR_DISABLED;
47
+ }
48
+
49
+ let tab = null;
50
+ if (useIconOnly) {
51
+ tab = <HStack className={className + ' Tab px-[20px] py-2'}>
52
+ <Icon
53
+ {...propsToPass}
54
+ className={className}
55
+ ref={ref}
56
+ {..._icon}
57
+ as={icon}
58
+ />
59
+ </HStack>;
60
+ } else {
61
+ if (direction === VERTICAL) {
62
+ className += ' w-[200px]';
63
+ }
64
+
65
+ let closeBtn = null;
66
+ if (useCloseBtn) {
67
+ closeBtn = <IconButton
68
+ {...testProps('tabCloseButton-' + ix)}
69
+ onPress={onClose}
70
+ icon={Xmark}
71
+ _icon={_icon}
72
+ tooltip="Close Tab"
73
+ className="p-0"
74
+ />;
75
+ }
76
+ tab = <HStack
77
+ {...propsToPass}
78
+ className={className}
79
+ ref={ref}
80
+ >
81
+ <Icon
82
+ {..._icon}
83
+ as={icon}
84
+ />
85
+ <Text {..._text}>{text}</Text>
86
+ {closeBtn}
87
+ </HStack>;
88
+ }
89
+
90
+ return tab;
91
+ });
92
+
93
+ export default withTooltip(Tab);
@@ -1,7 +1,9 @@
1
1
  import { cloneElement, useState, useEffect, } from 'react';
2
2
  import {
3
+ Box,
3
4
  HStack,
4
5
  HStackNative,
6
+ Icon,
5
7
  ScrollView,
6
8
  VStack,
7
9
  VStackNative,
@@ -10,6 +12,8 @@ import {
10
12
  HORIZONTAL,
11
13
  VERTICAL,
12
14
  } from '../../Constants/Directions.js';
15
+ import Tab from './Tab.js';
16
+ import TabButton from './TabButton.js';
13
17
  import Button from '../Buttons/Button.js';
14
18
  import UiGlobals from '../../UiGlobals.js';
15
19
  import getComponentFromType from '../../Functions/getComponentFromType.js';
@@ -20,7 +24,6 @@ import Minimize from '../Icons/Minimize.js';
20
24
  import Maximize from '../Icons/Maximize.js';
21
25
  import getSaved from '../../Functions/getSaved.js';
22
26
  import setSaved from '../../Functions/setSaved.js';
23
- import Xmark from '../Icons/Xmark.js';
24
27
  import _ from 'lodash';
25
28
 
26
29
 
@@ -30,12 +33,14 @@ function TabBar(props) {
30
33
  content, // e.g. Expo Router slot
31
34
  direction = HORIZONTAL,
32
35
  tabWidth = 150, // used on VERTICAL mode only
33
- tabHeight = '47px', // used on HORIZONTAL mode only
36
+ tabHeight = 47, // used on HORIZONTAL mode only
34
37
  additionalButtons,
35
38
  initialTabIx = 0,
36
39
  currentTabIx,
37
40
  disableCollapse = false,
38
41
  startsCollapsed = true,
42
+ canToggleCollapse = true,
43
+ tabsAreButtons = true,
39
44
  onChangeCurrentTab,
40
45
  onChangeIsCollapsed,
41
46
  onPressTab,
@@ -87,9 +92,9 @@ function TabBar(props) {
87
92
  },
88
93
  renderToggleButton = () => {
89
94
  const {
90
- buttonProps: {
91
- className: buttonPropsClassName,
92
- ...buttonPropsToPass
95
+ tabProps: {
96
+ className: tabPropsClassName,
97
+ ...tabPropsToPass
93
98
  },
94
99
  textProps: {
95
100
  className: textPropsClassName,
@@ -99,9 +104,9 @@ function TabBar(props) {
99
104
  className: iconPropsClassName,
100
105
  ...iconPropsToPass
101
106
  },
102
- } = getButtonProps();
107
+ } = getTabProps();
103
108
 
104
- let buttonClassName = buttonPropsClassName,
109
+ let tabClassName = tabPropsClassName,
105
110
  textClassName = textPropsClassName,
106
111
  iconClassName = iconPropsClassName;
107
112
 
@@ -118,15 +123,15 @@ function TabBar(props) {
118
123
  {...testProps('toggleBtn')}
119
124
  key="toggleBtn"
120
125
  onPress={onPress}
121
- {...buttonPropsToPass}
126
+ {...tabPropsToPass}
122
127
  icon={icon}
123
128
  _icon={_icon}
124
- className={buttonClassName}
129
+ className={tabClassName}
125
130
  tooltip={isCollapsed ? 'Expand' : 'Collapse'}
126
131
  />;
127
132
  } else {
128
- buttonClassName += `
129
- w-[200px]
133
+ tabClassName += `
134
+ ${direction === VERTICAL ? 'w-[200px]' : ''}
130
135
  pr-0
131
136
  mr-0
132
137
  `;
@@ -135,10 +140,10 @@ function TabBar(props) {
135
140
  {...testProps('toggleBtn')}
136
141
  key="toggleBtn"
137
142
  onPress={onPress}
138
- {...buttonPropsToPass}
143
+ {...tabPropsToPass}
139
144
  icon={icon}
140
145
  _icon={_icon}
141
- className={buttonClassName}
146
+ className={tabClassName}
142
147
  text="Collapse"
143
148
  _text={{
144
149
  className: textClassName,
@@ -150,15 +155,12 @@ function TabBar(props) {
150
155
  }
151
156
  return button;
152
157
  },
153
- getButtonProps = () => {
158
+ getTabProps = () => {
154
159
  const
155
- buttonProps = {
160
+ tabProps = {
156
161
  className: `
157
162
  ${styles.TAB_BG}
158
163
  ${isCollapsed ? 'justify-center' : 'justify-start'}
159
- ${styles.TAB_BG_HOVER}
160
- ${styles.TAB_BG_ACTIVE}
161
- ${styles.TAB_BG_DISABLED}
162
164
  `,
163
165
  },
164
166
  textProps = {
@@ -173,14 +175,11 @@ function TabBar(props) {
173
175
  // size: 'md',
174
176
  className: `
175
177
  ${styles.TAB_ICON_COLOR}
176
- ${styles.TAB_ICON_COLOR_HOVER}
177
- ${styles.TAB_ICON_COLOR_ACTIVE}
178
- ${styles.TAB_ICON_COLOR_DISABLED}
179
178
  `,
180
179
  };
181
180
  switch(direction) {
182
181
  case VERTICAL:
183
- buttonProps.className += `
182
+ tabProps.className += `
184
183
  rounded-l-lg
185
184
  rounded-r-none
186
185
  w-full
@@ -201,7 +200,7 @@ function TabBar(props) {
201
200
  `;
202
201
  break;
203
202
  case HORIZONTAL:
204
- buttonProps.className += `
203
+ tabProps.className += `
205
204
  rounded-t
206
205
  rounded-b-none
207
206
  mr-1
@@ -216,16 +215,16 @@ function TabBar(props) {
216
215
  default:
217
216
  }
218
217
  return {
219
- buttonProps,
218
+ tabProps,
220
219
  textProps,
221
220
  iconProps,
222
221
  };
223
222
  },
224
223
  renderTabs = () => {
225
224
  const {
226
- buttonProps: {
227
- className: buttonPropsClassName,
228
- ...buttonPropsToPass
225
+ tabProps: {
226
+ className: tabPropsClassName,
227
+ ...tabPropsToPass
229
228
  },
230
229
  textProps: {
231
230
  className: textPropsClassName,
@@ -235,8 +234,8 @@ function TabBar(props) {
235
234
  className: iconPropsClassName,
236
235
  ...iconPropsToPass
237
236
  },
238
- } = getButtonProps(),
239
- buttons = [];
237
+ } = getTabProps(),
238
+ tabComponents = [];
240
239
 
241
240
  _.each(tabs, (tab, ix) => {
242
241
  if (!tab.icon) {
@@ -244,7 +243,7 @@ function TabBar(props) {
244
243
  }
245
244
  const
246
245
  isCurrentTab = ix === getCurrentTab(),
247
- useIconButton = (isCollapsed || !tab.title),
246
+ useIconTab = (isCollapsed || !tab.title),
248
247
  tabIcon = tab._icon ? _.clone(tab._icon) : {};
249
248
  if (tabIcon.as && _.isString(tabIcon.as)) {
250
249
  const Type = getComponentFromType(tabIcon.as);
@@ -253,20 +252,13 @@ function TabBar(props) {
253
252
  }
254
253
  }
255
254
 
256
- let buttonClassName = buttonPropsClassName,
255
+ let tabClassName = tabPropsClassName,
257
256
  textClassName = textPropsClassName,
258
257
  iconClassName = iconPropsClassName;
259
258
 
260
- if (isCurrentTab) {
261
- buttonClassName += ' ' + styles.TAB_BG_CURRENT +
262
- ' ' + styles.TAB_BG_CURRENT_HOVER;
263
- iconClassName += ' ' + styles.TAB_ICON_COLOR_CURRENT;
264
- textClassName += ' ' + styles.TAB_COLOR_CURRENT;
265
- }
266
-
267
259
  // overrides
268
260
  if (tab._button?.className) {
269
- buttonClassName += ' ' + tab._button.className;
261
+ tabClassName += ' ' + tab._button.className;
270
262
  }
271
263
  if (tab._text?.className) {
272
264
  textClassName += ' ' + tab._text.className;
@@ -283,57 +275,28 @@ function TabBar(props) {
283
275
  },
284
276
  onPress = () => setCurrentTab(ix);
285
277
 
286
- let button;
287
- if (useIconButton) {
288
- button = <IconButton
289
- {...testProps(tab.path)}
290
- key={'tabIconBtn' + ix}
291
- onPress={onPress}
292
- {...buttonPropsToPass}
293
- icon={tab.icon}
294
- _icon={_icon}
295
- className={buttonClassName}
296
- tooltip={tab.title}
297
- />;
298
- } else {
299
- if (direction === VERTICAL) {
300
- buttonClassName += ' w-[200px]';
301
- }
302
-
303
- let closeBtn = null;
304
- if (onTabClose && !tab.disableCloseBox) {
305
- closeBtn = <IconButton
306
- {...testProps('tabCloseButton-' + ix)}
307
- key={'tabCloseButton' + ix}
308
- onPress={() => onTabClose(ix)}
309
- icon={Xmark}
310
- _icon={{
311
- ...iconProps,
312
- className: iconClassName,
278
+ const WhichTabType = tabsAreButtons ? TabButton : Tab
279
+ tabComponents.push(<WhichTabType
280
+ {...testProps(tab.path)}
281
+ key={'tab' + ix}
282
+ onPress={onPress}
283
+ {...tabPropsToPass}
284
+ icon={tab.icon}
285
+ _icon={_icon}
286
+ className={tabClassName}
287
+ tooltip={tab.title}
288
+ text={tab.title}
289
+ _text={{
290
+ className: textClassName,
291
+ ...textPropsToPass,
313
292
  }}
314
- tooltip="Close Tab"
315
- className="p-0"
316
- />;
317
- }
318
- button = <Button
319
- {...testProps(tab.path)}
320
- key={'tabBtn' + ix}
321
- onPress={onPress}
322
- {...buttonPropsToPass}
323
- icon={tab.icon}
324
- _icon={_icon}
325
- rightIcon={closeBtn}
326
- className={buttonClassName}
327
- text={tab.title}
328
- _text={{
329
- className: textClassName,
330
- ...textPropsToPass,
331
- }}
332
- action="none"
333
- variant="none"
334
- />;
335
- }
336
- buttons.push(button);
293
+ isDisabled={tab.isDisabled}
294
+ isCurrentTab={isCurrentTab}
295
+ useIconOnly={useIconTab}
296
+ direction={direction}
297
+ useCloseBtn={onTabClose && !tab.disableCloseBox}
298
+ onClose={() => onTabClose(ix)}
299
+ />);
337
300
  });
338
301
 
339
302
  if (additionalButtons) {
@@ -343,7 +306,7 @@ function TabBar(props) {
343
306
  }
344
307
 
345
308
  const
346
- useIconButton = (isCollapsed || !additionalButton.text),
309
+ useIconTab = (isCollapsed || !additionalButton.text),
347
310
  additionalButtonIcon = _.clone(additionalButton._icon);
348
311
 
349
312
  if (additionalButtonIcon.as && _.isString(additionalButtonIcon.as)) {
@@ -353,13 +316,13 @@ function TabBar(props) {
353
316
  }
354
317
  }
355
318
 
356
- let buttonClassName = buttonPropsClassName,
319
+ let tabClassName = tabPropsClassName,
357
320
  textClassName = textPropsClassName,
358
321
  iconClassName = iconPropsClassName;
359
322
 
360
323
  // overrides
361
324
  if (additionalButton._button?.className) {
362
- buttonClassName += ' ' + additionalButton._button.className;
325
+ tabClassName += ' ' + additionalButton._button.className;
363
326
  }
364
327
  if (additionalButton._text?.className) {
365
328
  textClassName += ' ' + additionalButton._text.className;
@@ -372,10 +335,10 @@ function TabBar(props) {
372
335
  // First button should have a gap before it
373
336
  switch(direction) {
374
337
  case VERTICAL:
375
- buttonClassName += ' mt-6';
338
+ tabClassName += ' mt-6';
376
339
  break;
377
340
  case HORIZONTAL:
378
- buttonClassName += ' ml-6';
341
+ tabClassName += ' ml-6';
379
342
  break;
380
343
  default:
381
344
  }
@@ -390,27 +353,27 @@ function TabBar(props) {
390
353
  onPress = additionalButton.onPress;
391
354
 
392
355
  let button;
393
- if (useIconButton) {
356
+ if (useIconTab) {
394
357
  button = <IconButton
395
358
  {...testProps('additionalBtn' + ix)}
396
359
  key={'additionalBtn' + ix}
397
360
  onPress={onPress}
398
- {...buttonPropsToPass}
361
+ {...tabPropsToPass}
399
362
  _icon={_icon}
400
- className={buttonClassName}
363
+ className={tabClassName}
401
364
  tooltip={additionalButton.text}
402
365
  />;
403
366
  } else {
404
367
  if (direction === VERTICAL) {
405
- buttonClassName += ' w-[200px]';
368
+ tabClassName += ' w-[200px]';
406
369
  }
407
370
  button = <Button
408
371
  {...testProps('additionalBtn' + ix)}
409
372
  key={'additionalBtn' + ix}
410
373
  onPress={onPress}
411
- {...buttonPropsToPass}
374
+ {...tabPropsToPass}
412
375
  _icon={_icon}
413
- className={buttonClassName}
376
+ className={tabClassName}
414
377
  text={additionalButton.text}
415
378
  _text={{
416
379
  className: textClassName,
@@ -420,11 +383,11 @@ function TabBar(props) {
420
383
  variant="none"
421
384
  />;
422
385
  }
423
- buttons.push(button);
386
+ tabComponents.push(button);
424
387
  });
425
388
  }
426
389
 
427
- return buttons;
390
+ return tabComponents;
428
391
  },
429
392
  renderCurrentTabContent = () => {
430
393
  if (content) {
@@ -503,9 +466,10 @@ function TabBar(props) {
503
466
  `}
504
467
  >
505
468
  {renderedTabs}
506
- <VStack className="flex-1 w-full justify-end">
507
- {renderedToggleButton}
508
- </VStack>
469
+ {canToggleCollapse ?
470
+ <VStack className="flex-1 w-full justify-end">
471
+ {renderedToggleButton}
472
+ </VStack> : null}
509
473
  </VStackNative>;
510
474
  if (renderedCurrentTabContent) {
511
475
  tabBar = <HStackNative {...propsToPass} className="flex-1 w-full">
@@ -520,7 +484,7 @@ function TabBar(props) {
520
484
  tabBar = <HStackNative
521
485
  {...testProps('TabBar')}
522
486
  className={`
523
- ${isCollapsed ? 'h-[38px]' : 'h-[' + tabHeight + 'px]'}
487
+ ${'h-[' + tabHeight + 'px]'}
524
488
  items-center
525
489
  justify-start
526
490
  p-1
@@ -530,15 +494,16 @@ function TabBar(props) {
530
494
  >
531
495
  <ScrollView
532
496
  horizontal={true}
533
- className={` ${isCollapsed ? "h-[30px]" : 'h-[' + tabHeight + 'px]'} `}
497
+ className={'h-[' + tabHeight + 'px]'}
534
498
  >
535
499
  {renderedTabs}
536
500
  </ScrollView>
537
- <HStack className="flex-1 h-full justify-end">
538
- <HStack className="h-full">
539
- {renderedToggleButton}
540
- </HStack>
541
- </HStack>
501
+ {canToggleCollapse ?
502
+ <HStack className="flex-1 h-full justify-end">
503
+ <HStack className="h-full">
504
+ {renderedToggleButton}
505
+ </HStack>
506
+ </HStack> : null}
542
507
  </HStackNative>;
543
508
  if (renderedCurrentTabContent) {
544
509
  tabBar = <VStackNative {...propsToPass} className="flex-1 w-full">