@neko-os/ui 0.2.3 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) 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 +9 -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/abstractions/TouchableOpacity.native.js +8 -2
  365. package/src/components/actions/ActionsDrawer.js +1 -1
  366. package/src/components/actions/Button.js +3 -1
  367. package/src/components/actions/FloatingMenu.js +1 -1
  368. package/src/components/actions/menu/HorizontalMenu.js +2 -1
  369. package/src/components/actions/menu/VerticalMenu.js +2 -1
  370. package/src/components/filter/DateFilter.js +72 -0
  371. package/src/components/filter/FilterGroup.js +17 -0
  372. package/src/components/filter/FilterHandler.js +54 -0
  373. package/src/components/filter/FilterItem.js +30 -0
  374. package/src/components/filter/PopoverFilterItem.js +84 -0
  375. package/src/components/filter/SearchInput.js +49 -0
  376. package/src/components/filter/index.js +6 -0
  377. package/src/components/form/Form.js +9 -3
  378. package/src/components/form/FormItem.js +26 -1
  379. package/src/components/form/FormWrapperComponent.js +12 -3
  380. package/src/components/form/useNewForm.js +55 -4
  381. package/src/components/helpers/Separator.js +15 -11
  382. package/src/components/helpers/index.js +1 -0
  383. package/src/components/index.js +2 -0
  384. package/src/components/inputs/BooleanSelect.js +14 -0
  385. package/src/components/inputs/DateInput.js +3 -1
  386. package/src/components/inputs/DateRangeInput.js +41 -0
  387. package/src/components/inputs/Editable.js +129 -0
  388. package/src/components/inputs/EnabledSelect.js +14 -0
  389. package/src/components/inputs/InputWrapper.js +7 -4
  390. package/src/components/inputs/LinkInput.js +1 -1
  391. package/src/components/inputs/NumberInput.js +10 -5
  392. package/src/components/inputs/NumberRangeInput.js +41 -0
  393. package/src/components/inputs/PasswordInput.js +24 -0
  394. package/src/components/inputs/Picker.js +3 -3
  395. package/src/components/inputs/Select.js +61 -47
  396. package/src/components/inputs/TextArea.js +5 -0
  397. package/src/components/inputs/TextInput.js +14 -4
  398. package/src/components/inputs/UploadInput.js +140 -0
  399. package/src/components/inputs/index.js +9 -0
  400. package/src/components/inputs/upload/Upload.js +99 -0
  401. package/src/components/inputs/upload/Upload.native.js +154 -0
  402. package/src/components/inputs/upload/useUploadState.js +143 -0
  403. package/src/components/layout/LayoutHeader.js +1 -0
  404. package/src/components/presentation/AvatarLabel.js +1 -1
  405. package/src/components/presentation/AvatarsGroup.js +30 -0
  406. package/src/components/presentation/Badge.js +3 -2
  407. package/src/components/presentation/ContentLabel.js +1 -1
  408. package/src/components/presentation/IconLabel.js +1 -0
  409. package/src/components/presentation/Progress.js +20 -0
  410. package/src/components/presentation/index.js +2 -0
  411. package/src/components/sections/Section.js +1 -1
  412. package/src/components/sections/SectionItemLink.js +4 -2
  413. package/src/components/steps/ActiveStepContent.js +16 -0
  414. package/src/components/steps/StepsHandler.js +53 -0
  415. package/src/components/steps/StepsMenu.js +14 -0
  416. package/src/components/steps/StepsNavigation.js +37 -0
  417. package/src/components/steps/index.js +4 -0
  418. package/src/components/structure/Affix.js +34 -0
  419. package/src/components/structure/Affix.native.js +3 -0
  420. package/src/components/structure/Card.js +1 -0
  421. package/src/components/structure/TopBar.js +13 -1
  422. package/src/components/structure/index.js +1 -0
  423. package/src/components/structure/overlay/OverlayHandler.js +9 -1
  424. package/src/components/structure/popover/Popover.js +22 -5
  425. package/src/components/table/DataTable.js +7 -2
  426. package/src/components/table/Table.js +2 -1
  427. package/src/components/tabs/ActiveTabContent.js +4 -1
  428. package/src/components/text/DateText.js +15 -2
  429. package/src/modifiers/border.js +15 -9
  430. package/src/modifiers/size.js +8 -5
  431. package/src/theme/default/base.js +2 -0
  432. package/src/theme/default/hackerTheme.js +1 -10
  433. package/src/theme/default/paperTheme.js +1 -14
