@neko-os/ui 0.2.3 → 0.3.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 (431) hide show
  1. package/dist/DynamicStyleTag.js +18 -2
  2. package/dist/DynamicStyleTag.native.js +3 -1
  3. package/dist/NekoUI.js +39 -1
  4. package/dist/abstractions/ActivityIndicator.js +19 -1
  5. package/dist/abstractions/ActivityIndicator.native.js +43 -1
  6. package/dist/abstractions/ActivityIndicator.web.js +43 -1
  7. package/dist/abstractions/AnimatedView.js +3 -1
  8. package/dist/abstractions/AnimatedView.native.js +5 -1
  9. package/dist/abstractions/AnimatedView.web.js +3 -1
  10. package/dist/abstractions/BlurView.js +43 -1
  11. package/dist/abstractions/BlurView.native.js +39 -1
  12. package/dist/abstractions/BlurView.web.js +39 -1
  13. package/dist/abstractions/DraggableSlideView.js +3 -1
  14. package/dist/abstractions/DraggableSlideView.native.js +62 -1
  15. package/dist/abstractions/FlatList.js +3 -1
  16. package/dist/abstractions/FlatList.native.js +37 -1
  17. package/dist/abstractions/FlatList.web.js +3 -1
  18. package/dist/abstractions/GradientView.js +5 -1
  19. package/dist/abstractions/GradientView.native.js +32 -1
  20. package/dist/abstractions/HiddenInput.js +3 -1
  21. package/dist/abstractions/HiddenInput.native.js +3 -1
  22. package/dist/abstractions/Icon.js +10 -1
  23. package/dist/abstractions/Icon.native.js +13 -1
  24. package/dist/abstractions/Icon.web.js +11 -1
  25. package/dist/abstractions/Image.js +12 -1
  26. package/dist/abstractions/Image.native.js +7 -1
  27. package/dist/abstractions/Image.web.js +7 -1
  28. package/dist/abstractions/ImageBackground.js +17 -1
  29. package/dist/abstractions/ImageBackground.native.js +27 -1
  30. package/dist/abstractions/ImageBackground.web.js +7 -1
  31. package/dist/abstractions/KeyboardAvoidingView.js +3 -1
  32. package/dist/abstractions/KeyboardAvoidingView.native.js +3 -1
  33. package/dist/abstractions/Platform.js +1 -1
  34. package/dist/abstractions/Platform.native.js +3 -1
  35. package/dist/abstractions/Platform.web.js +3 -1
  36. package/dist/abstractions/Pressable.js +4 -1
  37. package/dist/abstractions/Pressable.native.js +3 -1
  38. package/dist/abstractions/Pressable.web.js +3 -1
  39. package/dist/abstractions/SafeAreaView.js +3 -1
  40. package/dist/abstractions/SafeAreaView.native.js +3 -1
  41. package/dist/abstractions/ScrollView.js +3 -1
  42. package/dist/abstractions/ScrollView.native.js +5 -1
  43. package/dist/abstractions/ScrollView.web.js +3 -1
  44. package/dist/abstractions/StaticList.js +51 -1
  45. package/dist/abstractions/Switch.js +97 -1
  46. package/dist/abstractions/Switch.native.js +12 -1
  47. package/dist/abstractions/Table.js +29 -1
  48. package/dist/abstractions/Table.native.js +19 -1
  49. package/dist/abstractions/Text.js +14 -1
  50. package/dist/abstractions/Text.native.js +3 -1
  51. package/dist/abstractions/Text.web.js +18 -1
  52. package/dist/abstractions/TextInput.js +12 -1
  53. package/dist/abstractions/TextInput.native.js +5 -1
  54. package/dist/abstractions/TextInput.web.js +5 -1
  55. package/dist/abstractions/TouchableOpacity.js +4 -1
  56. package/dist/abstractions/TouchableOpacity.native.js +3 -1
  57. package/dist/abstractions/View.js +3 -1
  58. package/dist/abstractions/View.native.js +3 -1
  59. package/dist/abstractions/View.web.js +3 -1
  60. package/dist/abstractions/helpers/componentSize.js +13 -1
  61. package/dist/abstractions/helpers/componentSize.native.js +12 -1
  62. package/dist/abstractions/helpers/storage.js +32 -1
  63. package/dist/abstractions/helpers/storage.native.js +34 -1
  64. package/dist/abstractions/helpers/transformStyle.js +8 -1
  65. package/dist/abstractions/helpers/transformStyle.native.js +3 -1
  66. package/dist/abstractions/helpers/useSafeAreaInsets.js +3 -1
  67. package/dist/abstractions/helpers/useSafeAreaInsets.native.js +3 -1
  68. package/dist/abstractions/helpers/windowWidth.js +13 -1
  69. package/dist/abstractions/helpers/windowWidth.native.js +6 -1
  70. package/dist/abstractions/helpers/windowWidth.web.js +6 -1
  71. package/dist/components/actions/ActionsDrawer.js +81 -1
  72. package/dist/components/actions/Breadcrumb.js +47 -1
  73. package/dist/components/actions/Button.js +82 -1
  74. package/dist/components/actions/Dropdown.js +91 -1
  75. package/dist/components/actions/FloatingButton.js +87 -1
  76. package/dist/components/actions/FloatingMenu.js +39 -1
  77. package/dist/components/actions/Link.js +66 -1
  78. package/dist/components/actions/Pressable.js +38 -1
  79. package/dist/components/actions/index.js +9 -1
  80. package/dist/components/actions/menu/HorizontalMenu.js +98 -1
  81. package/dist/components/actions/menu/Menu.js +7 -1
  82. package/dist/components/actions/menu/SubmenuWrapper.js +16 -1
  83. package/dist/components/actions/menu/VerticalMenu.js +133 -1
  84. package/dist/components/animations/AnimatedTopBar.js +10 -1
  85. package/dist/components/animations/AnimatedTopBar.native.js +34 -1
  86. package/dist/components/animations/AnimatedTopBar.web.js +1 -1
  87. package/dist/components/animations/AnimatedView.js +45 -1
  88. package/dist/components/animations/DraggableSlideView.js +42 -1
  89. package/dist/components/animations/ParallaxHeader.js +9 -1
  90. package/dist/components/animations/ParallaxHeader.native.js +32 -1
  91. package/dist/components/animations/ParallaxHeader.web.js +32 -1
  92. package/dist/components/animations/ReanimatedScrollHandler.js +8 -1
  93. package/dist/components/animations/ReanimatedScrollHandler.native.js +24 -1
  94. package/dist/components/animations/ReanimatedScrollHandler.web.js +1 -1
  95. package/dist/components/animations/ReanimatedView.js +40 -1
  96. package/dist/components/animations/index.js +5 -1
  97. package/dist/components/calendar/CalendarNav.js +67 -1
  98. package/dist/components/calendar/WeekDaysBar.js +18 -1
  99. package/dist/components/calendar/_helpers/calendarDays.js +16 -1
  100. package/dist/components/calendar/_helpers/dateDisabled.js +24 -1
  101. package/dist/components/feedback/alerter.js +31 -1
  102. package/dist/components/feedback/confirmer.js +70 -1
  103. package/dist/components/feedback/index.js +3 -1
  104. package/dist/components/feedback/notifications/Notification.js +37 -1
  105. package/dist/components/feedback/notifications/NotificationsHandler.js +65 -1
  106. package/dist/components/filter/DateFilter.js +72 -0
  107. package/dist/components/filter/FilterGroup.js +17 -0
  108. package/dist/components/filter/FilterHandler.js +54 -0
  109. package/dist/components/filter/FilterItem.js +30 -0
  110. package/dist/components/filter/PopoverFilterItem.js +84 -0
  111. package/dist/components/filter/SearchInput.js +49 -0
  112. package/dist/components/filter/index.js +6 -0
  113. package/dist/components/form/Form.js +31 -1
  114. package/dist/components/form/FormGroup.js +21 -1
  115. package/dist/components/form/FormItem.js +118 -1
  116. package/dist/components/form/FormList.js +143 -1
  117. package/dist/components/form/FormWrapperComponent.js +52 -1
  118. package/dist/components/form/FormWrapperComponent.native.js +5 -1
  119. package/dist/components/form/SubmitButton.js +22 -1
  120. package/dist/components/form/index.js +9 -1
  121. package/dist/components/form/useNewForm.js +211 -1
  122. package/dist/components/form/useWatch.js +70 -1
  123. package/dist/components/form/validation/defaultMessages.js +20 -1
  124. package/dist/components/form/validation/index.js +5 -1
  125. package/dist/components/form/validation/normalizeRules.js +22 -1
  126. package/dist/components/form/validation/shouldValidateOn.js +21 -1
  127. package/dist/components/form/validation/validateRules.js +83 -1
  128. package/dist/components/form/validation/validators.js +82 -1
  129. package/dist/components/helpers/ConditionalLazyRender.js +6 -1
  130. package/dist/components/helpers/LazyAction.js +22 -1
  131. package/dist/components/helpers/LazyRender.js +55 -1
  132. package/dist/components/helpers/LazyRender.native.js +58 -1
  133. package/dist/components/helpers/Portal.js +21 -1
  134. package/dist/components/helpers/PortalHandler.js +32 -1
  135. package/dist/components/helpers/Responsive.js +18 -1
  136. package/dist/components/helpers/Separator.js +49 -1
  137. package/dist/components/helpers/VerticalView.js +34 -1
  138. package/dist/components/helpers/index.js +8 -1
  139. package/dist/components/index.js +20 -1
  140. package/dist/components/inputs/BooleanSelect.js +14 -0
  141. package/dist/components/inputs/Checkbox.js +56 -1
  142. package/dist/components/inputs/DateInput.js +123 -1
  143. package/dist/components/inputs/DateRangeInput.js +41 -0
  144. package/dist/components/inputs/Editable.js +129 -0
  145. package/dist/components/inputs/EnabledSelect.js +14 -0
  146. package/dist/components/inputs/InputWrapper.js +93 -1
  147. package/dist/components/inputs/LinkInput.js +17 -1
  148. package/dist/components/inputs/MaskInput.js +67 -1
  149. package/dist/components/inputs/NumberInput.js +111 -1
  150. package/dist/components/inputs/NumberRangeInput.js +41 -0
  151. package/dist/components/inputs/PasswordInput.js +24 -0
  152. package/dist/components/inputs/Picker.js +169 -1
  153. package/dist/components/inputs/Radio.js +55 -1
  154. package/dist/components/inputs/RateInput.js +62 -1
  155. package/dist/components/inputs/SegmentedPicker.js +62 -1
  156. package/dist/components/inputs/Select.js +219 -1
  157. package/dist/components/inputs/Switch.js +60 -1
  158. package/dist/components/inputs/TextArea.js +5 -0
  159. package/dist/components/inputs/TextInput.js +32 -1
  160. package/dist/components/inputs/UploadInput.js +140 -0
  161. package/dist/components/inputs/_DateInput.native.js +89 -1
  162. package/dist/components/inputs/datePicker/DatePicker.js +24 -1
  163. package/dist/components/inputs/datePicker/DayPicker.js +64 -1
  164. package/dist/components/inputs/datePicker/MonthPicker.js +62 -1
  165. package/dist/components/inputs/datePicker/QuarterPicker.js +65 -1
  166. package/dist/components/inputs/datePicker/WeekPicker.js +74 -1
  167. package/dist/components/inputs/datePicker/YearPicker.js +70 -1
  168. package/dist/components/inputs/index.js +23 -1
  169. package/dist/components/inputs/upload/Upload.js +99 -0
  170. package/dist/components/inputs/upload/Upload.native.js +154 -0
  171. package/dist/components/inputs/upload/useUploadState.js +143 -0
  172. package/dist/components/layout/Layout.js +40 -1
  173. package/dist/components/layout/LayoutContent.js +42 -1
  174. package/dist/components/layout/LayoutHeader.js +70 -1
  175. package/dist/components/layout/LayoutSider.js +64 -1
  176. package/dist/components/layout/index.js +4 -1
  177. package/dist/components/list/FlatList.js +91 -1
  178. package/dist/components/list/ScrollView.js +58 -1
  179. package/dist/components/list/index.js +2 -1
  180. package/dist/components/modals/bottomDrawer/index.js +3 -1
  181. package/dist/components/modals/bottomDrawer/index.native.js +5 -1
  182. package/dist/components/modals/bottomDrawer/index.web.js +5 -1
  183. package/dist/components/modals/bottomDrawer/native/BottomDrawer.js +239 -1
  184. package/dist/components/modals/bottomDrawer/native/DrawerContext.js +17 -1
  185. package/dist/components/modals/bottomDrawer/native/DrawerHandle.js +12 -1
  186. package/dist/components/modals/bottomDrawer/native/DrawerScrollView.js +5 -1
  187. package/dist/components/modals/bottomDrawer/native/createDrawerScrollComponent.js +139 -1
  188. package/dist/components/modals/bottomDrawer/native/utils.js +65 -1
  189. package/dist/components/modals/bottomDrawer/web/BottomDrawer.js +5 -1
  190. package/dist/components/modals/drawer/Drawer.js +5 -1
  191. package/dist/components/modals/drawer/Drawer.native.js +3 -1
  192. package/dist/components/modals/drawer/Drawer.web.js +3 -1
  193. package/dist/components/modals/drawer/index.js +1 -1
  194. package/dist/components/modals/index.js +4 -1
  195. package/dist/components/modals/modal/Modal.js +84 -1
  196. package/dist/components/modals/modal/Modal.native.js +83 -1
  197. package/dist/components/modals/modal/ModalBackdrop.js +58 -1
  198. package/dist/components/modals/modal/ModalContent.js +28 -1
  199. package/dist/components/modals/modal/ModalFooter.js +31 -1
  200. package/dist/components/modals/modal/ModalHeader.js +50 -1
  201. package/dist/components/modals/modal/handler/ModalsHandler.js +61 -1
  202. package/dist/components/modals/modal/index.js +6 -1
  203. package/dist/components/modals/router/ModalRoute.js +15 -1
  204. package/dist/components/modals/router/ModalsRouter.js +120 -1
  205. package/dist/components/modals/router/ModalsRouterContext.js +16 -1
  206. package/dist/components/modals/router/index.js +6 -1
  207. package/dist/components/modals/router/useAllModalsParams.js +6 -1
  208. package/dist/components/modals/router/useModalParams.js +6 -1
  209. package/dist/components/modals/router/useModalsNavigation.js +6 -1
  210. package/dist/components/modals/router/useUpdateModalContainer.js +6 -1
  211. package/dist/components/presentation/Avatar.js +79 -1
  212. package/dist/components/presentation/AvatarLabel.js +60 -1
  213. package/dist/components/presentation/AvatarsGroup.js +30 -0
  214. package/dist/components/presentation/Badge.js +91 -1
  215. package/dist/components/presentation/ContentLabel.js +43 -1
  216. package/dist/components/presentation/Icon.js +20 -1
  217. package/dist/components/presentation/IconLabel.js +40 -1
  218. package/dist/components/presentation/Image.js +33 -1
  219. package/dist/components/presentation/ImageBackground.js +38 -1
  220. package/dist/components/presentation/LabelValue.js +51 -1
  221. package/dist/components/presentation/Progress.js +20 -0
  222. package/dist/components/presentation/Rate.js +58 -1
  223. package/dist/components/presentation/RateTag.js +35 -1
  224. package/dist/components/presentation/Result.js +60 -1
  225. package/dist/components/presentation/ResultBar.js +56 -1
  226. package/dist/components/presentation/Tag.js +69 -1
  227. package/dist/components/presentation/Tooltip.js +44 -1
  228. package/dist/components/presentation/index.js +16 -1
  229. package/dist/components/sections/Section.js +50 -1
  230. package/dist/components/sections/SectionItem.js +24 -1
  231. package/dist/components/sections/SectionItemDropdown.js +68 -1
  232. package/dist/components/sections/SectionItemLink.js +35 -1
  233. package/dist/components/sections/index.js +4 -1
  234. package/dist/components/state/Loading.js +20 -1
  235. package/dist/components/state/LoadingView.js +37 -1
  236. package/dist/components/state/StatePresenter.js +41 -1
  237. package/dist/components/state/index.js +3 -1
  238. package/dist/components/steps/ActiveStepContent.js +16 -0
  239. package/dist/components/steps/StepsHandler.js +53 -0
  240. package/dist/components/steps/StepsMenu.js +14 -0
  241. package/dist/components/steps/StepsNavigation.js +37 -0
  242. package/dist/components/steps/index.js +4 -0
  243. package/dist/components/structure/Accordion.js +69 -1
  244. package/dist/components/structure/AccordionGroup.js +35 -1
  245. package/dist/components/structure/Affix.js +34 -0
  246. package/dist/components/structure/Affix.native.js +3 -0
  247. package/dist/components/structure/BlurView.js +59 -1
  248. package/dist/components/structure/Card.js +46 -1
  249. package/dist/components/structure/Col.js +22 -1
  250. package/dist/components/structure/GradientView.js +42 -1
  251. package/dist/components/structure/KeyboardAvoidingView.js +52 -1
  252. package/dist/components/structure/Row.js +50 -1
  253. package/dist/components/structure/SafeAreaView.js +42 -1
  254. package/dist/components/structure/Segment.js +51 -1
  255. package/dist/components/structure/TopBar.js +57 -1
  256. package/dist/components/structure/View.js +44 -1
  257. package/dist/components/structure/index.js +14 -1
  258. package/dist/components/structure/overlay/OverlayHandler.js +83 -1
  259. package/dist/components/structure/overlay/OverlayHandler.native.js +6 -1
  260. package/dist/components/structure/overlay/OverlayWrapper.js +52 -1
  261. package/dist/components/structure/overlay/calculatePosition.js +29 -1
  262. package/dist/components/structure/overlay/smartPlacement.js +32 -1
  263. package/dist/components/structure/popover/Popover.js +135 -1
  264. package/dist/components/structure/popover/Popover.native.js +105 -1
  265. package/dist/components/structure/popover/PopoverContent.js +18 -1
  266. package/dist/components/structure/popover/Popover_BU.js +157 -1
  267. package/dist/components/table/DataTable.js +62 -1
  268. package/dist/components/table/Pagination.js +128 -1
  269. package/dist/components/table/Table.js +66 -1
  270. package/dist/components/table/TableCol.js +67 -1
  271. package/dist/components/table/TableHeader.js +69 -1
  272. package/dist/components/table/TableHeaderRow.js +31 -1
  273. package/dist/components/table/TableRow.js +30 -1
  274. package/dist/components/table/index.js +7 -1
  275. package/dist/components/tabs/ActiveTabContent.js +38 -1
  276. package/dist/components/tabs/TabsHandler.js +16 -1
  277. package/dist/components/tabs/TabsMenu.js +15 -1
  278. package/dist/components/tabs/index.js +3 -1
  279. package/dist/components/text/DateText.js +24 -1
  280. package/dist/components/text/Text.js +32 -1
  281. package/dist/components/text/VerticalText.js +29 -1
  282. package/dist/components/text/index.js +3 -1
  283. package/dist/components/theme/ThemePicker.js +48 -1
  284. package/dist/components/theme/ThemePickerDrawer.js +12 -1
  285. package/dist/components/theme/ThemeStatusBar.js +3 -1
  286. package/dist/components/theme/ThemeStatusBar.native.js +9 -1
  287. package/dist/components/theme/ThemeThumb.js +98 -1
  288. package/dist/components/theme/index.js +3 -1
  289. package/dist/helpers/debounce.js +9 -1
  290. package/dist/helpers/index.js +5 -1
  291. package/dist/helpers/options.js +65 -1
  292. package/dist/helpers/random.js +5 -1
  293. package/dist/helpers/storage.js +76 -1
  294. package/dist/helpers/string.js +74 -1
  295. package/dist/i18n/I18n.js +96 -1
  296. package/dist/i18n/I18nProvider.js +40 -1
  297. package/dist/i18n/index.js +2 -1
  298. package/dist/index.js +8 -1
  299. package/dist/modifiers/_helpers.js +6 -1
  300. package/dist/modifiers/alignConverter.js +11 -1
  301. package/dist/modifiers/animation.js +18 -1
  302. package/dist/modifiers/animations/animatedEffects.js +64 -1
  303. package/dist/modifiers/animations/animatedEffects.native.js +55 -1
  304. package/dist/modifiers/animations/animatedEffects.web.js +55 -1
  305. package/dist/modifiers/animations/fadeEffect.js +46 -1
  306. package/dist/modifiers/animations/fadeEffect.native.js +33 -1
  307. package/dist/modifiers/animations/fadeEffect.web.js +3 -1
  308. package/dist/modifiers/animations/scaleEffect.js +46 -1
  309. package/dist/modifiers/animations/scaleEffect.native.js +33 -1
  310. package/dist/modifiers/animations/scrollEffect.web.js +3 -1
  311. package/dist/modifiers/animations/slideEffect.js +64 -1
  312. package/dist/modifiers/animations/slideEffect.native.js +53 -1
  313. package/dist/modifiers/animations/slideEffect.web.js +3 -1
  314. package/dist/modifiers/applyStyles.js +7 -1
  315. package/dist/modifiers/background.js +34 -1
  316. package/dist/modifiers/border.js +86 -1
  317. package/dist/modifiers/colorConverter.js +13 -1
  318. package/dist/modifiers/cursor.js +21 -1
  319. package/dist/modifiers/default.js +9 -1
  320. package/dist/modifiers/display.js +22 -1
  321. package/dist/modifiers/flex.js +20 -1
  322. package/dist/modifiers/flexWrapper.js +87 -1
  323. package/dist/modifiers/fullColor.js +32 -1
  324. package/dist/modifiers/grid.js +27 -1
  325. package/dist/modifiers/hover.js +28 -1
  326. package/dist/modifiers/logger.js +6 -1
  327. package/dist/modifiers/margin.js +25 -1
  328. package/dist/modifiers/overflow.js +28 -1
  329. package/dist/modifiers/padding.js +25 -1
  330. package/dist/modifiers/position.js +57 -1
  331. package/dist/modifiers/responsiveConverter.js +19 -1
  332. package/dist/modifiers/shadow.js +35 -1
  333. package/dist/modifiers/size.js +59 -1
  334. package/dist/modifiers/sizeConverter.js +12 -1
  335. package/dist/modifiers/state.js +33 -1
  336. package/dist/modifiers/text.js +62 -1
  337. package/dist/modifiers/textConverter.js +12 -1
  338. package/dist/modifiers/themeComponent.js +11 -1
  339. package/dist/responsive/ResponsiveHandler.js +28 -1
  340. package/dist/responsive/index.js +2 -1
  341. package/dist/responsive/responsiveHooks.js +67 -1
  342. package/dist/theme/ThemeHandler.js +81 -1
  343. package/dist/theme/default/base.js +95 -1
  344. package/dist/theme/default/blackTheme.js +47 -1
  345. package/dist/theme/default/cyberpunkTheme.js +36 -1
  346. package/dist/theme/default/darkTheme.js +35 -1
  347. package/dist/theme/default/hackerTheme.js +55 -1
  348. package/dist/theme/default/lightTheme.js +35 -1
  349. package/dist/theme/default/paperTheme.js +36 -1
  350. package/dist/theme/default/themes.js +15 -1
  351. package/dist/theme/format/colorsVariations.js +31 -1
  352. package/dist/theme/format/formatTheme.js +28 -1
  353. package/dist/theme/helpers/colorScale.js +12 -1
  354. package/dist/theme/helpers/contrastColor.js +18 -1
  355. package/dist/theme/helpers/dynamicColor.js +32 -1
  356. package/dist/theme/helpers/mergePreset.js +7 -1
  357. package/dist/theme/helpers/relatedScales.js +34 -1
  358. package/dist/theme/helpers/sizeScale.js +20 -1
  359. package/dist/theme/helpers/textScale.js +15 -1
  360. package/dist/theme/index.js +2 -1
  361. package/package.json +1 -3
  362. package/src/abstractions/Icon.js +1 -1
  363. package/src/abstractions/TextInput.js +10 -1
  364. package/src/components/actions/ActionsDrawer.js +1 -1
  365. package/src/components/actions/Button.js +3 -1
  366. package/src/components/actions/FloatingMenu.js +1 -1
  367. package/src/components/actions/menu/HorizontalMenu.js +2 -1
  368. package/src/components/actions/menu/VerticalMenu.js +2 -1
  369. package/src/components/filter/DateFilter.js +72 -0
  370. package/src/components/filter/FilterGroup.js +17 -0
  371. package/src/components/filter/FilterHandler.js +54 -0
  372. package/src/components/filter/FilterItem.js +30 -0
  373. package/src/components/filter/PopoverFilterItem.js +84 -0
  374. package/src/components/filter/SearchInput.js +49 -0
  375. package/src/components/filter/index.js +6 -0
  376. package/src/components/form/Form.js +9 -3
  377. package/src/components/form/FormItem.js +26 -1
  378. package/src/components/form/FormWrapperComponent.js +12 -3
  379. package/src/components/form/useNewForm.js +55 -4
  380. package/src/components/helpers/Separator.js +15 -11
  381. package/src/components/helpers/index.js +1 -0
  382. package/src/components/index.js +2 -0
  383. package/src/components/inputs/BooleanSelect.js +14 -0
  384. package/src/components/inputs/DateInput.js +3 -1
  385. package/src/components/inputs/DateRangeInput.js +41 -0
  386. package/src/components/inputs/Editable.js +129 -0
  387. package/src/components/inputs/EnabledSelect.js +14 -0
  388. package/src/components/inputs/InputWrapper.js +7 -4
  389. package/src/components/inputs/NumberInput.js +10 -5
  390. package/src/components/inputs/NumberRangeInput.js +41 -0
  391. package/src/components/inputs/PasswordInput.js +24 -0
  392. package/src/components/inputs/Picker.js +2 -2
  393. package/src/components/inputs/Select.js +61 -47
  394. package/src/components/inputs/TextArea.js +5 -0
  395. package/src/components/inputs/TextInput.js +14 -4
  396. package/src/components/inputs/UploadInput.js +140 -0
  397. package/src/components/inputs/index.js +9 -0
  398. package/src/components/inputs/upload/Upload.js +99 -0
  399. package/src/components/inputs/upload/Upload.native.js +154 -0
  400. package/src/components/inputs/upload/useUploadState.js +143 -0
  401. package/src/components/layout/LayoutHeader.js +1 -0
  402. package/src/components/presentation/AvatarLabel.js +1 -1
  403. package/src/components/presentation/AvatarsGroup.js +30 -0
  404. package/src/components/presentation/Badge.js +3 -2
  405. package/src/components/presentation/ContentLabel.js +1 -1
  406. package/src/components/presentation/IconLabel.js +1 -0
  407. package/src/components/presentation/Progress.js +20 -0
  408. package/src/components/presentation/index.js +2 -0
  409. package/src/components/sections/Section.js +1 -1
  410. package/src/components/sections/SectionItemLink.js +4 -2
  411. package/src/components/steps/ActiveStepContent.js +16 -0
  412. package/src/components/steps/StepsHandler.js +53 -0
  413. package/src/components/steps/StepsMenu.js +14 -0
  414. package/src/components/steps/StepsNavigation.js +37 -0
  415. package/src/components/steps/index.js +4 -0
  416. package/src/components/structure/Affix.js +34 -0
  417. package/src/components/structure/Affix.native.js +3 -0
  418. package/src/components/structure/Card.js +1 -0
  419. package/src/components/structure/TopBar.js +13 -1
  420. package/src/components/structure/index.js +1 -0
  421. package/src/components/structure/overlay/OverlayHandler.js +9 -1
  422. package/src/components/structure/popover/Popover.js +22 -5
  423. package/src/components/table/DataTable.js +7 -2
  424. package/src/components/table/Table.js +2 -1
  425. package/src/components/tabs/ActiveTabContent.js +4 -1
  426. package/src/components/text/DateText.js +15 -2
  427. package/src/modifiers/border.js +15 -9
  428. package/src/modifiers/size.js +8 -5
  429. package/src/theme/default/base.js +2 -0
  430. package/src/theme/default/hackerTheme.js +1 -10
  431. package/src/theme/default/paperTheme.js +1 -14