@@ -0,0 +1,41 @@
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/inputs/DateRangeInput.js";var _excluded = ["value", "onChange", "startProps", "endProps", "placeholderStart", "placeholderEnd", "separator"];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 { DateInput } from "./DateInput";
2
+ import { Text } from "../text/Text";
3
+ import { View } from "../structure/View";import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+
5
+ export function DateRangeInput(_ref)
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+ {var value = _ref.value,onChange = _ref.onChange,startProps = _ref.startProps,endProps = _ref.endProps,_ref$placeholderStart = _ref.placeholderStart,placeholderStart = _ref$placeholderStart === void 0 ? 'Start' : _ref$placeholderStart,_ref$placeholderEnd = _ref.placeholderEnd,placeholderEnd = _ref$placeholderEnd === void 0 ? 'End' : _ref$placeholderEnd,_ref$separator = _ref.separator,separator = _ref$separator === void 0 ? '–' : _ref$separator,props = _objectWithoutProperties(_ref, _excluded);
15
+ var handleChangeStart = function handleChangeStart(start) {return onChange == null ? void 0 : onChange(Object.assign({}, value, { start: start }));};
16
+ var handleChangeEnd = function handleChangeEnd(end) {return onChange == null ? void 0 : onChange(Object.assign({}, value, { end: end }));};
17
+
18
+ return (
19
+ _jsxs(View, { row: true, centerV: true, gap: "sm", children: [
20
+ _jsx(DateInput, Object.assign({
21
+ placeholder: placeholderStart,
22
+ value: value == null ? void 0 : value.start,
23
+ onChange: handleChangeStart,
24
+ max: value == null ? void 0 : value.end,
25
+ flex: true },
26
+ props,
27
+ startProps)
28
+ ),
29
+ _jsx(Text, { text4: true, children: separator }),
30
+ _jsx(DateInput, Object.assign({
31
+ placeholder: placeholderEnd,
32
+ value: value == null ? void 0 : value.end,
33
+ onChange: handleChangeEnd,
34
+ min: value == null ? void 0 : value.start,
35
+ flex: true },
36
+ props,
37
+ endProps)
38
+ )] }
39
+ ));
40
+
41
+ }
@@ -0,0 +1,129 @@
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/inputs/Editable.js";var _excluded = ["Input", "renderInput", "onChange", "onClose", "onSubmit", "submitOnChange", "submitWhenHasNoValue", "disableCloseOnBlur", "alwaysEditing"],_excluded2 = ["value", "defaultValue"],_excluded3 = ["children", "hidden", "disabled", "visibleIcon", "emptyLabel", "emptyIcon", "loading"];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 { isEmpty } from 'ramda';
2
+ import React from 'react';
3
+
4
+ import { Icon } from "../presentation/Icon";
5
+ import { IconLabel } from "../presentation/IconLabel";
6
+ import { Loading } from "../state/Loading";
7
+ import { Text } from "../text/Text";
8
+ import { TextInput } from "./TextInput";
9
+ import { View } from "../structure/View";import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+
11
+ function getInputValue(e) {var _e$target;
12
+ return (e == null ? void 0 : (_e$target = e.target) == null ? void 0 : _e$target.value) !== undefined ? e.target.value : e;
13
+ }
14
+
15
+ function hasValue(v) {
16
+ return v !== undefined && v !== null && !isEmpty(v);
17
+ }
18
+
19
+ function EditableInput(_ref)
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+ {var Input = _ref.Input,renderInput = _ref.renderInput,onChange = _ref.onChange,onClose = _ref.onClose,onSubmit = _ref.onSubmit,submitOnChange = _ref.submitOnChange,submitWhenHasNoValue = _ref.submitWhenHasNoValue,disableCloseOnBlur = _ref.disableCloseOnBlur,alwaysEditing = _ref.alwaysEditing,props = _objectWithoutProperties(_ref, _excluded);
31
+ var initialValue = props.value || props.defaultValue;
32
+ var _React$useState = React.useState(initialValue),_React$useState2 = _slicedToArray(_React$useState, 2),value = _React$useState2[0],setValue = _React$useState2[1];
33
+ Input = Input || TextInput;
34
+
35
+ var submit = function submit(val) {
36
+ var inputHasValue = hasValue(val);
37
+ var shouldSubmit = submitWhenHasNoValue || inputHasValue;
38
+ var hasChangedTheValue = val !== initialValue;
39
+ if (shouldSubmit && hasChangedTheValue) {
40
+ onSubmit && onSubmit(val);
41
+ }
42
+ onClose();
43
+ };
44
+
45
+ var handleSubmit = function handleSubmit(e) {return submit(getInputValue(e));};
46
+
47
+ var handleChange = function handleChange(e) {
48
+ var inputValue = getInputValue(e);
49
+ setValue(inputValue);
50
+ onChange && onChange(inputValue);
51
+ if (submitOnChange) submit(inputValue);
52
+ };
53
+
54
+ var _ = props.value,__ = props.defaultValue,inputProps = _objectWithoutProperties(props, _excluded2);
55
+
56
+ if (!!renderInput) {
57
+ return renderInput(Object.assign({ handleSubmit: handleSubmit, handleChange: handleChange, value: value }, inputProps));
58
+ }
59
+
60
+ return (
61
+ _jsx(Input, Object.assign({
62
+ startsOpen: true,
63
+ sm: true,
64
+ value: value,
65
+ onChange: handleChange,
66
+ onKeyDown: function onKeyDown(e) {
67
+ if (e.key === 'Enter' && !e.shiftKey) {
68
+ e.preventDefault();
69
+ handleSubmit(e);
70
+ }
71
+ },
72
+ onBlur: !disableCloseOnBlur && !alwaysEditing ? function () {return submit(value);} : undefined,
73
+ onOpenChange: function onOpenChange(open) {return !open && !alwaysEditing && submit(value);},
74
+ onOk: function onOk() {return submit(value);} },
75
+ inputProps)
76
+ ));
77
+
78
+ }
79
+
80
+ export function Editable(_ref2) {var children = _ref2.children,hidden = _ref2.hidden,disabled = _ref2.disabled,visibleIcon = _ref2.visibleIcon,emptyLabel = _ref2.emptyLabel,emptyIcon = _ref2.emptyIcon,loading = _ref2.loading,props = _objectWithoutProperties(_ref2, _excluded3);
81
+ var _React$useState3 = React.useState(false),_React$useState4 = _slicedToArray(_React$useState3, 2),isEditing = _React$useState4[0],setIsEditing = _React$useState4[1];
82
+ var _React$useState5 = React.useState(false),_React$useState6 = _slicedToArray(_React$useState5, 2),hovered = _React$useState6[0],setHovered = _React$useState6[1];
83
+
84
+ if (!!props.alwaysEditing || isEditing) {
85
+ return (
86
+ _jsx(EditableInput, Object.assign({
87
+ disabled: disabled,
88
+ autoFocus: !props.alwaysEditing,
89
+ onClose: function onClose() {return setIsEditing(false);} },
90
+ props)
91
+ ));
92
+
93
+ }
94
+
95
+ if (disabled) return children;
96
+ if (loading) return _jsx(Loading, {});
97
+
98
+ var hasAnyValue = hasValue(props.value || props.defaultValue);
99
+ var showEmptyLabel = emptyLabel && !hasAnyValue;
100
+
101
+ return (
102
+ _jsxs(View, {
103
+ row: true,
104
+ centerV: true,
105
+ gap: !hidden ? 1 : 0,
106
+ pointer: true,
107
+ border: !hidden ? 1 : 0,
108
+ borderStyle: "dashed",
109
+ borderColor: hovered && !hidden ? 'divider' : 'transparent',
110
+ br: !hidden ? 'xxs' : undefined,
111
+ onClick: function onClick() {
112
+ setIsEditing(true);
113
+ setHovered(false);
114
+ },
115
+ onMouseEnter: function onMouseEnter() {return setHovered(true);},
116
+ onMouseLeave: function onMouseLeave() {return setHovered(false);}, children: [
117
+
118
+ _jsxs(View, { flex: true, minHeight: 17, maxWidth: "100%", children: [
119
+ hovered && !hasAnyValue && props.placeholder && _jsx(Text, { color: "text4", children: props.placeholder }),
120
+ showEmptyLabel ? _jsx(IconLabel, { icon: emptyIcon, label: emptyLabel, color: "text4" }) : children] }
121
+ ),
122
+ !hidden && (visibleIcon || hovered) &&
123
+ _jsx(View, { children:
124
+ _jsx(Icon, { name: "RiEditLine", text4: true }) }
125
+ )] }
126
+
127
+ ));
128
+
129
+ }
@@ -0,0 +1,14 @@
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/inputs/EnabledSelect.js";var _excluded = ["enabledLabel", "disabledLabel", "placeholder"];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 { Select } from "./Select";import { jsx as _jsx } from "react/jsx-runtime";
2
+
3
+ export function EnabledSelect(_ref) {var _ref$enabledLabel = _ref.enabledLabel,enabledLabel = _ref$enabledLabel === void 0 ? 'Enabled' : _ref$enabledLabel,_ref$disabledLabel = _ref.disabledLabel,disabledLabel = _ref$disabledLabel === void 0 ? 'Disabled' : _ref$disabledLabel,placeholder = _ref.placeholder,props = _objectWithoutProperties(_ref, _excluded);
4
+ return (
5
+ _jsx(Select, Object.assign({
6
+ placeholder: placeholder,
7
+ options: [
8
+ { label: enabledLabel, value: false },
9
+ { label: disabledLabel, value: true }] },
10
+
11
+ props)
12
+ ));
13
+
14
+ }
@@ -1 +1,93 @@
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/inputs/InputWrapper.js";var _excluded=["prefix","suffix","prefixIcon","prefixIconColor","suffixIcon","suffixIconColor","loading","error","children","ref"];import{pipe,is}from'ramda';import React from'react';import{Icon}from"../presentation/Icon";import{Loading}from"../state/Loading";import{Text}from"../text/Text";import{View}from"../structure/View";import{useDefaultModifier}from"../../modifiers/default";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var DEFAULT_PROPS={paddingH:'sm',bg:'overlayBG',border:true,br:'md',row:true,gap:'sm'};export function InputWrapper(_ref){var prefix=_ref.prefix,suffix=_ref.suffix,prefixIcon=_ref.prefixIcon,prefixIconColor=_ref.prefixIconColor,suffixIcon=_ref.suffixIcon,suffixIconColor=_ref.suffixIconColor,loading=_ref.loading,error=_ref.error,children=_ref.children,ref=_ref.ref,rootProps=_objectWithoutProperties(_ref,_excluded);var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),hover=_React$useState2[0],setHover=_React$useState2[1];var fallbackInputRef=React.useRef();var inputRef=ref||fallbackInputRef;var _pipe=pipe(useSizeConverter('elementHeights','md'),useThemeComponentModifier('InputWrapper'),useDefaultModifier(DEFAULT_PROPS))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],size=_pipe2$.size,sizeCode=_pipe2$.sizeCode,props=_pipe2[1];var handlePress=function handlePress(){var _inputRef$current;inputRef==null?void 0:(_inputRef$current=inputRef.current)==null?void 0:_inputRef$current.focus==null?void 0:_inputRef$current.focus();};if(!!prefix&&is(String,prefix))prefix=_jsx(Text,{children:prefix});if(!!suffix&&is(String,suffix))suffix=_jsx(Text,{children:suffix});if(!prefix&&!!prefixIcon)prefix=_jsx(Icon,{name:prefixIcon,size:sizeCode,color:prefixIconColor});if(!suffix&&!!suffixIcon)suffix=_jsx(Icon,{name:suffixIcon,size:sizeCode,color:suffixIconColor});if(!prefix&&!!error)suffix=_jsx(Icon,{name:"alert-fill",size:sizeCode,red:true});if(!!loading)suffix=_jsx(Loading,{size:sizeCode});var borderColor=!!hover?'primary_op40':'divider';if(!!error)borderColor='red_op40';var child=React.Children.only(children);var childWithProps=React.cloneElement(child,Object.assign({},child.props,{ref:inputRef}));return _jsxs(View,Object.assign({className:"neko-input-wrapper",height:size,onPress:handlePress,borderColor:borderColor,onMouseEnter:function onMouseEnter(){return setHover(true);},onMouseLeave:function onMouseLeave(){return setHover(false);}},props,{children:[!!prefix&&_jsx(View,{paddingV:5,fullHeight:true,center:true,children:prefix}),_jsx(View,{flex:true,fullH:true,children:childWithProps}),!!suffix&&_jsx(View,{paddingV:5,fullHeight:true,center:true,children:suffix})]}));}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/inputs/InputWrapper.js";var _excluded = ["prefix", "suffix", "prefixIcon", "prefixIconColor", "suffixIcon", "suffixIconColor", "loading", "error", "multiline", "children", "ref"];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
+ import React from 'react';
3
+
4
+ import { Icon } from "../presentation/Icon";
5
+ import { Loading } from "../state/Loading";
6
+ import { Text } from "../text/Text";
7
+ import { View } from "../structure/View";
8
+ import { useDefaultModifier } from "../../modifiers/default";
9
+ import { useSizeConverter } from "../../modifiers/sizeConverter";
10
+ import { useThemeComponentModifier } from "../../modifiers/themeComponent";import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+
12
+ var DEFAULT_PROPS = {
13
+ paddingH: 'sm',
14
+ bg: 'overlayBG',
15
+ border: true,
16
+ br: 'md',
17
+ row: true,
18
+ gap: 'sm'
19
+ };
20
+
21
+ export function InputWrapper(_ref)
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+ {var prefix = _ref.prefix,suffix = _ref.suffix,prefixIcon = _ref.prefixIcon,prefixIconColor = _ref.prefixIconColor,suffixIcon = _ref.suffixIcon,suffixIconColor = _ref.suffixIconColor,loading = _ref.loading,error = _ref.error,multiline = _ref.multiline,children = _ref.children,ref = _ref.ref,rootProps = _objectWithoutProperties(_ref, _excluded);
35
+ var _React$useState = React.useState(false),_React$useState2 = _slicedToArray(_React$useState, 2),hover = _React$useState2[0],setHover = _React$useState2[1];
36
+ var fallbackInputRef = React.useRef();
37
+ var inputRef = ref || fallbackInputRef;
38
+ var _pipe = pipe(
39
+ useSizeConverter('elementHeights', 'md'),
40
+ useThemeComponentModifier('InputWrapper'),
41
+ useDefaultModifier(DEFAULT_PROPS)
42
+ )([{}, rootProps]),_pipe2 = _slicedToArray(_pipe, 2),_pipe2$ = _pipe2[0],size = _pipe2$.size,sizeCode = _pipe2$.sizeCode,props = _pipe2[1];
43
+
44
+ var handlePress = function handlePress() {var _inputRef$current;
45
+ inputRef == null ? void 0 : (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.focus == null ? void 0 : _inputRef$current.focus();
46
+ };
47
+
48
+ if (!!prefix && is(String, prefix)) prefix = _jsx(Text, { children: prefix });
49
+ if (!!suffix && is(String, suffix)) suffix = _jsx(Text, { children: suffix });
50
+ if (!prefix && !!prefixIcon) prefix = _jsx(Icon, { name: prefixIcon, size: sizeCode, color: prefixIconColor });
51
+ if (!suffix && !!suffixIcon) suffix = _jsx(Icon, { name: suffixIcon, size: sizeCode, color: suffixIconColor });
52
+ if (!prefix && !!error) suffix = _jsx(Icon, { name: "alert-fill", size: sizeCode, red: true });
53
+ if (!!loading) suffix = _jsx(Loading, { size: sizeCode });
54
+
55
+ var borderColor = !!hover ? 'primary_op40' : 'divider';
56
+ if (!!error) borderColor = 'red_op40';
57
+
58
+ var child = React.Children.only(children);
59
+ var childWithProps = React.cloneElement(child, Object.assign({},
60
+ child.props, {
61
+ ref: inputRef })
62
+ );
63
+
64
+ return (
65
+ _jsxs(View, Object.assign({
66
+ className: "neko-input-wrapper",
67
+ height: multiline ? undefined : size,
68
+ minHeight: multiline ? size : undefined,
69
+ paddingV: multiline ? 'sm' : undefined,
70
+ onPress: handlePress,
71
+ borderColor: borderColor,
72
+ onMouseEnter: function onMouseEnter() {return setHover(true);},
73
+ onMouseLeave: function onMouseLeave() {return setHover(false);} },
74
+ props, { children: [
75
+
76
+ !!prefix &&
77
+ _jsx(View, { paddingV: 5, fullHeight: !multiline, center: !multiline, children:
78
+ prefix }
79
+ ),
80
+
81
+
82
+ _jsx(View, { flex: true, fullH: !multiline, children:
83
+ childWithProps }
84
+ ),
85
+
86
+ !!suffix &&
87
+ _jsx(View, { paddingV: 5, fullHeight: !multiline, center: !multiline, children:
88
+ suffix }
89
+ )] })
90
+
91
+ ));
92
+
93
+ }
@@ -1 +1,17 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/inputs/LinkInput.js";var _excluded=["ref","onPress","onClick","placeholder","value","disabled"];import{InputWrapper}from"./InputWrapper";import{Link}from"../actions/Link";import{Text}from"../text/Text";import{View}from"../structure/View";import{useColors}from"../../theme/ThemeHandler";import{jsx as _jsx}from"react/jsx-runtime";export function LinkInput(_ref){var ref=_ref.ref,onPress=_ref.onPress,onClick=_ref.onClick,placeholder=_ref.placeholder,value=_ref.value,disabled=_ref.disabled,props=_objectWithoutProperties(_ref,_excluded);return _jsx(Link,{ref:ref,onPress:!props.loading?onPress||onClick:undefined,flex:true,fullW:true,centerV:true,disabled:disabled,children:_jsx(InputWrapper,Object.assign({},props,{children:_jsx(View,{centerV:true,flex:true,fullW:true,children:_jsx(Text,{color:!!value?'text':'text_op30',label:value||placeholder,numberOfLines:1})})}))});}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/inputs/LinkInput.js";var _excluded = ["ref", "onPress", "onClick", "placeholder", "value", "disabled"];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 { InputWrapper } from "./InputWrapper";
2
+ import { Link } from "../actions/Link";
3
+ import { Text } from "../text/Text";
4
+ import { View } from "../structure/View";
5
+ import { useColors } from "../../theme/ThemeHandler";import { jsx as _jsx } from "react/jsx-runtime";
6
+
7
+ export function LinkInput(_ref) {var ref = _ref.ref,onPress = _ref.onPress,onClick = _ref.onClick,placeholder = _ref.placeholder,value = _ref.value,disabled = _ref.disabled,props = _objectWithoutProperties(_ref, _excluded);
8
+ return (
9
+ _jsx(Link, { ref: ref, onPress: !props.loading ? onPress || onClick : undefined, fullW: true, centerV: true, disabled: disabled, children:
10
+ _jsx(InputWrapper, Object.assign({}, props, { children:
11
+ _jsx(View, { centerV: true, flex: true, fullW: true, children:
12
+ _jsx(Text, { color: !!value ? 'text' : 'text_op30', label: value || placeholder, numberOfLines: 1 }) }
13
+ ) })
14
+ ) }
15
+ ));
16
+
17
+ }
@@ -1 +1,67 @@
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/inputs/MaskInput.js";var _excluded=["value","onChange","mask","useRawValue"];import React from'react';import{TextInput}from"./TextInput";import{jsx as _jsx}from"react/jsx-runtime";function removeMask(value){var mask=arguments.length>1&&arguments[1]!==undefined?arguments[1]:'';var result='';for(var i=0;i<mask.length;i++){var maskChar=mask[i];var valueChar=value[i];if(!valueChar)break;if(maskChar==='A'&&/[A-Za-z]/.test(valueChar)){result+=valueChar;}else if(maskChar==='9'&&/\d/.test(valueChar)){result+=valueChar;}}return result;}function applyMask(value,mask){var clean=value.replace(/[^0-9A-Za-z]/g,'');var result='';var index=0;for(var i=0;i<mask.length;i++){if(index>=clean.length)break;var char=mask[i];if(char==='9'&&/[0-9]/.test(clean[index])){result+=clean[index];index++;}else if(char==='A'&&/[A-Za-z]/.test(clean[index])){result+=clean[index].toUpperCase();index++;}else if(char==='9'||char==='A'){index++;i--;}else{result+=char;}}return result;}export function MaskInput(_ref){var _ref$value=_ref.value,value=_ref$value===void 0?'':_ref$value,onChange=_ref.onChange,_ref$mask=_ref.mask,mask=_ref$mask===void 0?'':_ref$mask,useRawValue=_ref.useRawValue,props=_objectWithoutProperties(_ref,_excluded);var _React$useState=React.useState(applyMask(value,mask)),_React$useState2=_slicedToArray(_React$useState,2),localValue=_React$useState2[0],setLocalValue=_React$useState2[1];var handleChange=React.useCallback(function(text){var masked=applyMask(text,mask);onChange==null?void 0:onChange(useRawValue?removeMask(masked,mask):masked);setLocalValue(masked);},[mask,onChange]);React.useEffect(function(){setLocalValue(applyMask(value,mask));},[value]);return _jsx(TextInput,Object.assign({value:localValue,onChange:handleChange},props));}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/inputs/MaskInput.js";var _excluded = ["value", "onChange", "mask", "useRawValue"];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 React from 'react';
2
+
3
+ import { TextInput } from "./TextInput";import { jsx as _jsx } from "react/jsx-runtime";
4
+
5
+ function removeMask(value) {var mask = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
6
+ var result = '';
7
+
8
+ for (var i = 0; i < mask.length; i++) {
9
+ var maskChar = mask[i];
10
+ var valueChar = value[i];
11
+
12
+ if (!valueChar) break;
13
+
14
+ if (maskChar === 'A' && /[A-Za-z]/.test(valueChar)) {
15
+ result += valueChar;
16
+ } else if (maskChar === '9' && /\d/.test(valueChar)) {
17
+ result += valueChar;
18
+ }
19
+ }
20
+
21
+ return result;
22
+ }
23
+
24
+ function applyMask(value, mask) {
25
+ var clean = value.replace(/[^0-9A-Za-z]/g, '');
26
+ var result = '';
27
+ var index = 0;
28
+
29
+ for (var i = 0; i < mask.length; i++) {
30
+ if (index >= clean.length) break;
31
+ var char = mask[i];
32
+
33
+ if (char === '9' && /[0-9]/.test(clean[index])) {
34
+ result += clean[index];
35
+ index++;
36
+ } else if (char === 'A' && /[A-Za-z]/.test(clean[index])) {
37
+ result += clean[index].toUpperCase();
38
+ index++;
39
+ } else if (char === '9' || char === 'A') {
40
+ index++;
41
+ i--;
42
+ } else {
43
+ result += char;
44
+ }
45
+ }
46
+
47
+ return result;
48
+ }
49
+
50
+ export function MaskInput(_ref) {var _ref$value = _ref.value,value = _ref$value === void 0 ? '' : _ref$value,onChange = _ref.onChange,_ref$mask = _ref.mask,mask = _ref$mask === void 0 ? '' : _ref$mask,useRawValue = _ref.useRawValue,props = _objectWithoutProperties(_ref, _excluded);
51
+ var _React$useState = React.useState(applyMask(value, mask)),_React$useState2 = _slicedToArray(_React$useState, 2),localValue = _React$useState2[0],setLocalValue = _React$useState2[1];
52
+
53
+ var handleChange = React.useCallback(
54
+ function (text) {
55
+ var masked = applyMask(text, mask);
56
+ onChange == null ? void 0 : onChange(useRawValue ? removeMask(masked, mask) : masked);
57
+ setLocalValue(masked);
58
+ },
59
+ [mask, onChange]
60
+ );
61
+
62
+ React.useEffect(function () {
63
+ setLocalValue(applyMask(value, mask));
64
+ }, [value]);
65
+
66
+ return _jsx(TextInput, Object.assign({ value: localValue, onChange: handleChange }, props));
67
+ }
@@ -1 +1,111 @@
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/inputs/NumberInput.js";var _excluded=["onChange","onBlur","value","useInt","precision","min","max","error"];import{endsWith,is}from'ramda';import React from'react';import{TextInput}from"./TextInput";import{jsx as _jsx}from"react/jsx-runtime";function isValidNumber(stringValue){var _stringValue$toString;var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var _options$min=options.min,min=_options$min===void 0?Number.MIN_SAFE_INTEGER:_options$min,_options$max=options.max,max=_options$max===void 0?Number.MAX_SAFE_INTEGER:_options$max,useInt=options.useInt,precision=options.precision;if(stringValue===null||stringValue===undefined||stringValue==='')return true;if(isNaN(stringValue))return false;var numericValue=parseFloat(stringValue);if(numericValue<min)return false;if(numericValue>max)return false;var decimalPart=stringValue==null?void 0:(_stringValue$toString=stringValue.toString())==null?void 0:_stringValue$toString.split==null?void 0:_stringValue$toString.split('.')[1];if(decimalPart&&is(Number,precision)){if(decimalPart.length>precision)return false;}return true;}export function formatNumericValue(newValue,prevValue){var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var _options$min2=options.min,min=_options$min2===void 0?Number.MIN_SAFE_INTEGER:_options$min2,_options$max2=options.max,max=_options$max2===void 0?Number.MAX_SAFE_INTEGER:_options$max2,useInt=options.useInt,precision=options.precision;var numericValue=newValue;if(is(Number,newValue))newValue=newValue.toString();if(newValue===null||newValue===undefined||newValue==='')return null;if(is(String,newValue))newValue=newValue.replace(',','.');if(newValue==='-')return newValue;if(useInt){if(newValue.includes('.'))return prevValue;numericValue=parseInt(newValue,10);}else{var dotsCount=newValue.split('.').length;if(dotsCount>2)return prevValue;if(endsWith('.',newValue))return newValue;numericValue=parseFloat(newValue);}if(isNaN(numericValue))return prevValue;if(numericValue<min)return min;if(numericValue>max)return max;var decimalPart=newValue.split('.')[1];if(decimalPart&&!!precision){if(decimalPart.length>precision)return prevValue;return newValue;}return numericValue;}export function NumberInput(_ref){var _onChange=_ref.onChange,_onBlur=_ref.onBlur,value=_ref.value,useInt=_ref.useInt,precision=_ref.precision,min=_ref.min,max=_ref.max,error=_ref.error,props=_objectWithoutProperties(_ref,_excluded);var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),hasError=_React$useState2[0],setHasError=_React$useState2[1];var _React$useState3=React.useState(value),_React$useState4=_slicedToArray(_React$useState3,2),inputValue=_React$useState4[0],setInputValue=_React$useState4[1];var _React$useState5=React.useState(value),_React$useState6=_slicedToArray(_React$useState5,2),localValue=_React$useState6[0],setLocalValue=_React$useState6[1];React.useEffect(function(){return setInputValue((value==null?void 0:value.toString())||'');},[value]);if(useInt)precision=0;if(!useInt&&precision===0)useInt=true;var opts={useInt:useInt,precision:precision,min:min,max:max};return _jsx(TextInput,Object.assign({},props,{onChange:function onChange(newValue){var numericValue=formatNumericValue(newValue,localValue,opts);setInputValue((newValue==null?void 0:newValue.toString())||'');setLocalValue(numericValue);_onChange==null?void 0:_onChange(numericValue);setHasError(!isValidNumber(newValue,opts));},onBlur:function onBlur(e){setInputValue((localValue==null?void 0:localValue.toString())||'');setHasError(!isValidNumber(localValue,opts));_onBlur==null?void 0:_onBlur(e);},value:inputValue,keyboardType:useInt?'number-pad':'decimal-pad',error:error||hasError}));}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/inputs/NumberInput.js";var _excluded = ["onChange", "onBlur", "value", "defaultValue", "useInt", "precision", "min", "max", "error"];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 { endsWith, is } from 'ramda';
2
+ import React from 'react';
3
+
4
+ import { TextInput } from "./TextInput";import { jsx as _jsx } from "react/jsx-runtime";
5
+
6
+ function isValidNumber(stringValue) {var _stringValue$toString;var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7
+ var _options$min = options.min,min = _options$min === void 0 ? Number.MIN_SAFE_INTEGER : _options$min,_options$max = options.max,max = _options$max === void 0 ? Number.MAX_SAFE_INTEGER : _options$max,useInt = options.useInt,precision = options.precision;
8
+
9
+ if (stringValue === null || stringValue === undefined || stringValue === '') return true;
10
+
11
+ if (isNaN(stringValue)) return false;
12
+ var numericValue = parseFloat(stringValue);
13
+
14
+ if (numericValue < min) return false;
15
+ if (numericValue > max) return false;
16
+
17
+ var decimalPart = stringValue == null ? void 0 : (_stringValue$toString = stringValue.toString()) == null ? void 0 : _stringValue$toString.split == null ? void 0 : _stringValue$toString.split('.')[1];
18
+
19
+ if (decimalPart && is(Number, precision)) {
20
+ if (decimalPart.length > precision) return false;
21
+ }
22
+
23
+ return true;
24
+ }
25
+
26
+ export function formatNumericValue(newValue, prevValue) {var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
27
+ var _options$min2 = options.min,min = _options$min2 === void 0 ? Number.MIN_SAFE_INTEGER : _options$min2,_options$max2 = options.max,max = _options$max2 === void 0 ? Number.MAX_SAFE_INTEGER : _options$max2,useInt = options.useInt,precision = options.precision;
28
+ var numericValue = newValue;
29
+
30
+
31
+ if (is(Number, newValue)) newValue = newValue.toString();
32
+
33
+
34
+ if (newValue === null || newValue === undefined || newValue === '') return null;
35
+
36
+
37
+ if (is(String, newValue)) newValue = newValue.replace(',', '.');
38
+
39
+
40
+ if (newValue === '-') return newValue;
41
+
42
+ if (useInt) {
43
+
44
+ if (newValue.includes('.')) return prevValue;
45
+ numericValue = parseInt(newValue, 10);
46
+ } else {
47
+
48
+ var dotsCount = newValue.split('.').length;
49
+ if (dotsCount > 2) return prevValue;
50
+
51
+
52
+ if (endsWith('.', newValue)) return newValue;
53
+
54
+ numericValue = parseFloat(newValue);
55
+ }
56
+
57
+ if (isNaN(numericValue)) return prevValue;
58
+
59
+
60
+ if (numericValue < min) return min;
61
+ if (numericValue > max) return max;
62
+
63
+
64
+ var decimalPart = newValue.split('.')[1];
65
+ if (decimalPart && !!precision) {
66
+
67
+ if (decimalPart.length > precision) return prevValue;
68
+
69
+ return newValue;
70
+ }
71
+
72
+
73
+ return numericValue;
74
+ }
75
+
76
+ export function NumberInput(_ref) {var _onChange = _ref.onChange,_onBlur = _ref.onBlur,value = _ref.value,defaultValue = _ref.defaultValue,useInt = _ref.useInt,precision = _ref.precision,min = _ref.min,max = _ref.max,error = _ref.error,props = _objectWithoutProperties(_ref, _excluded);
77
+ if (value === undefined || value === null) value = defaultValue != null ? defaultValue : null;
78
+ var _React$useState = React.useState(false),_React$useState2 = _slicedToArray(_React$useState, 2),hasError = _React$useState2[0],setHasError = _React$useState2[1];
79
+ var _React$useState3 = React.useState(value),_React$useState4 = _slicedToArray(_React$useState3, 2),inputValue = _React$useState4[0],setInputValue = _React$useState4[1];
80
+ var _React$useState5 = React.useState(value),_React$useState6 = _slicedToArray(_React$useState5, 2),localValue = _React$useState6[0],setLocalValue = _React$useState6[1];
81
+ React.useEffect(function () {var _value;return setInputValue(((_value = value) == null ? void 0 : _value.toString()) || '');}, [value]);
82
+
83
+ if (useInt) precision = 0;
84
+ if (!useInt && precision === 0) useInt = true;
85
+ var opts = { useInt: useInt, precision: precision };
86
+ var optsWithMinMax = Object.assign({}, opts, { min: min, max: max });
87
+
88
+ return (
89
+ _jsx(TextInput, Object.assign({},
90
+ props, {
91
+ onChange: function onChange(newValue) {
92
+ var numericValue = formatNumericValue(newValue, localValue, opts);
93
+ setInputValue((newValue == null ? void 0 : newValue.toString()) || '');
94
+ setLocalValue(numericValue);
95
+ _onChange == null ? void 0 : _onChange(numericValue);
96
+ setHasError(!isValidNumber(newValue, optsWithMinMax));
97
+ },
98
+ onBlur: function onBlur(e) {
99
+ var clamped = formatNumericValue(localValue, localValue, optsWithMinMax);
100
+ setLocalValue(clamped);
101
+ setInputValue((clamped == null ? void 0 : clamped.toString()) || '');
102
+ setHasError(!isValidNumber(clamped, optsWithMinMax));
103
+ _onChange == null ? void 0 : _onChange(clamped);
104
+ _onBlur == null ? void 0 : _onBlur(e);
105
+ },
106
+ value: inputValue,
107
+ keyboardType: useInt ? 'number-pad' : 'decimal-pad',
108
+ error: error || hasError })
109
+ ));
110
+
111
+ }
@@ -0,0 +1,41 @@
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/inputs/NumberRangeInput.js";var _excluded = ["value", "onChange", "minProps", "maxProps", "placeholderMin", "placeholderMax", "separator"];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 { NumberInput } from "./NumberInput";
2
+ import { Text } from "../text/Text";
3
+ import { View } from "../structure/View";import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+
5
+ export function NumberRangeInput(_ref)
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+ {var value = _ref.value,onChange = _ref.onChange,minProps = _ref.minProps,maxProps = _ref.maxProps,_ref$placeholderMin = _ref.placeholderMin,placeholderMin = _ref$placeholderMin === void 0 ? 'Min' : _ref$placeholderMin,_ref$placeholderMax = _ref.placeholderMax,placeholderMax = _ref$placeholderMax === void 0 ? 'Max' : _ref$placeholderMax,_ref$separator = _ref.separator,separator = _ref$separator === void 0 ? '–' : _ref$separator,props = _objectWithoutProperties(_ref, _excluded);
15
+ var handleChangeMin = function handleChangeMin(min) {return onChange == null ? void 0 : onChange(Object.assign({}, value, { min: min }));};
16
+ var handleChangeMax = function handleChangeMax(max) {return onChange == null ? void 0 : onChange(Object.assign({}, value, { max: max }));};
17
+
18
+ return (
19
+ _jsxs(View, { row: true, centerV: true, gap: "sm", children: [
20
+ _jsx(NumberInput, Object.assign({
21
+ placeholder: placeholderMin,
22
+ value: value == null ? void 0 : value.min,
23
+ onChange: handleChangeMin,
24
+ max: value == null ? void 0 : value.max,
25
+ flex: true },
26
+ props,
27
+ minProps)
28
+ ),
29
+ _jsx(Text, { text4: true, children: separator }),
30
+ _jsx(NumberInput, Object.assign({
31
+ placeholder: placeholderMax,
32
+ value: value == null ? void 0 : value.max,
33
+ onChange: handleChangeMax,
34
+ min: value == null ? void 0 : value.min,
35
+ flex: true },
36
+ props,
37
+ maxProps)
38
+ )] }
39
+ ));
40
+
41
+ }
@@ -0,0 +1,24 @@
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/inputs/PasswordInput.js";var _excluded = ["hideToggle", "suffix"];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 React from 'react';
2
+
3
+ import { Icon } from "../presentation/Icon";
4
+ import { Link } from "../actions/Link";
5
+ import { TextInput } from "./TextInput";import { jsx as _jsx } from "react/jsx-runtime";
6
+
7
+ export function PasswordInput(_ref) {var hideToggle = _ref.hideToggle,suffix = _ref.suffix,props = _objectWithoutProperties(_ref, _excluded);
8
+ var _React$useState = React.useState(false),_React$useState2 = _slicedToArray(_React$useState, 2),visible = _React$useState2[0],setVisible = _React$useState2[1];
9
+
10
+ var toggle = !hideToggle ?
11
+ _jsx(Link, { onPress: function onPress() {return setVisible(function (v) {return !v;});}, children:
12
+ _jsx(Icon, { name: visible ? 'RiEyeOffLine' : 'RiEyeLine', color: "text3" }) }
13
+ ) :
14
+ null;
15
+
16
+ return (
17
+ _jsx(TextInput, Object.assign({
18
+ type: visible ? 'text' : 'password',
19
+ secureTextEntry: !visible,
20
+ suffix: suffix || toggle },
21
+ props)
22
+ ));
23
+
24
+ }