@@ -1 +1,39 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/FloatingMenu.js";var _excluded=["fixed","onChange","items","activeIndex","size","WrapperView"];import{Icon}from"../presentation";import{Link}from"./Link";import{Text}from"../text";import{View}from"../structure";import{moveScale}from"../../theme/helpers/sizeScale";import{useSafeAreaInsets}from"../../abstractions/helpers/useSafeAreaInsets";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function FloatingMenu(_ref){var _this=this;var fixed=_ref.fixed,onChange=_ref.onChange,items=_ref.items,activeIndex=_ref.activeIndex,_ref$size=_ref.size,size=_ref$size===void 0?'md':_ref$size,WrapperView=_ref.WrapperView,props=_objectWithoutProperties(_ref,_excluded);var insets=useSafeAreaInsets();var height=moveScale(size,2);var bg=!WrapperView?'overlayBG':null;WrapperView=WrapperView||View;return _jsx(View,{absolute:!fixed,fixed:fixed,left:"md",right:"md",centerH:true,bottom:Math.max(insets.bottom,16),children:_jsx(WrapperView,Object.assign({height:height,shadow:true,round:true,row:true,paddingH:"sm",bg:bg},props,{children:items.map(function(item,index){var _item$icon;var isActive=index===activeIndex;return _jsxs(Link,{onPress:function onPress(){return onChange(item,index);},center:true,padding:"xs",gap:3,width:height,round:true,children:[_jsx(Icon,{name:isActive?(_item$icon=item.icon)==null?void 0:_item$icon.replace(/line(?=[^line]*$)/,'fill'):item.icon,size:height,color:isActive?'primary':'text3'}),!!item.label&&_jsx(Text,{size:"xxs",center:true,color:isActive?'primary':'text3',strong:true,numberOfLines:1,children:item.label})]},index);})}))});}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/FloatingMenu.js";var _excluded = ["fixed", "onChange", "items", "activeIndex", "size", "WrapperView"];function _objectWithoutProperties(e, t) {if (null == e) return {};var o,r,i = _objectWithoutPropertiesLoose(e, t);if (Object.getOwnPropertySymbols) {var n = Object.getOwnPropertySymbols(e);for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);}return i;}function _objectWithoutPropertiesLoose(r, e) {if (null == r) return {};var t = {};for (var n in r) if ({}.hasOwnProperty.call(r, n)) {if (-1 !== e.indexOf(n)) continue;t[n] = r[n];}return t;}import { Icon } from "../presentation";
2
+ import { Link } from "./Link";
3
+ import { Text } from "../text";
4
+ import { View } from "../structure";
5
+ import { moveScale } from "../../theme/helpers/sizeScale";
6
+ import { useSafeAreaInsets } from "../../abstractions/helpers/useSafeAreaInsets";import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+
8
+ export function FloatingMenu(_ref) {var _this = this;var fixed = _ref.fixed,onChange = _ref.onChange,items = _ref.items,activeIndex = _ref.activeIndex,_ref$size = _ref.size,size = _ref$size === void 0 ? 'md' : _ref$size,WrapperView = _ref.WrapperView,props = _objectWithoutProperties(_ref, _excluded);
9
+ var insets = useSafeAreaInsets();
10
+ var height = moveScale(size, 2);
11
+
12
+ var bg = !WrapperView ? 'overlayBG' : null;
13
+ WrapperView = WrapperView || View;
14
+
15
+ return (
16
+ _jsx(View, { absolute: !fixed, fixed: fixed, left: "md", right: "md", centerH: true, bottom: Math.max(insets.bottom / 2, 16), children:
17
+ _jsx(WrapperView, Object.assign({ height: height, shadow: true, round: true, row: true, paddingH: "sm", bg: bg }, props, { children:
18
+ items.map(function (item, index) {var _item$icon;
19
+ var isActive = index === activeIndex;
20
+
21
+ return (
22
+ _jsxs(Link, { onPress: function onPress() {return onChange(item, index);}, center: true, padding: "xs", gap: 3, width: height, round: true, children: [
23
+ _jsx(Icon, {
24
+ name: isActive ? (_item$icon = item.icon) == null ? void 0 : _item$icon.replace(/line(?=[^line]*$)/, 'fill') : item.icon,
25
+ size: height,
26
+ color: isActive ? 'primary' : 'text3' }
27
+ ),
28
+ !!item.label &&
29
+ _jsx(Text, { size: "xxs", center: true, color: isActive ? 'primary' : 'text3', strong: true, numberOfLines: 1, children:
30
+ item.label }
31
+ )] }, index
32
+
33
+ ));
34
+
35
+ }) })
36
+ ) }
37
+ ));
38
+
39
+ }
@@ -1 +1,66 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/Link.js";var _excluded=["label","children","href","target"];import{pipe,is}from'ramda';import{AbsTouchableOpacity}from"../../abstractions/TouchableOpacity";import{LoadingView}from"../state/LoadingView";import{Text}from"../text/Text";import{useAnimationModifier}from"../../modifiers/animation";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useColorConverter}from"../../modifiers/colorConverter";import{useCursorModifier}from"../../modifiers/cursor";import{useDefaultModifier}from"../../modifiers/default";import{useDisplayModifier}from"../../modifiers/display";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useHoverConverter}from"../../modifiers/hover";import{useMarginModifier}from"../../modifiers/margin";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";import{useSizeModifier}from"../../modifiers/size";import{useStateModifier}from"../../modifiers/state";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";var DEFAULT_PROPS={pointer:true,hover:{br:'md',bg:'text4_op10'}};export function Link(_ref){var label=_ref.label,children=_ref.children,href=_ref.href,target=_ref.target,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useDefaultModifier(DEFAULT_PROPS),useHoverConverter,useBackgroundModifier,useColorConverter('primary'),useThemeComponentModifier('Link'),useCursorModifier,useAnimationModifier,useSizeModifier,useFlexWrapperModifier,useDisplayModifier,useStateModifier,useBorderModifier,usePositionModifier,usePaddingModifier,useMarginModifier,useFlexModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],isHover=_pipe2$.isHover,loading=_pipe2$.loading,color=_pipe2$.color,props=_pipe2[1];if(!!label||is(String,children)){children=_jsx(Text,Object.assign({color:color},props,{children:label||children}));}return _jsx(LoadingView,{active:loading,noWrapper:true,replaceChildren:true,children:_jsx(AbsTouchableOpacity,Object.assign({className:"neko-link",link:true,target:target,href:!props.disabled&&href},props,{children:children}))});}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/Link.js";var _excluded = ["label", "children", "href", "target"];function _slicedToArray(r, e) {return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(r, a) {if (r) {if ("string" == typeof r) return _arrayLikeToArray(r, a);var t = {}.toString.call(r).slice(8, -1);return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;}}function _arrayLikeToArray(r, a) {(null == a || a > r.length) && (a = r.length);for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];return n;}function _iterableToArrayLimit(r, l) {var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];if (null != t) {var e,n,i,u,a = [],f = !0,o = !1;try {if (i = (t = t.call(r)).next, 0 === l) {if (Object(t) !== t) return;f = !1;} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);} catch (r) {o = !0, n = r;} finally {try {if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;} finally {if (o) throw n;}}return a;}}function _arrayWithHoles(r) {if (Array.isArray(r)) return r;}function _objectWithoutProperties(e, t) {if (null == e) return {};var o,r,i = _objectWithoutPropertiesLoose(e, t);if (Object.getOwnPropertySymbols) {var n = Object.getOwnPropertySymbols(e);for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);}return i;}function _objectWithoutPropertiesLoose(r, e) {if (null == r) return {};var t = {};for (var n in r) if ({}.hasOwnProperty.call(r, n)) {if (-1 !== e.indexOf(n)) continue;t[n] = r[n];}return t;}import { pipe, is } from 'ramda';
2
+
3
+ import { AbsTouchableOpacity } from "../../abstractions/TouchableOpacity";
4
+ import { LoadingView } from "../state/LoadingView";
5
+ import { Text } from "../text/Text";
6
+ import { useAnimationModifier } from "../../modifiers/animation";
7
+ import { useBackgroundModifier } from "../../modifiers/background";
8
+ import { useBorderModifier } from "../../modifiers/border";
9
+ import { useColorConverter } from "../../modifiers/colorConverter";
10
+ import { useCursorModifier } from "../../modifiers/cursor";
11
+ import { useDefaultModifier } from "../../modifiers/default";
12
+ import { useDisplayModifier } from "../../modifiers/display";
13
+ import { useFlexModifier } from "../../modifiers/flex";
14
+ import { useFlexWrapperModifier } from "../../modifiers/flexWrapper";
15
+ import { useHoverConverter } from "../../modifiers/hover";
16
+ import { useMarginModifier } from "../../modifiers/margin";
17
+ import { usePaddingModifier } from "../../modifiers/padding";
18
+ import { usePositionModifier } from "../../modifiers/position";
19
+ import { useSizeModifier } from "../../modifiers/size";
20
+ import { useStateModifier } from "../../modifiers/state";
21
+ import { useThemeComponentModifier } from "../../modifiers/themeComponent";import { jsx as _jsx } from "react/jsx-runtime";
22
+
23
+ var DEFAULT_PROPS = {
24
+ pointer: true,
25
+ hover: {
26
+ br: 'md',
27
+ bg: 'text4_op10'
28
+ }
29
+ };
30
+
31
+ export function Link(_ref) {var label = _ref.label,children = _ref.children,href = _ref.href,target = _ref.target,rootProps = _objectWithoutProperties(_ref, _excluded);
32
+ var _pipe = pipe(
33
+ useDefaultModifier(DEFAULT_PROPS),
34
+ useHoverConverter,
35
+ useBackgroundModifier,
36
+ useColorConverter('primary'),
37
+ useThemeComponentModifier('Link'),
38
+ useCursorModifier,
39
+ useAnimationModifier,
40
+ useSizeModifier,
41
+ useFlexWrapperModifier,
42
+ useDisplayModifier,
43
+ useStateModifier,
44
+ useBorderModifier,
45
+ usePositionModifier,
46
+ usePaddingModifier,
47
+ useMarginModifier,
48
+ useFlexModifier
49
+ )([{}, rootProps]),_pipe2 = _slicedToArray(_pipe, 2),_pipe2$ = _pipe2[0],isHover = _pipe2$.isHover,loading = _pipe2$.loading,color = _pipe2$.color,props = _pipe2[1];
50
+
51
+ if (!!label || is(String, children)) {
52
+ children =
53
+ _jsx(Text, Object.assign({ color: color }, props, { children:
54
+ label || children })
55
+ );
56
+
57
+ }
58
+
59
+ return (
60
+ _jsx(LoadingView, { active: loading, noWrapper: true, replaceChildren: true, children:
61
+ _jsx(AbsTouchableOpacity, Object.assign({ className: "neko-link", link: true, target: target, href: !props.disabled && href }, props, { children:
62
+ children })
63
+ ) }
64
+ ));
65
+
66
+ }
@@ -1 +1,38 @@
1
- import _objectDestructuringEmpty from"@babel/runtime/helpers/objectDestructuringEmpty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/Pressable.js";var _excluded=["children","href","target"];import{pipe}from'ramda';import{AbsPressable}from"../../abstractions/Pressable";import{useAnimationModifier}from"../../modifiers/animation";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useDisplayModifier}from"../../modifiers/display";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useMarginModifier}from"../../modifiers/margin";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";import{useSizeModifier}from"../../modifiers/size";import{useStateModifier}from"../../modifiers/state";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";export function Pressable(_ref){var children=_ref.children,href=_ref.href,target=_ref.target,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useThemeComponentModifier('Pressable'),useBackgroundModifier,useAnimationModifier,useSizeModifier,useFlexWrapperModifier,useDisplayModifier,useStateModifier,useBorderModifier,usePositionModifier,usePaddingModifier,useMarginModifier,useFlexModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2);_objectDestructuringEmpty(_pipe2[0]);var props=_pipe2[1];return _jsx(AbsPressable,Object.assign({className:"neko-pressable",link:true,target:target,href:!props.disabled&&href},props,{children:children}));}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/Pressable.js";var _excluded = ["children", "href", "target"];function _objectDestructuringEmpty(t) {if (null == t) throw new TypeError("Cannot destructure " + t);}function _slicedToArray(r, e) {return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(r, a) {if (r) {if ("string" == typeof r) return _arrayLikeToArray(r, a);var t = {}.toString.call(r).slice(8, -1);return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;}}function _arrayLikeToArray(r, a) {(null == a || a > r.length) && (a = r.length);for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];return n;}function _iterableToArrayLimit(r, l) {var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];if (null != t) {var e,n,i,u,a = [],f = !0,o = !1;try {if (i = (t = t.call(r)).next, 0 === l) {if (Object(t) !== t) return;f = !1;} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);} catch (r) {o = !0, n = r;} finally {try {if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;} finally {if (o) throw n;}}return a;}}function _arrayWithHoles(r) {if (Array.isArray(r)) return r;}function _objectWithoutProperties(e, t) {if (null == e) return {};var o,r,i = _objectWithoutPropertiesLoose(e, t);if (Object.getOwnPropertySymbols) {var n = Object.getOwnPropertySymbols(e);for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);}return i;}function _objectWithoutPropertiesLoose(r, e) {if (null == r) return {};var t = {};for (var n in r) if ({}.hasOwnProperty.call(r, n)) {if (-1 !== e.indexOf(n)) continue;t[n] = r[n];}return t;}import { pipe } from 'ramda';
2
+
3
+ import { AbsPressable } from "../../abstractions/Pressable";
4
+ import { useAnimationModifier } from "../../modifiers/animation";
5
+ import { useBackgroundModifier } from "../../modifiers/background";
6
+ import { useBorderModifier } from "../../modifiers/border";
7
+ import { useDisplayModifier } from "../../modifiers/display";
8
+ import { useFlexModifier } from "../../modifiers/flex";
9
+ import { useFlexWrapperModifier } from "../../modifiers/flexWrapper";
10
+ import { useMarginModifier } from "../../modifiers/margin";
11
+ import { usePaddingModifier } from "../../modifiers/padding";
12
+ import { usePositionModifier } from "../../modifiers/position";
13
+ import { useSizeModifier } from "../../modifiers/size";
14
+ import { useStateModifier } from "../../modifiers/state";
15
+ import { useThemeComponentModifier } from "../../modifiers/themeComponent";import { jsx as _jsx } from "react/jsx-runtime";
16
+
17
+ export function Pressable(_ref) {var children = _ref.children,href = _ref.href,target = _ref.target,rootProps = _objectWithoutProperties(_ref, _excluded);
18
+ var _pipe = pipe(
19
+ useThemeComponentModifier('Pressable'),
20
+ useBackgroundModifier,
21
+ useAnimationModifier,
22
+ useSizeModifier,
23
+ useFlexWrapperModifier,
24
+ useDisplayModifier,
25
+ useStateModifier,
26
+ useBorderModifier,
27
+ usePositionModifier,
28
+ usePaddingModifier,
29
+ useMarginModifier,
30
+ useFlexModifier
31
+ )([{}, rootProps]),_pipe2 = _slicedToArray(_pipe, 2);_objectDestructuringEmpty(_pipe2[0]);var props = _pipe2[1];
32
+
33
+ return (
34
+ _jsx(AbsPressable, Object.assign({ className: "neko-pressable", link: true, target: target, href: !props.disabled && href }, props, { children:
35
+ children })
36
+ ));
37
+
38
+ }
@@ -1 +1,9 @@
1
- export*from"./Button";export*from"./FloatingButton";export*from"./Link";export*from"./Pressable";export*from"./Dropdown";export*from"./Breadcrumb";export*from"./menu/Menu";export*from"./FloatingMenu";export*from"./ActionsDrawer";
1
+ export * from "./Button";
2
+ export * from "./FloatingButton";
3
+ export * from "./Link";
4
+ export * from "./Pressable";
5
+ export * from "./Dropdown";
6
+ export * from "./Breadcrumb";
7
+ export * from "./menu/Menu";
8
+ export * from "./FloatingMenu";
9
+ export * from "./ActionsDrawer";
@@ -1 +1,98 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/menu/HorizontalMenu.js";var _excluded=["item","linkPaddingH","handlePress","linkProps","activeIndex","activeKey","activeColor","color","sizeCode","index"],_excluded2=["active","key"],_excluded3=["gap","height","items","onChange","onChangeIndex","activeIndex"];import{omit,pipe}from'ramda';import React from'react';import{IconText}from"../../presentation/IconLabel";import{Link}from"../Link";import{SubmenuWrapper}from"./SubmenuWrapper";import{View}from"../../structure/View";import{useColorConverter}from"../../../modifiers/colorConverter";import{useSizeConverter}from"../../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";function Item(_ref){var item=_ref.item,_ref$linkPaddingH=_ref.linkPaddingH,linkPaddingH=_ref$linkPaddingH===void 0?'md':_ref$linkPaddingH,handlePress=_ref.handlePress,linkProps=_ref.linkProps,activeIndex=_ref.activeIndex,activeKey=_ref.activeKey,_ref$activeColor=_ref.activeColor,activeColor=_ref$activeColor===void 0?'primary':_ref$activeColor,color=_ref.color,sizeCode=_ref.sizeCode,index=_ref.index,props=_objectWithoutProperties(_ref,_excluded);activeColor=activeColor||'primary';var _omit=omit(['onClick','onPress'],item),active=_omit.active,key=_omit.key,childProps=_objectWithoutProperties(_omit,_excluded2);if(!active&&activeIndex>=0)active=activeIndex===index;if(!active&&activeKey!==undefined)active=activeKey===item.key;return _jsx(SubmenuWrapper,{item:item,onChange:handlePress,activeKey:activeKey,color:color,placement:"bottomRight",hideIcon:true,children:_jsx(Link,Object.assign({fullH:true,center:true,paddingH:linkPaddingH},linkProps,{onPress:function onPress(){return handlePress(item,index);},children:_jsx(IconText,Object.assign({color:active?activeColor:color,fullH:true,marginT:3,borderB:3,borderColor:active?activeColor:'transparent',transition:"border-color 0.6s ease",size:sizeCode},childProps))}),key||index)});}export function HorizontalMenu(rootProps){var _this=this;var _pipe=pipe(useColorConverter(),useSizeConverter('icons','md'),useThemeComponentModifier('HorizontalMenu'))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],sizeCode=_pipe2$.sizeCode,color=_pipe2$.color,formattedProps=_pipe2[1];var _formattedProps$gap=formattedProps.gap,gap=_formattedProps$gap===void 0?'sm':_formattedProps$gap,_formattedProps$heigh=formattedProps.height,height=_formattedProps$heigh===void 0?50:_formattedProps$heigh,items=formattedProps.items,onChange=formattedProps.onChange,onChangeIndex=formattedProps.onChangeIndex,activeIndex=formattedProps.activeIndex,props=_objectWithoutProperties(formattedProps,_excluded3);var handlePress=React.useCallback(function(item,index){if(!!onChange)onChange(item,index);if(!!onChangeIndex)onChangeIndex(index);if(!!item.onPress)item.onPress();if(!!item.onClick)item.onClick();},[onChange,onChangeIndex]);return _jsx(View,Object.assign({className:"neko-horizontal-menu",row:true,gap:gap,height:height,centerV:true},props,{children:items.map(function(item,index){return _jsx(Item,Object.assign({item:item,handlePress:handlePress,color:color,sizeCode:sizeCode,index:index,activeIndex:activeIndex},props),item.key||index);})}));}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/menu/HorizontalMenu.js";var _excluded = ["item", "linkPaddingH", "handlePress", "linkProps", "activeIndex", "activeKey", "activeColor", "color", "sizeCode", "index"],_excluded2 = ["active", "key", "disabled"],_excluded3 = ["gap", "height", "items", "onChange", "onChangeIndex", "activeIndex"];function _slicedToArray(r, e) {return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(r, a) {if (r) {if ("string" == typeof r) return _arrayLikeToArray(r, a);var t = {}.toString.call(r).slice(8, -1);return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;}}function _arrayLikeToArray(r, a) {(null == a || a > r.length) && (a = r.length);for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];return n;}function _iterableToArrayLimit(r, l) {var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];if (null != t) {var e,n,i,u,a = [],f = !0,o = !1;try {if (i = (t = t.call(r)).next, 0 === l) {if (Object(t) !== t) return;f = !1;} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);} catch (r) {o = !0, n = r;} finally {try {if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;} finally {if (o) throw n;}}return a;}}function _arrayWithHoles(r) {if (Array.isArray(r)) return r;}function _objectWithoutProperties(e, t) {if (null == e) return {};var o,r,i = _objectWithoutPropertiesLoose(e, t);if (Object.getOwnPropertySymbols) {var n = Object.getOwnPropertySymbols(e);for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);}return i;}function _objectWithoutPropertiesLoose(r, e) {if (null == r) return {};var t = {};for (var n in r) if ({}.hasOwnProperty.call(r, n)) {if (-1 !== e.indexOf(n)) continue;t[n] = r[n];}return t;}import { omit, pipe } from 'ramda';
2
+ import React from 'react';
3
+
4
+ import { IconText } from "../../presentation/IconLabel";
5
+ import { Link } from "../Link";
6
+ import { SubmenuWrapper } from "./SubmenuWrapper";
7
+ import { View } from "../../structure/View";
8
+ import { useColorConverter } from "../../../modifiers/colorConverter";
9
+ import { useSizeConverter } from "../../../modifiers/sizeConverter";
10
+ import { useThemeComponentModifier } from "../../../modifiers/themeComponent";import { jsx as _jsx } from "react/jsx-runtime";
11
+
12
+ function Item(_ref)
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+ {var item = _ref.item,_ref$linkPaddingH = _ref.linkPaddingH,linkPaddingH = _ref$linkPaddingH === void 0 ? 'md' : _ref$linkPaddingH,handlePress = _ref.handlePress,linkProps = _ref.linkProps,activeIndex = _ref.activeIndex,activeKey = _ref.activeKey,_ref$activeColor = _ref.activeColor,activeColor = _ref$activeColor === void 0 ? 'primary' : _ref$activeColor,color = _ref.color,sizeCode = _ref.sizeCode,index = _ref.index,props = _objectWithoutProperties(_ref, _excluded);
25
+ activeColor = activeColor || 'primary';
26
+ var _omit = omit(['onClick', 'onPress'], item),active = _omit.active,key = _omit.key,disabled = _omit.disabled,childProps = _objectWithoutProperties(_omit, _excluded2);
27
+ if (!active && activeIndex >= 0) active = activeIndex === index;
28
+ if (!active && activeKey !== undefined) active = activeKey === item.key;
29
+
30
+ return (
31
+ _jsx(SubmenuWrapper, {
32
+ item: item,
33
+ onChange: handlePress,
34
+ activeKey: activeKey,
35
+ color: color,
36
+ placement: "bottomRight",
37
+ hideIcon: true, children:
38
+
39
+ _jsx(Link, Object.assign({
40
+
41
+ fullH: true,
42
+ center: true,
43
+ paddingH: linkPaddingH,
44
+ disabled: disabled },
45
+ linkProps, {
46
+ onPress: function onPress() {return handlePress(item, index);}, children:
47
+
48
+ _jsx(IconText, Object.assign({
49
+ color: active ? activeColor : color,
50
+ fullH: true,
51
+ marginT: 3,
52
+ borderB: 3,
53
+ borderColor: active ? activeColor : 'transparent',
54
+ transition: "border-color 0.6s ease",
55
+ size: sizeCode },
56
+ childProps)
57
+ ) }), key || index
58
+ ) }
59
+ ));
60
+
61
+ }
62
+
63
+ export function HorizontalMenu(rootProps) {var _this = this;
64
+ var _pipe = pipe(
65
+ useColorConverter(),
66
+ useSizeConverter('icons', 'md'),
67
+ useThemeComponentModifier('HorizontalMenu')
68
+ )([{}, rootProps]),_pipe2 = _slicedToArray(_pipe, 2),_pipe2$ = _pipe2[0],sizeCode = _pipe2$.sizeCode,color = _pipe2$.color,formattedProps = _pipe2[1];
69
+
70
+ var _formattedProps$gap = formattedProps.gap,gap = _formattedProps$gap === void 0 ? 'sm' : _formattedProps$gap,_formattedProps$heigh = formattedProps.height,height = _formattedProps$heigh === void 0 ? 50 : _formattedProps$heigh,items = formattedProps.items,onChange = formattedProps.onChange,onChangeIndex = formattedProps.onChangeIndex,activeIndex = formattedProps.activeIndex,props = _objectWithoutProperties(formattedProps, _excluded3);
71
+
72
+ var handlePress = React.useCallback(
73
+ function (item, index) {
74
+ if (!!onChange) onChange(item, index);
75
+ if (!!onChangeIndex) onChangeIndex(index);
76
+ if (!!item.onPress) item.onPress();
77
+ if (!!item.onClick) item.onClick();
78
+ },
79
+ [onChange, onChangeIndex]
80
+ );
81
+
82
+ return (
83
+ _jsx(View, Object.assign({ className: "neko-horizontal-menu", row: true, gap: gap, height: height, centerV: true }, props, { children:
84
+ items.map(function (item, index) {return (
85
+ _jsx(Item, Object.assign({
86
+
87
+ item: item,
88
+ handlePress: handlePress,
89
+ color: color,
90
+ sizeCode: sizeCode,
91
+ index: index,
92
+ activeIndex: activeIndex },
93
+ props), item.key || index
94
+ ));}
95
+ ) })
96
+ ));
97
+
98
+ }
@@ -1 +1,7 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/menu/Menu.js";var _excluded=["vertical"];import{HorizontalMenu}from"./HorizontalMenu";import{VerticalMenu}from"./VerticalMenu";import{jsx as _jsx}from"react/jsx-runtime";export function Menu(_ref){var vertical=_ref.vertical,props=_objectWithoutProperties(_ref,_excluded);if(!!vertical)return _jsx(VerticalMenu,Object.assign({},props));return _jsx(HorizontalMenu,Object.assign({},props));}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/menu/Menu.js";var _excluded = ["vertical"];function _objectWithoutProperties(e, t) {if (null == e) return {};var o,r,i = _objectWithoutPropertiesLoose(e, t);if (Object.getOwnPropertySymbols) {var n = Object.getOwnPropertySymbols(e);for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);}return i;}function _objectWithoutPropertiesLoose(r, e) {if (null == r) return {};var t = {};for (var n in r) if ({}.hasOwnProperty.call(r, n)) {if (-1 !== e.indexOf(n)) continue;t[n] = r[n];}return t;}import { HorizontalMenu } from "./HorizontalMenu";
2
+ import { VerticalMenu } from "./VerticalMenu";import { jsx as _jsx } from "react/jsx-runtime";
3
+
4
+ export function Menu(_ref) {var vertical = _ref.vertical,props = _objectWithoutProperties(_ref, _excluded);
5
+ if (!!vertical) return _jsx(VerticalMenu, Object.assign({}, props));
6
+ return _jsx(HorizontalMenu, Object.assign({}, props));
7
+ }
@@ -1 +1,16 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/menu/SubmenuWrapper.js";var _excluded=["item","children","placement","hideIcon"];import{Dropdown}from"../Dropdown";import{Icon}from"../../presentation/Icon";import{View}from"../../structure/View";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function SubmenuWrapper(_ref){var _item$subItems;var item=_ref.item,children=_ref.children,placement=_ref.placement,hideIcon=_ref.hideIcon,props=_objectWithoutProperties(_ref,_excluded);if(!((_item$subItems=item.subItems)!=null&&_item$subItems.length))return children;return _jsx(Dropdown,Object.assign({popoverProps:{placement:placement||'rightTop'},items:item.subItems,trigger:"hover"},props,{children:_jsxs(View,{flex:true,row:true,gap:"xxs",center:true,fullH:true,children:[children,!hideIcon&&_jsx(Icon,{name:"arrow-right-s-line"})]})}));}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/menu/SubmenuWrapper.js";var _excluded = ["item", "children", "placement", "hideIcon"];function _objectWithoutProperties(e, t) {if (null == e) return {};var o,r,i = _objectWithoutPropertiesLoose(e, t);if (Object.getOwnPropertySymbols) {var n = Object.getOwnPropertySymbols(e);for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);}return i;}function _objectWithoutPropertiesLoose(r, e) {if (null == r) return {};var t = {};for (var n in r) if ({}.hasOwnProperty.call(r, n)) {if (-1 !== e.indexOf(n)) continue;t[n] = r[n];}return t;}import { Dropdown } from "../Dropdown";
2
+ import { Icon } from "../../presentation/Icon";
3
+ import { View } from "../../structure/View";import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+
5
+ export function SubmenuWrapper(_ref) {var _item$subItems;var item = _ref.item,children = _ref.children,placement = _ref.placement,hideIcon = _ref.hideIcon,props = _objectWithoutProperties(_ref, _excluded);
6
+ if (!((_item$subItems = item.subItems) != null && _item$subItems.length)) return children;
7
+
8
+ return (
9
+ _jsx(Dropdown, Object.assign({ popoverProps: { placement: placement || 'rightTop' }, items: item.subItems, trigger: "hover" }, props, { children:
10
+ _jsxs(View, { flex: true, row: true, gap: "xxs", center: true, fullH: true, children: [
11
+ children,
12
+ !hideIcon && _jsx(Icon, { name: "arrow-right-s-line" })] }
13
+ ) })
14
+ ));
15
+
16
+ }
@@ -1 +1,133 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/menu/VerticalMenu.js";var _excluded=["item","linkPaddingH","linkPaddingV","linkMinHeight","handlePress","linkProps","activeIndex","activeKey","activeColor","color","sizeCode","index"],_excluded2=["active","key"],_excluded3=["item"],_excluded4=["gap","items","onChange","onChangeIndex","withDivider"];import{omit,pipe}from'ramda';import React from'react';import tinycolor from'tinycolor2';import{Divider}from"../../helpers/Separator";import{IconText}from"../../presentation/IconLabel";import{Link}from"../Link";import{List}from"../../list/FlatList";import{SubmenuWrapper}from"./SubmenuWrapper";import{Text}from"../../text/Text";import{View}from"../../structure/View";import{moveScale}from"../../../theme/helpers/sizeScale";import{useColorConverter}from"../../../modifiers/colorConverter";import{useSizeConverter}from"../../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../../modifiers/themeComponent";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";function LinkItem(_ref){var item=_ref.item,_ref$linkPaddingH=_ref.linkPaddingH,linkPaddingH=_ref$linkPaddingH===void 0?'md':_ref$linkPaddingH,_ref$linkPaddingV=_ref.linkPaddingV,linkPaddingV=_ref$linkPaddingV===void 0?'xs':_ref$linkPaddingV,linkMinHeight=_ref.linkMinHeight,handlePress=_ref.handlePress,linkProps=_ref.linkProps,activeIndex=_ref.activeIndex,activeKey=_ref.activeKey,_ref$activeColor=_ref.activeColor,activeColor=_ref$activeColor===void 0?'primary':_ref$activeColor,color=_ref.color,sizeCode=_ref.sizeCode,index=_ref.index,props=_objectWithoutProperties(_ref,_excluded);activeColor=activeColor||'primary';var _omit=omit(['onClick','onPress'],item),active=_omit.active,key=_omit.key,childProps=_objectWithoutProperties(_omit,_excluded2);if(!active&&activeIndex>=0)active=activeIndex===index;if(!active&&activeKey!==undefined)active=activeKey===item.key;var bg=active&&tinycolor(color).setAlpha(0.03).toString();linkMinHeight=linkMinHeight||moveScale(sizeCode,1);return _jsx(SubmenuWrapper,{item:item,onChange:handlePress,activeKey:activeKey,color:color,children:_jsx(Link,Object.assign({flex:true,center:true,paddingH:linkPaddingH,paddingV:linkPaddingV,minHeight:linkMinHeight,borderL:3,brColor:active?activeColor:'transparent',bg:bg,transition:"border-color 0.5s ease, background 0.3s ease",hover:{br:0}},linkProps,{onPress:function onPress(){return handlePress(item,index);},children:_jsx(IconText,Object.assign({addingV:active&&4,color:active?activeColor:color,fullW:true,size:sizeCode},childProps))}))});}function DividerItem(_ref2){var _ref2$linkPaddingH=_ref2.linkPaddingH,linkPaddingH=_ref2$linkPaddingH===void 0?'md':_ref2$linkPaddingH,item=_ref2.item;var content=_jsx(Divider,Object.assign({height:"xxs",line:true},item));if(!item.label)return content;return _jsxs(_Fragment,{children:[content,_jsx(Text,Object.assign({size:"xs",color:"text4",paddingV:"xs",paddingH:linkPaddingH||'md',strong:true},item))]});}function Item(_ref3){var item=_ref3.item,props=_objectWithoutProperties(_ref3,_excluded3);if(item.type==='divider')return _jsx(DividerItem,Object.assign({item:item},props));return _jsx(LinkItem,Object.assign({item:item},props));}export function VerticalMenu(rootProps){var _this=this;var _pipe=pipe(useColorConverter('text'),useSizeConverter('icons','md'),useThemeComponentModifier('VerticalMenu'))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],sizeCode=_pipe2$.sizeCode,color=_pipe2$.color,formattedProps=_pipe2[1];var _formattedProps$gap=formattedProps.gap,gap=_formattedProps$gap===void 0?'sm':_formattedProps$gap,items=formattedProps.items,onChange=formattedProps.onChange,onChangeIndex=formattedProps.onChangeIndex,withDivider=formattedProps.withDivider,props=_objectWithoutProperties(formattedProps,_excluded4);var handlePress=React.useCallback(function(item,index){if(!!onChange)onChange(item,index);if(!!onChangeIndex)onChangeIndex(index);if(!!item.onPress)item.onPress();if(!!item.onClick)item.onClick();},[onChange,onChangeIndex]);return _jsx(View,Object.assign({className:"neko-vertical-menu",gap:gap,width:"100%"},props,{children:_jsx(List,{data:items,keyExtractor:function keyExtractor(item,index){return item.key||index;},divider:withDivider,renderItem:function renderItem(_ref4){var item=_ref4.item,index=_ref4.index;return _jsx(Item,Object.assign({item:item,handlePress:handlePress,color:color,sizeCode:sizeCode,index:index},props),item.key||index);}})}));return _jsx(View,Object.assign({className:"neko-vertical-menu",gap:gap,width:"100%"},props,{children:items.map(function(item,index){return _jsx(Item,Object.assign({item:item,handlePress:handlePress,color:color,sizeCode:sizeCode,index:index},props),item.key||index);})}));}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/menu/VerticalMenu.js";var _excluded = ["item", "linkPaddingH", "linkPaddingV", "linkMinHeight", "handlePress", "linkProps", "activeIndex", "activeKey", "activeColor", "color", "sizeCode", "index"],_excluded2 = ["active", "key", "disabled"],_excluded3 = ["item"],_excluded4 = ["gap", "items", "onChange", "onChangeIndex", "withDivider"];function _slicedToArray(r, e) {return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();}function _nonIterableRest() {throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(r, a) {if (r) {if ("string" == typeof r) return _arrayLikeToArray(r, a);var t = {}.toString.call(r).slice(8, -1);return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;}}function _arrayLikeToArray(r, a) {(null == a || a > r.length) && (a = r.length);for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];return n;}function _iterableToArrayLimit(r, l) {var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];if (null != t) {var e,n,i,u,a = [],f = !0,o = !1;try {if (i = (t = t.call(r)).next, 0 === l) {if (Object(t) !== t) return;f = !1;} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);} catch (r) {o = !0, n = r;} finally {try {if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;} finally {if (o) throw n;}}return a;}}function _arrayWithHoles(r) {if (Array.isArray(r)) return r;}function _objectWithoutProperties(e, t) {if (null == e) return {};var o,r,i = _objectWithoutPropertiesLoose(e, t);if (Object.getOwnPropertySymbols) {var n = Object.getOwnPropertySymbols(e);for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);}return i;}function _objectWithoutPropertiesLoose(r, e) {if (null == r) return {};var t = {};for (var n in r) if ({}.hasOwnProperty.call(r, n)) {if (-1 !== e.indexOf(n)) continue;t[n] = r[n];}return t;}import { omit, pipe } from 'ramda';
2
+ import React from 'react';
3
+ import tinycolor from 'tinycolor2';
4
+
5
+ import { Divider } from "../../helpers/Separator";
6
+ import { IconText } from "../../presentation/IconLabel";
7
+ import { Link } from "../Link";
8
+ import { List } from "../../list/FlatList";
9
+ import { SubmenuWrapper } from "./SubmenuWrapper";
10
+ import { Text } from "../../text/Text";
11
+ import { View } from "../../structure/View";
12
+ import { moveScale } from "../../../theme/helpers/sizeScale";
13
+ import { useColorConverter } from "../../../modifiers/colorConverter";
14
+ import { useSizeConverter } from "../../../modifiers/sizeConverter";
15
+ import { useThemeComponentModifier } from "../../../modifiers/themeComponent";import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
16
+
17
+ function LinkItem(_ref)
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+ {var item = _ref.item,_ref$linkPaddingH = _ref.linkPaddingH,linkPaddingH = _ref$linkPaddingH === void 0 ? 'md' : _ref$linkPaddingH,_ref$linkPaddingV = _ref.linkPaddingV,linkPaddingV = _ref$linkPaddingV === void 0 ? 'xs' : _ref$linkPaddingV,linkMinHeight = _ref.linkMinHeight,handlePress = _ref.handlePress,linkProps = _ref.linkProps,activeIndex = _ref.activeIndex,activeKey = _ref.activeKey,_ref$activeColor = _ref.activeColor,activeColor = _ref$activeColor === void 0 ? 'primary' : _ref$activeColor,color = _ref.color,sizeCode = _ref.sizeCode,index = _ref.index,props = _objectWithoutProperties(_ref, _excluded);
32
+ activeColor = activeColor || 'primary';
33
+ var _omit = omit(['onClick', 'onPress'], item),active = _omit.active,key = _omit.key,disabled = _omit.disabled,childProps = _objectWithoutProperties(_omit, _excluded2);
34
+ if (!active && activeIndex >= 0) active = activeIndex === index;
35
+ if (!active && activeKey !== undefined) active = activeKey === item.key;
36
+ var bg = active && tinycolor(color).setAlpha(0.03).toString();
37
+ linkMinHeight = linkMinHeight || moveScale(sizeCode, 1);
38
+
39
+ return (
40
+ _jsx(SubmenuWrapper, { item: item, onChange: handlePress, activeKey: activeKey, color: color, children:
41
+ _jsx(Link, Object.assign({
42
+ flex: true,
43
+ center: true,
44
+ paddingH: linkPaddingH,
45
+ paddingV: linkPaddingV,
46
+ minHeight: linkMinHeight,
47
+ borderL: 3,
48
+ brColor: active ? activeColor : 'transparent',
49
+ bg: bg,
50
+ transition: "border-color 0.5s ease, background 0.3s ease",
51
+ hover: { br: 0 },
52
+ disabled: disabled },
53
+ linkProps, {
54
+ onPress: function onPress() {return handlePress(item, index);}, children:
55
+
56
+ _jsx(IconText, Object.assign({ addingV: active && 4, color: active ? activeColor : color, fullW: true, size: sizeCode }, childProps)) })
57
+ ) }
58
+ ));
59
+
60
+ }
61
+
62
+ function DividerItem(_ref2) {var _ref2$linkPaddingH = _ref2.linkPaddingH,linkPaddingH = _ref2$linkPaddingH === void 0 ? 'md' : _ref2$linkPaddingH,item = _ref2.item;
63
+ var content = _jsx(Divider, Object.assign({ height: "xxs", line: true }, item));
64
+ if (!item.label) return content;
65
+ return (
66
+ _jsxs(_Fragment, { children: [
67
+ content,
68
+ _jsx(Text, Object.assign({ size: "xs", color: "text4", paddingV: "xs", paddingH: linkPaddingH || 'md', strong: true }, item))] }
69
+ ));
70
+
71
+ }
72
+
73
+ function Item(_ref3) {var item = _ref3.item,props = _objectWithoutProperties(_ref3, _excluded3);
74
+ if (item.type === 'divider') return _jsx(DividerItem, Object.assign({ item: item }, props));
75
+ return _jsx(LinkItem, Object.assign({ item: item }, props));
76
+ }
77
+
78
+ export function VerticalMenu(rootProps) {var _this = this;
79
+ var _pipe = pipe(
80
+ useColorConverter('text'),
81
+ useSizeConverter('icons', 'md'),
82
+ useThemeComponentModifier('VerticalMenu')
83
+ )([{}, rootProps]),_pipe2 = _slicedToArray(_pipe, 2),_pipe2$ = _pipe2[0],sizeCode = _pipe2$.sizeCode,color = _pipe2$.color,formattedProps = _pipe2[1];
84
+
85
+ var _formattedProps$gap = formattedProps.gap,gap = _formattedProps$gap === void 0 ? 'sm' : _formattedProps$gap,items = formattedProps.items,onChange = formattedProps.onChange,onChangeIndex = formattedProps.onChangeIndex,withDivider = formattedProps.withDivider,props = _objectWithoutProperties(formattedProps, _excluded4);
86
+
87
+ var handlePress = React.useCallback(
88
+ function (item, index) {
89
+ if (!!onChange) onChange(item, index);
90
+ if (!!onChangeIndex) onChangeIndex(index);
91
+ if (!!item.onPress) item.onPress();
92
+ if (!!item.onClick) item.onClick();
93
+ },
94
+ [onChange, onChangeIndex]
95
+ );
96
+
97
+ return (
98
+ _jsx(View, Object.assign({ className: "neko-vertical-menu", gap: gap, width: "100%" }, props, { children:
99
+ _jsx(List, {
100
+ data: items,
101
+ keyExtractor: function keyExtractor(item, index) {return item.key || index;},
102
+ divider: withDivider,
103
+ renderItem: function renderItem(_ref4) {var item = _ref4.item,index = _ref4.index;return (
104
+ _jsx(Item, Object.assign({
105
+
106
+ item: item,
107
+ handlePress: handlePress,
108
+ color: color,
109
+ sizeCode: sizeCode,
110
+ index: index },
111
+ props), item.key || index
112
+ ));} }
113
+
114
+ ) })
115
+ ));
116
+
117
+
118
+ return (
119
+ _jsx(View, Object.assign({ className: "neko-vertical-menu", gap: gap, width: "100%" }, props, { children:
120
+ items.map(function (item, index) {return (
121
+ _jsx(Item, Object.assign({
122
+
123
+ item: item,
124
+ handlePress: handlePress,
125
+ color: color,
126
+ sizeCode: sizeCode,
127
+ index: index },
128
+ props), item.key || index
129
+ ));}
130
+ ) })
131
+ ));
132
+
133
+ }
@@ -1 +1,10 @@
1
- var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/animations/AnimatedTopBar.js";import{AnimatedView}from"./AnimatedView";import{TopBar}from"../structure";import{jsx as _jsx}from"react/jsx-runtime";export function AnimatedTopBar(props){return _jsx(AnimatedView,{style:{position:'absolute',top:0,left:0,right:0,zIndex:90},fade:true,children:_jsx(TopBar,Object.assign({},props))});}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/animations/AnimatedTopBar.js";import { AnimatedView } from "./AnimatedView";
2
+ import { TopBar } from "../structure";import { jsx as _jsx } from "react/jsx-runtime";
3
+
4
+ export function AnimatedTopBar(props) {
5
+ return (
6
+ _jsx(AnimatedView, { style: { position: 'absolute', top: 0, left: 0, right: 0, zIndex: 90 }, fade: true, children:
7
+ _jsx(TopBar, Object.assign({}, props)) }
8
+ ));
9
+
10
+ }
@@ -1 +1,34 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/animations/AnimatedTopBar.native.js";var _excluded=["showAfter","duration","fade","slide"];import Animated,{useAnimatedStyle,useSharedValue,useAnimatedReaction,withTiming}from'react-native-reanimated';import{TopBar}from"../structure";import{useReanimatedScroll}from"./ReanimatedScrollHandler";import{useSafeAreaInsets}from"../../abstractions/helpers/useSafeAreaInsets";import{jsx as _jsx}from"react/jsx-runtime";export function AnimatedTopBar(_ref){var _ref$showAfter=_ref.showAfter,showAfter=_ref$showAfter===void 0?90:_ref$showAfter,_ref$duration=_ref.duration,duration=_ref$duration===void 0?300:_ref$duration,_ref$fade=_ref.fade,fade=_ref$fade===void 0?true:_ref$fade,slide=_ref.slide,props=_objectWithoutProperties(_ref,_excluded);var _useReanimatedScroll=useReanimatedScroll(),scrollY=_useReanimatedScroll.scrollY;var _useSafeAreaInsets=useSafeAreaInsets(),safeTop=_useSafeAreaInsets.top;var visibility=useSharedValue(0);useAnimatedReaction(function(){return scrollY.value>=showAfter-safeTop;},function(shouldShow,prev){if(shouldShow!==prev){visibility.value=withTiming(shouldShow?1:0,{duration:duration});}});var animatedStyle=useAnimatedStyle(function(){var style={};if(fade)style.opacity=visibility.value;if(slide)style.transform=[{translateY:(1-visibility.value)*(-50-safeTop)}];return style;});return _jsx(Animated.View,{style:[{position:'absolute',top:0,left:0,right:0,zIndex:90},animatedStyle],children:_jsx(TopBar,Object.assign({},props))});}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/animations/AnimatedTopBar.native.js";var _excluded = ["showAfter", "duration", "fade", "slide"];function _objectWithoutProperties(e, t) {if (null == e) return {};var o,r,i = _objectWithoutPropertiesLoose(e, t);if (Object.getOwnPropertySymbols) {var n = Object.getOwnPropertySymbols(e);for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);}return i;}function _objectWithoutPropertiesLoose(r, e) {if (null == r) return {};var t = {};for (var n in r) if ({}.hasOwnProperty.call(r, n)) {if (-1 !== e.indexOf(n)) continue;t[n] = r[n];}return t;}import Animated, { useAnimatedStyle, useSharedValue, useAnimatedReaction, withTiming } from 'react-native-reanimated';
2
+
3
+ import { TopBar } from "../structure";
4
+ import { useReanimatedScroll } from "./ReanimatedScrollHandler";
5
+ import { useSafeAreaInsets } from "../../abstractions/helpers/useSafeAreaInsets";import { jsx as _jsx } from "react/jsx-runtime";
6
+
7
+ export function AnimatedTopBar(_ref) {var _ref$showAfter = _ref.showAfter,showAfter = _ref$showAfter === void 0 ? 90 : _ref$showAfter,_ref$duration = _ref.duration,duration = _ref$duration === void 0 ? 300 : _ref$duration,_ref$fade = _ref.fade,fade = _ref$fade === void 0 ? true : _ref$fade,slide = _ref.slide,props = _objectWithoutProperties(_ref, _excluded);
8
+ var _useReanimatedScroll = useReanimatedScroll(),scrollY = _useReanimatedScroll.scrollY;
9
+ var _useSafeAreaInsets = useSafeAreaInsets(),safeTop = _useSafeAreaInsets.top;
10
+
11
+ var visibility = useSharedValue(0);
12
+
13
+ useAnimatedReaction(
14
+ function () {return scrollY.value >= showAfter - safeTop;},
15
+ function (shouldShow, prev) {
16
+ if (shouldShow !== prev) {
17
+ visibility.value = withTiming(shouldShow ? 1 : 0, { duration: duration });
18
+ }
19
+ }
20
+ );
21
+
22
+ var animatedStyle = useAnimatedStyle(function () {
23
+ var style = {};
24
+ if (fade) style.opacity = visibility.value;
25
+ if (slide) style.transform = [{ translateY: (1 - visibility.value) * (-50 - safeTop) }];
26
+ return style;
27
+ });
28
+
29
+ return (
30
+ _jsx(Animated.View, { style: [{ position: 'absolute', top: 0, left: 0, right: 0, zIndex: 90 }, animatedStyle], children:
31
+ _jsx(TopBar, Object.assign({}, props)) }
32
+ ));
33
+
34
+ }
@@ -1 +1 @@
1
- export{AnimatedTopBar}from"./AnimatedTopBar.native";
1
+ export { AnimatedTopBar } from "./AnimatedTopBar.native";