@neko-os/ui 0.2.2 → 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 (435) hide show
  1. package/README.md +0 -76
  2. package/dist/DynamicStyleTag.js +18 -2
  3. package/dist/DynamicStyleTag.native.js +3 -1
  4. package/dist/NekoUI.js +39 -1
  5. package/dist/abstractions/ActivityIndicator.js +19 -1
  6. package/dist/abstractions/ActivityIndicator.native.js +43 -1
  7. package/dist/abstractions/ActivityIndicator.web.js +43 -1
  8. package/dist/abstractions/AnimatedView.js +3 -1
  9. package/dist/abstractions/AnimatedView.native.js +5 -1
  10. package/dist/abstractions/AnimatedView.web.js +3 -1
  11. package/dist/abstractions/BlurView.js +43 -1
  12. package/dist/abstractions/BlurView.native.js +39 -1
  13. package/dist/abstractions/BlurView.web.js +39 -1
  14. package/dist/abstractions/DraggableSlideView.js +3 -1
  15. package/dist/abstractions/DraggableSlideView.native.js +62 -1
  16. package/dist/abstractions/FlatList.js +3 -1
  17. package/dist/abstractions/FlatList.native.js +37 -1
  18. package/dist/abstractions/FlatList.web.js +3 -1
  19. package/dist/abstractions/GradientView.js +5 -1
  20. package/dist/abstractions/GradientView.native.js +32 -1
  21. package/dist/abstractions/HiddenInput.js +3 -1
  22. package/dist/abstractions/HiddenInput.native.js +3 -1
  23. package/dist/abstractions/Icon.js +10 -1
  24. package/dist/abstractions/Icon.native.js +13 -1
  25. package/dist/abstractions/Icon.web.js +11 -1
  26. package/dist/abstractions/Image.js +12 -1
  27. package/dist/abstractions/Image.native.js +7 -1
  28. package/dist/abstractions/Image.web.js +7 -1
  29. package/dist/abstractions/ImageBackground.js +17 -1
  30. package/dist/abstractions/ImageBackground.native.js +27 -1
  31. package/dist/abstractions/ImageBackground.web.js +7 -1
  32. package/dist/abstractions/KeyboardAvoidingView.js +3 -1
  33. package/dist/abstractions/KeyboardAvoidingView.native.js +3 -1
  34. package/dist/abstractions/Platform.js +1 -1
  35. package/dist/abstractions/Platform.native.js +3 -1
  36. package/dist/abstractions/Platform.web.js +3 -1
  37. package/dist/abstractions/Pressable.js +4 -1
  38. package/dist/abstractions/Pressable.native.js +3 -1
  39. package/dist/abstractions/Pressable.web.js +3 -1
  40. package/dist/abstractions/SafeAreaView.js +3 -1
  41. package/dist/abstractions/SafeAreaView.native.js +3 -1
  42. package/dist/abstractions/ScrollView.js +3 -1
  43. package/dist/abstractions/ScrollView.native.js +5 -1
  44. package/dist/abstractions/ScrollView.web.js +3 -1
  45. package/dist/abstractions/StaticList.js +51 -1
  46. package/dist/abstractions/Switch.js +97 -1
  47. package/dist/abstractions/Switch.native.js +12 -1
  48. package/dist/abstractions/Table.js +29 -1
  49. package/dist/abstractions/Table.native.js +19 -1
  50. package/dist/abstractions/Text.js +14 -1
  51. package/dist/abstractions/Text.native.js +3 -1
  52. package/dist/abstractions/Text.web.js +18 -1
  53. package/dist/abstractions/TextInput.js +12 -1
  54. package/dist/abstractions/TextInput.native.js +5 -1
  55. package/dist/abstractions/TextInput.web.js +5 -1
  56. package/dist/abstractions/TouchableOpacity.js +4 -1
  57. package/dist/abstractions/TouchableOpacity.native.js +3 -1
  58. package/dist/abstractions/View.js +3 -1
  59. package/dist/abstractions/View.native.js +3 -1
  60. package/dist/abstractions/View.web.js +3 -1
  61. package/dist/abstractions/helpers/componentSize.js +13 -1
  62. package/dist/abstractions/helpers/componentSize.native.js +12 -1
  63. package/dist/abstractions/helpers/storage.js +32 -1
  64. package/dist/abstractions/helpers/storage.native.js +34 -1
  65. package/dist/abstractions/helpers/transformStyle.js +8 -1
  66. package/dist/abstractions/helpers/transformStyle.native.js +3 -1
  67. package/dist/abstractions/helpers/useSafeAreaInsets.js +3 -1
  68. package/dist/abstractions/helpers/useSafeAreaInsets.native.js +3 -1
  69. package/dist/abstractions/helpers/windowWidth.js +13 -1
  70. package/dist/abstractions/helpers/windowWidth.native.js +6 -1
  71. package/dist/abstractions/helpers/windowWidth.web.js +6 -1
  72. package/dist/components/actions/ActionsDrawer.js +81 -1
  73. package/dist/components/actions/Breadcrumb.js +47 -1
  74. package/dist/components/actions/Button.js +82 -1
  75. package/dist/components/actions/Dropdown.js +91 -1
  76. package/dist/components/actions/FloatingButton.js +87 -1
  77. package/dist/components/actions/FloatingMenu.js +39 -1
  78. package/dist/components/actions/Link.js +66 -1
  79. package/dist/components/actions/Pressable.js +38 -1
  80. package/dist/components/actions/index.js +9 -1
  81. package/dist/components/actions/menu/HorizontalMenu.js +98 -1
  82. package/dist/components/actions/menu/Menu.js +7 -1
  83. package/dist/components/actions/menu/SubmenuWrapper.js +16 -1
  84. package/dist/components/actions/menu/VerticalMenu.js +133 -1
  85. package/dist/components/animations/AnimatedTopBar.js +10 -1
  86. package/dist/components/animations/AnimatedTopBar.native.js +34 -1
  87. package/dist/components/animations/AnimatedTopBar.web.js +1 -1
  88. package/dist/components/animations/AnimatedView.js +45 -1
  89. package/dist/components/animations/DraggableSlideView.js +42 -1
  90. package/dist/components/animations/ParallaxHeader.js +9 -1
  91. package/dist/components/animations/ParallaxHeader.native.js +32 -1
  92. package/dist/components/animations/ParallaxHeader.web.js +32 -1
  93. package/dist/components/animations/ReanimatedScrollHandler.js +8 -1
  94. package/dist/components/animations/ReanimatedScrollHandler.native.js +24 -1
  95. package/dist/components/animations/ReanimatedScrollHandler.web.js +1 -1
  96. package/dist/components/animations/ReanimatedView.js +40 -1
  97. package/dist/components/animations/index.js +5 -1
  98. package/dist/components/calendar/CalendarNav.js +67 -1
  99. package/dist/components/calendar/WeekDaysBar.js +18 -1
  100. package/dist/components/calendar/_helpers/calendarDays.js +16 -1
  101. package/dist/components/calendar/_helpers/dateDisabled.js +24 -1
  102. package/dist/components/feedback/alerter.js +31 -1
  103. package/dist/components/feedback/confirmer.js +70 -1
  104. package/dist/components/feedback/index.js +3 -1
  105. package/dist/components/feedback/notifications/Notification.js +37 -1
  106. package/dist/components/feedback/notifications/NotificationsHandler.js +65 -1
  107. package/dist/components/filter/DateFilter.js +72 -0
  108. package/dist/components/filter/FilterGroup.js +17 -0
  109. package/dist/components/filter/FilterHandler.js +54 -0
  110. package/dist/components/filter/FilterItem.js +30 -0
  111. package/dist/components/filter/PopoverFilterItem.js +84 -0
  112. package/dist/components/filter/SearchInput.js +49 -0
  113. package/dist/components/filter/index.js +6 -0
  114. package/dist/components/form/Form.js +31 -1
  115. package/dist/components/form/FormGroup.js +21 -1
  116. package/dist/components/form/FormItem.js +118 -1
  117. package/dist/components/form/FormList.js +143 -1
  118. package/dist/components/form/FormWrapperComponent.js +52 -1
  119. package/dist/components/form/FormWrapperComponent.native.js +5 -1
  120. package/dist/components/form/SubmitButton.js +22 -1
  121. package/dist/components/form/index.js +9 -1
  122. package/dist/components/form/useNewForm.js +211 -1
  123. package/dist/components/form/useWatch.js +70 -1
  124. package/dist/components/form/validation/defaultMessages.js +20 -1
  125. package/dist/components/form/validation/index.js +5 -1
  126. package/dist/components/form/validation/normalizeRules.js +22 -1
  127. package/dist/components/form/validation/shouldValidateOn.js +21 -1
  128. package/dist/components/form/validation/validateRules.js +83 -1
  129. package/dist/components/form/validation/validators.js +82 -1
  130. package/dist/components/helpers/ConditionalLazyRender.js +6 -1
  131. package/dist/components/helpers/LazyAction.js +22 -1
  132. package/dist/components/helpers/LazyRender.js +55 -1
  133. package/dist/components/helpers/LazyRender.native.js +58 -1
  134. package/dist/components/helpers/Portal.js +21 -1
  135. package/dist/components/helpers/PortalHandler.js +32 -1
  136. package/dist/components/helpers/Responsive.js +18 -1
  137. package/dist/components/helpers/Separator.js +49 -1
  138. package/dist/components/helpers/VerticalView.js +34 -1
  139. package/dist/components/helpers/index.js +8 -1
  140. package/dist/components/index.js +20 -1
  141. package/dist/components/inputs/BooleanSelect.js +14 -0
  142. package/dist/components/inputs/Checkbox.js +56 -1
  143. package/dist/components/inputs/DateInput.js +123 -1
  144. package/dist/components/inputs/DateRangeInput.js +41 -0
  145. package/dist/components/inputs/Editable.js +129 -0
  146. package/dist/components/inputs/EnabledSelect.js +14 -0
  147. package/dist/components/inputs/InputWrapper.js +93 -1
  148. package/dist/components/inputs/LinkInput.js +17 -1
  149. package/dist/components/inputs/MaskInput.js +67 -1
  150. package/dist/components/inputs/NumberInput.js +111 -1
  151. package/dist/components/inputs/NumberRangeInput.js +41 -0
  152. package/dist/components/inputs/PasswordInput.js +24 -0
  153. package/dist/components/inputs/Picker.js +169 -1
  154. package/dist/components/inputs/Radio.js +55 -1
  155. package/dist/components/inputs/RateInput.js +62 -1
  156. package/dist/components/inputs/SegmentedPicker.js +62 -1
  157. package/dist/components/inputs/Select.js +219 -1
  158. package/dist/components/inputs/Switch.js +60 -1
  159. package/dist/components/inputs/TextArea.js +5 -0
  160. package/dist/components/inputs/TextInput.js +32 -1
  161. package/dist/components/inputs/UploadInput.js +140 -0
  162. package/dist/components/inputs/_DateInput.native.js +89 -1
  163. package/dist/components/inputs/datePicker/DatePicker.js +24 -1
  164. package/dist/components/inputs/datePicker/DayPicker.js +64 -1
  165. package/dist/components/inputs/datePicker/MonthPicker.js +62 -1
  166. package/dist/components/inputs/datePicker/QuarterPicker.js +65 -1
  167. package/dist/components/inputs/datePicker/WeekPicker.js +74 -1
  168. package/dist/components/inputs/datePicker/YearPicker.js +70 -1
  169. package/dist/components/inputs/index.js +23 -1
  170. package/dist/components/inputs/upload/Upload.js +99 -0
  171. package/dist/components/inputs/upload/Upload.native.js +154 -0
  172. package/dist/components/inputs/upload/useUploadState.js +143 -0
  173. package/dist/components/layout/Layout.js +40 -1
  174. package/dist/components/layout/LayoutContent.js +42 -1
  175. package/dist/components/layout/LayoutHeader.js +70 -1
  176. package/dist/components/layout/LayoutSider.js +64 -1
  177. package/dist/components/layout/index.js +4 -1
  178. package/dist/components/list/FlatList.js +91 -1
  179. package/dist/components/list/ScrollView.js +58 -1
  180. package/dist/components/list/index.js +2 -1
  181. package/dist/components/modals/bottomDrawer/index.js +3 -1
  182. package/dist/components/modals/bottomDrawer/index.native.js +5 -1
  183. package/dist/components/modals/bottomDrawer/index.web.js +5 -1
  184. package/dist/components/modals/bottomDrawer/native/BottomDrawer.js +239 -1
  185. package/dist/components/modals/bottomDrawer/native/DrawerContext.js +17 -1
  186. package/dist/components/modals/bottomDrawer/native/DrawerHandle.js +12 -1
  187. package/dist/components/modals/bottomDrawer/native/DrawerScrollView.js +5 -1
  188. package/dist/components/modals/bottomDrawer/native/createDrawerScrollComponent.js +139 -1
  189. package/dist/components/modals/bottomDrawer/native/utils.js +65 -1
  190. package/dist/components/modals/bottomDrawer/web/BottomDrawer.js +5 -1
  191. package/dist/components/modals/drawer/Drawer.js +5 -1
  192. package/dist/components/modals/drawer/Drawer.native.js +3 -1
  193. package/dist/components/modals/drawer/Drawer.web.js +3 -1
  194. package/dist/components/modals/drawer/index.js +1 -1
  195. package/dist/components/modals/index.js +4 -1
  196. package/dist/components/modals/modal/Modal.js +84 -1
  197. package/dist/components/modals/modal/Modal.native.js +83 -1
  198. package/dist/components/modals/modal/ModalBackdrop.js +58 -1
  199. package/dist/components/modals/modal/ModalContent.js +28 -1
  200. package/dist/components/modals/modal/ModalFooter.js +31 -1
  201. package/dist/components/modals/modal/ModalHeader.js +50 -1
  202. package/dist/components/modals/modal/handler/ModalsHandler.js +61 -1
  203. package/dist/components/modals/modal/index.js +6 -1
  204. package/dist/components/modals/router/ModalRoute.js +15 -1
  205. package/dist/components/modals/router/ModalsRouter.js +120 -1
  206. package/dist/components/modals/router/ModalsRouterContext.js +16 -1
  207. package/dist/components/modals/router/index.js +6 -1
  208. package/dist/components/modals/router/useAllModalsParams.js +6 -1
  209. package/dist/components/modals/router/useModalParams.js +6 -1
  210. package/dist/components/modals/router/useModalsNavigation.js +6 -1
  211. package/dist/components/modals/router/useUpdateModalContainer.js +6 -1
  212. package/dist/components/presentation/Avatar.js +79 -1
  213. package/dist/components/presentation/AvatarLabel.js +60 -1
  214. package/dist/components/presentation/AvatarsGroup.js +30 -0
  215. package/dist/components/presentation/Badge.js +91 -1
  216. package/dist/components/presentation/ContentLabel.js +43 -1
  217. package/dist/components/presentation/Icon.js +20 -1
  218. package/dist/components/presentation/IconLabel.js +40 -1
  219. package/dist/components/presentation/Image.js +33 -1
  220. package/dist/components/presentation/ImageBackground.js +38 -1
  221. package/dist/components/presentation/LabelValue.js +51 -1
  222. package/dist/components/presentation/Progress.js +20 -0
  223. package/dist/components/presentation/Rate.js +58 -1
  224. package/dist/components/presentation/RateTag.js +35 -1
  225. package/dist/components/presentation/Result.js +60 -1
  226. package/dist/components/presentation/ResultBar.js +56 -1
  227. package/dist/components/presentation/Tag.js +69 -1
  228. package/dist/components/presentation/Tooltip.js +44 -1
  229. package/dist/components/presentation/index.js +16 -1
  230. package/dist/components/sections/Section.js +50 -1
  231. package/dist/components/sections/SectionItem.js +24 -1
  232. package/dist/components/sections/SectionItemDropdown.js +68 -1
  233. package/dist/components/sections/SectionItemLink.js +35 -1
  234. package/dist/components/sections/index.js +4 -1
  235. package/dist/components/state/Loading.js +20 -1
  236. package/dist/components/state/LoadingView.js +37 -1
  237. package/dist/components/state/StatePresenter.js +41 -1
  238. package/dist/components/state/index.js +3 -1
  239. package/dist/components/steps/ActiveStepContent.js +16 -0
  240. package/dist/components/steps/StepsHandler.js +53 -0
  241. package/dist/components/steps/StepsMenu.js +14 -0
  242. package/dist/components/steps/StepsNavigation.js +37 -0
  243. package/dist/components/steps/index.js +4 -0
  244. package/dist/components/structure/Accordion.js +69 -1
  245. package/dist/components/structure/AccordionGroup.js +35 -1
  246. package/dist/components/structure/Affix.js +34 -0
  247. package/dist/components/structure/Affix.native.js +3 -0
  248. package/dist/components/structure/BlurView.js +59 -1
  249. package/dist/components/structure/Card.js +46 -1
  250. package/dist/components/structure/Col.js +22 -1
  251. package/dist/components/structure/GradientView.js +42 -1
  252. package/dist/components/structure/KeyboardAvoidingView.js +52 -1
  253. package/dist/components/structure/Row.js +50 -1
  254. package/dist/components/structure/SafeAreaView.js +42 -1
  255. package/dist/components/structure/Segment.js +51 -1
  256. package/dist/components/structure/TopBar.js +57 -1
  257. package/dist/components/structure/View.js +44 -1
  258. package/dist/components/structure/index.js +14 -1
  259. package/dist/components/structure/overlay/OverlayHandler.js +83 -1
  260. package/dist/components/structure/overlay/OverlayHandler.native.js +6 -1
  261. package/dist/components/structure/overlay/OverlayWrapper.js +52 -1
  262. package/dist/components/structure/overlay/calculatePosition.js +29 -1
  263. package/dist/components/structure/overlay/smartPlacement.js +32 -1
  264. package/dist/components/structure/popover/Popover.js +135 -1
  265. package/dist/components/structure/popover/Popover.native.js +105 -1
  266. package/dist/components/structure/popover/PopoverContent.js +18 -1
  267. package/dist/components/structure/popover/Popover_BU.js +157 -1
  268. package/dist/components/table/DataTable.js +62 -1
  269. package/dist/components/table/Pagination.js +128 -1
  270. package/dist/components/table/Table.js +66 -1
  271. package/dist/components/table/TableCol.js +67 -1
  272. package/dist/components/table/TableHeader.js +69 -1
  273. package/dist/components/table/TableHeaderRow.js +31 -1
  274. package/dist/components/table/TableRow.js +30 -1
  275. package/dist/components/table/index.js +7 -1
  276. package/dist/components/tabs/ActiveTabContent.js +38 -1
  277. package/dist/components/tabs/TabsHandler.js +16 -1
  278. package/dist/components/tabs/TabsMenu.js +15 -1
  279. package/dist/components/tabs/index.js +3 -1
  280. package/dist/components/text/DateText.js +24 -1
  281. package/dist/components/text/Text.js +32 -1
  282. package/dist/components/text/VerticalText.js +29 -1
  283. package/dist/components/text/index.js +3 -1
  284. package/dist/components/theme/ThemePicker.js +48 -1
  285. package/dist/components/theme/ThemePickerDrawer.js +12 -1
  286. package/dist/components/theme/ThemeStatusBar.js +3 -1
  287. package/dist/components/theme/ThemeStatusBar.native.js +9 -1
  288. package/dist/components/theme/ThemeThumb.js +98 -1
  289. package/dist/components/theme/index.js +3 -1
  290. package/dist/helpers/debounce.js +9 -1
  291. package/dist/helpers/index.js +5 -1
  292. package/dist/helpers/options.js +65 -1
  293. package/dist/helpers/random.js +5 -1
  294. package/dist/helpers/storage.js +76 -1
  295. package/dist/helpers/string.js +74 -1
  296. package/dist/i18n/I18n.js +96 -1
  297. package/dist/i18n/I18nProvider.js +40 -1
  298. package/dist/i18n/index.js +2 -1
  299. package/dist/index.js +8 -1
  300. package/dist/modifiers/_helpers.js +6 -1
  301. package/dist/modifiers/alignConverter.js +11 -1
  302. package/dist/modifiers/animation.js +18 -1
  303. package/dist/modifiers/animations/animatedEffects.js +64 -1
  304. package/dist/modifiers/animations/animatedEffects.native.js +55 -1
  305. package/dist/modifiers/animations/animatedEffects.web.js +55 -1
  306. package/dist/modifiers/animations/fadeEffect.js +46 -1
  307. package/dist/modifiers/animations/fadeEffect.native.js +33 -1
  308. package/dist/modifiers/animations/fadeEffect.web.js +3 -1
  309. package/dist/modifiers/animations/scaleEffect.js +46 -1
  310. package/dist/modifiers/animations/scaleEffect.native.js +33 -1
  311. package/dist/modifiers/animations/scrollEffect.web.js +3 -1
  312. package/dist/modifiers/animations/slideEffect.js +64 -1
  313. package/dist/modifiers/animations/slideEffect.native.js +53 -1
  314. package/dist/modifiers/animations/slideEffect.web.js +3 -1
  315. package/dist/modifiers/applyStyles.js +7 -1
  316. package/dist/modifiers/background.js +34 -1
  317. package/dist/modifiers/border.js +86 -1
  318. package/dist/modifiers/colorConverter.js +13 -1
  319. package/dist/modifiers/cursor.js +21 -1
  320. package/dist/modifiers/default.js +9 -1
  321. package/dist/modifiers/display.js +22 -1
  322. package/dist/modifiers/flex.js +20 -1
  323. package/dist/modifiers/flexWrapper.js +87 -1
  324. package/dist/modifiers/fullColor.js +32 -1
  325. package/dist/modifiers/grid.js +27 -1
  326. package/dist/modifiers/hover.js +28 -1
  327. package/dist/modifiers/logger.js +6 -1
  328. package/dist/modifiers/margin.js +25 -1
  329. package/dist/modifiers/overflow.js +28 -1
  330. package/dist/modifiers/padding.js +25 -1
  331. package/dist/modifiers/position.js +57 -1
  332. package/dist/modifiers/responsiveConverter.js +19 -1
  333. package/dist/modifiers/shadow.js +35 -1
  334. package/dist/modifiers/size.js +59 -1
  335. package/dist/modifiers/sizeConverter.js +12 -1
  336. package/dist/modifiers/state.js +33 -1
  337. package/dist/modifiers/text.js +62 -1
  338. package/dist/modifiers/textConverter.js +12 -1
  339. package/dist/modifiers/themeComponent.js +11 -1
  340. package/dist/responsive/ResponsiveHandler.js +28 -1
  341. package/dist/responsive/index.js +2 -1
  342. package/dist/responsive/responsiveHooks.js +67 -1
  343. package/dist/theme/ThemeHandler.js +81 -1
  344. package/dist/theme/default/base.js +95 -1
  345. package/dist/theme/default/blackTheme.js +47 -1
  346. package/dist/theme/default/cyberpunkTheme.js +36 -1
  347. package/dist/theme/default/darkTheme.js +35 -1
  348. package/dist/theme/default/hackerTheme.js +55 -1
  349. package/dist/theme/default/lightTheme.js +35 -1
  350. package/dist/theme/default/paperTheme.js +36 -1
  351. package/dist/theme/default/themes.js +15 -1
  352. package/dist/theme/format/colorsVariations.js +31 -1
  353. package/dist/theme/format/formatTheme.js +28 -1
  354. package/dist/theme/helpers/colorScale.js +12 -1
  355. package/dist/theme/helpers/contrastColor.js +18 -1
  356. package/dist/theme/helpers/dynamicColor.js +32 -1
  357. package/dist/theme/helpers/mergePreset.js +7 -1
  358. package/dist/theme/helpers/relatedScales.js +34 -1
  359. package/dist/theme/helpers/sizeScale.js +20 -1
  360. package/dist/theme/helpers/textScale.js +15 -1
  361. package/dist/theme/index.js +2 -1
  362. package/package.json +1 -3
  363. package/src/abstractions/Icon.js +1 -1
  364. package/src/abstractions/TextInput.js +10 -1
  365. package/src/components/actions/ActionsDrawer.js +17 -4
  366. package/src/components/actions/Button.js +5 -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/NumberInput.js +10 -5
  391. package/src/components/inputs/NumberRangeInput.js +41 -0
  392. package/src/components/inputs/PasswordInput.js +24 -0
  393. package/src/components/inputs/Picker.js +2 -2
  394. package/src/components/inputs/Select.js +61 -47
  395. package/src/components/inputs/TextArea.js +5 -0
  396. package/src/components/inputs/TextInput.js +14 -4
  397. package/src/components/inputs/UploadInput.js +140 -0
  398. package/src/components/inputs/index.js +9 -0
  399. package/src/components/inputs/upload/Upload.js +99 -0
  400. package/src/components/inputs/upload/Upload.native.js +154 -0
  401. package/src/components/inputs/upload/useUploadState.js +143 -0
  402. package/src/components/layout/LayoutHeader.js +1 -0
  403. package/src/components/presentation/AvatarLabel.js +1 -1
  404. package/src/components/presentation/AvatarsGroup.js +30 -0
  405. package/src/components/presentation/Badge.js +3 -2
  406. package/src/components/presentation/ContentLabel.js +1 -1
  407. package/src/components/presentation/IconLabel.js +1 -0
  408. package/src/components/presentation/Progress.js +20 -0
  409. package/src/components/presentation/index.js +2 -0
  410. package/src/components/sections/Section.js +1 -1
  411. package/src/components/sections/SectionItemLink.js +4 -2
  412. package/src/components/steps/ActiveStepContent.js +16 -0
  413. package/src/components/steps/StepsHandler.js +53 -0
  414. package/src/components/steps/StepsMenu.js +14 -0
  415. package/src/components/steps/StepsNavigation.js +37 -0
  416. package/src/components/steps/index.js +4 -0
  417. package/src/components/structure/Affix.js +34 -0
  418. package/src/components/structure/Affix.native.js +3 -0
  419. package/src/components/structure/Card.js +1 -0
  420. package/src/components/structure/TopBar.js +14 -2
  421. package/src/components/structure/index.js +1 -0
  422. package/src/components/structure/overlay/OverlayHandler.js +9 -1
  423. package/src/components/structure/popover/Popover.js +22 -5
  424. package/src/components/table/DataTable.js +7 -2
  425. package/src/components/table/Table.js +2 -1
  426. package/src/components/tabs/ActiveTabContent.js +4 -1
  427. package/src/components/text/DateText.js +15 -2
  428. package/src/modifiers/border.js +15 -9
  429. package/src/modifiers/fullColor.js +2 -2
  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
  434. package/src/theme/format/colorsVariations.js +1 -1
  435. package/src/theme/helpers/colorScale.js +2 -1
@@ -1 +1,118 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";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/form/FormItem.js";var _excluded=["name","label","isAbsolutePath","children","useDefaultValue","rules","validateTrigger"];import React from'react';import{FormGroup,useRelativePath}from"./FormGroup";import{Text}from"../text/Text";import{View}from"../structure/View";import{clearProps}from"../../modifiers/_helpers";import{useFormInstance,useFormState}from"./Form";import{shouldValidateOn}from"./validation";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function FormItem(_ref){var _child$props;var name=_ref.name,label=_ref.label,isAbsolutePath=_ref.isAbsolutePath,children=_ref.children,useDefaultValue=_ref.useDefaultValue,rules=_ref.rules,_ref$validateTrigger=_ref.validateTrigger,validateTrigger=_ref$validateTrigger===void 0?'onSubmit':_ref$validateTrigger,props=_objectWithoutProperties(_ref,_excluded);var form=useFormInstance();var formState=useFormState();var listPath=useRelativePath(name,{isAbsolutePath:isAbsolutePath});var listPathStr=listPath.join('$NEKOJOIN$');var _React$useState=React.useState(form.getFieldValue(listPath)),_React$useState2=_slicedToArray(_React$useState,2),value=_React$useState2[0],setValue=_React$useState2[1];var _React$useState3=React.useState(form.getError(listPath)),_React$useState4=_slicedToArray(_React$useState3,2),error=_React$useState4[0],setError=_React$useState4[1];React.useEffect(function(){return form.registerRules(listPath,rules,validateTrigger);},[listPathStr,JSON.stringify(rules),validateTrigger]);React.useEffect(function(){return form.registerListener(listPath,function(val){return setValue(val);});},[listPathStr]);React.useEffect(function(){return form.registerErrorListener(listPath,function(err){return setError(err);});},[listPathStr]);var handleChange=function handleChange(e){var _e$target$value,_e$target;var val=(_e$target$value=e==null?void 0:(_e$target=e.target)==null?void 0:_e$target.value)!=null?_e$target$value:e;form.setFieldValue(listPath,val);if(shouldValidateOn('onChange',rules,validateTrigger)){form.validateField(listPath,'onChange');}};var handleBlur=function handleBlur(e,originalOnBlur){if(originalOnBlur)originalOnBlur(e);if(shouldValidateOn('onBlur',rules,validateTrigger)){form.validateField(listPath,'onBlur');}};var valueKey='value';if(!!useDefaultValue)valueKey='defaultValue';var child=typeof children==='function'?null:React.Children.only(children);var originalOnBlur=child==null?void 0:(_child$props=child.props)==null?void 0:_child$props.onBlur;var childProps=clearProps(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({},valueKey,value===undefined?'':value),"onChange",handleChange),"onBlur",function onBlur(e){return handleBlur(e,originalOnBlur);}),"disabled",(formState==null?void 0:formState.disabled)===true||undefined),"error",!!error||undefined));var content;if(typeof children==='function'){content=children(childProps);}else{content=React.cloneElement(child,Object.assign({},child.props,childProps));}return _jsx(FormGroup,{name:listPath,children:_jsxs(View,Object.assign({},props,{children:[label&&_jsx(Text,{sm:true,marginB:"xxs",children:label}),content,error&&_jsx(Text,{color:"red",children:error})]}))});}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormItem.js";var _excluded = ["name", "label", "isAbsolutePath", "children", "useDefaultValue", "rules", "validateTrigger", "hidden", "valuePropName", "initialValue", "extra", "noStyle"];function _defineProperty(e, r, t) {return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e;}function _toPropertyKey(t) {var i = _toPrimitive(t, "string");return "symbol" == typeof i ? i : i + "";}function _toPrimitive(t, r) {if ("object" != typeof t || !t) return t;var e = t[Symbol.toPrimitive];if (void 0 !== e) {var i = e.call(t, r || "default");if ("object" != typeof i) return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return ("string" === r ? String : Number)(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 React from 'react';
2
+
3
+ import { FormGroup, useRelativePath } from "./FormGroup";
4
+ import { Text } from "../text/Text";
5
+ import { View } from "../structure/View";
6
+ import { clearProps } from "../../modifiers/_helpers";
7
+ import { useFormInstance, useFormState } from "./Form";
8
+ import { shouldValidateOn } from "./validation";import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+
10
+ export function FormItem(_ref)
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+ {var _child$props;var name = _ref.name,label = _ref.label,isAbsolutePath = _ref.isAbsolutePath,children = _ref.children,useDefaultValue = _ref.useDefaultValue,rules = _ref.rules,_ref$validateTrigger = _ref.validateTrigger,validateTrigger = _ref$validateTrigger === void 0 ? 'onSubmit' : _ref$validateTrigger,hidden = _ref.hidden,valuePropName = _ref.valuePropName,initialValue = _ref.initialValue,extra = _ref.extra,noStyle = _ref.noStyle,props = _objectWithoutProperties(_ref, _excluded);
25
+ var form = useFormInstance();
26
+ var formState = useFormState();
27
+ var listPath = useRelativePath(name, { isAbsolutePath: isAbsolutePath });
28
+ var listPathStr = listPath.join('$NEKOJOIN$');
29
+ var _React$useState = React.useState(form.getFieldValue(listPath)),_React$useState2 = _slicedToArray(_React$useState, 2),value = _React$useState2[0],setValue = _React$useState2[1];
30
+ var _React$useState3 = React.useState(form.getError(listPath)),_React$useState4 = _slicedToArray(_React$useState3, 2),error = _React$useState4[0],setError = _React$useState4[1];
31
+
32
+
33
+ React.useEffect(function () {
34
+ if (initialValue !== undefined && form.getFieldValue(listPath) === undefined) {
35
+ form.setFieldValue(listPath, initialValue);
36
+ }
37
+ }, [listPathStr]);
38
+
39
+
40
+ React.useEffect(function () {
41
+ return form.registerRules(listPath, rules, validateTrigger);
42
+ }, [listPathStr, JSON.stringify(rules), validateTrigger]);
43
+
44
+
45
+ React.useEffect(function () {
46
+ return form.registerListener(listPath, function (val) {return setValue(val);});
47
+ }, [listPathStr]);
48
+
49
+
50
+ React.useEffect(function () {
51
+ return form.registerErrorListener(listPath, function (err) {return setError(err);});
52
+ }, [listPathStr]);
53
+
54
+ var handleChange = function handleChange(e) {var _e$target$value, _e$target;
55
+ var val = (_e$target$value = e == null ? void 0 : (_e$target = e.target) == null ? void 0 : _e$target.value) != null ? _e$target$value : e;
56
+ form.setFieldValue(listPath, val);
57
+
58
+ if (shouldValidateOn('onChange', rules, validateTrigger)) {
59
+ form.validateField(listPath, 'onChange');
60
+ }
61
+ };
62
+
63
+ var handleBlur = function handleBlur(e, originalOnBlur) {
64
+ if (originalOnBlur) originalOnBlur(e);
65
+
66
+ if (shouldValidateOn('onBlur', rules, validateTrigger)) {
67
+ form.validateField(listPath, 'onBlur');
68
+ }
69
+ };
70
+
71
+ var valueKey = valuePropName || 'value';
72
+ if (!!useDefaultValue) valueKey = 'defaultValue';
73
+
74
+ var child = typeof children === 'function' ? null : React.Children.only(children);
75
+ var originalOnBlur = child == null ? void 0 : (_child$props = child.props) == null ? void 0 : _child$props.onBlur;
76
+
77
+ var childProps = clearProps(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({},
78
+ valueKey, value === undefined ? '' : value), "onChange",
79
+ handleChange), "onBlur",
80
+ function onBlur(e) {return handleBlur(e, originalOnBlur);}), "disabled",
81
+ (formState == null ? void 0 : formState.disabled) === true || undefined), "error",
82
+ !!error || undefined)
83
+ );
84
+
85
+ var content;
86
+ if (typeof children === 'function') {
87
+ content = children(childProps);
88
+ } else {
89
+ content = React.cloneElement(child, Object.assign({}, child.props, childProps));
90
+ }
91
+
92
+ if (hidden) {
93
+ return (
94
+ _jsx(FormGroup, { name: listPath, children:
95
+ _jsx(View, { hidden: true, children: content }) }
96
+ ));
97
+
98
+ }
99
+
100
+ if (noStyle) {
101
+ return _jsx(FormGroup, { name: listPath, children: content });
102
+ }
103
+
104
+ return (
105
+ _jsx(FormGroup, { name: listPath, children:
106
+ _jsxs(View, Object.assign({}, props, { children: [
107
+ label &&
108
+ _jsx(Text, { sm: true, marginB: "xxs", children:
109
+ label }
110
+ ),
111
+
112
+ content,
113
+ error && _jsx(Text, { color: "red", children: error }),
114
+ extra && _jsx(View, { marginT: "xxs", children: extra })] })
115
+ ) }
116
+ ));
117
+
118
+ }
@@ -1 +1,143 @@
1
- import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormList.js";import React from'react';import{FormGroup,useRelativePath}from"./FormGroup";import{Text}from"../text/Text";import{useFormInstance}from"./Form";import{shouldValidateOn}from"./validation";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var FormListContext=React.createContext(null);var useFormList=function useFormList(){return React.useContext(FormListContext);};export function FormList(_ref){var name=_ref.name,isAbsolutePath=_ref.isAbsolutePath,children=_ref.children,rules=_ref.rules,_ref$validateTrigger=_ref.validateTrigger,validateTrigger=_ref$validateTrigger===void 0?'onSubmit':_ref$validateTrigger;var form=useFormInstance();var listPath=useRelativePath(name,{isAbsolutePath:isAbsolutePath});var listPathStr=listPath.join('$NEKOJOIN$');var _React$useState=React.useState(form.getError(listPath)),_React$useState2=_slicedToArray(_React$useState,2),error=_React$useState2[0],setError=_React$useState2[1];var keyCounter=React.useRef(0);var keysMap=React.useRef(new WeakMap());React.useEffect(function(){return form.registerRules(listPath,rules,validateTrigger);},[listPathStr,JSON.stringify(rules),validateTrigger]);React.useEffect(function(){return form.registerErrorListener(listPath,function(err){return setError(err);});},[listPathStr]);var generateFields=function generateFields(items){if(!Array.isArray(items))return[];return items.map(function(item,index){var key;if(typeof item==='object'&&item!==null){key=keysMap.current.get(item);if(!key){key=`field_${keyCounter.current++}`;keysMap.current.set(item,key);}}else{key=`field_${keyCounter.current++}`;}return{key:key,name:index};});};var _React$useState3=React.useState(function(){var initial=form.getFieldValue(listPath)||[];return generateFields(initial);}),_React$useState4=_slicedToArray(_React$useState3,2),fields=_React$useState4[0],setFields=_React$useState4[1];React.useEffect(function(){return form.registerListener(listPath,function(val){setFields(generateFields(val));});},[listPathStr]);var validateOnChange=function validateOnChange(){if(shouldValidateOn('onChange',rules,validateTrigger)){form.validateField(listPath,'onChange');}};var add=function add(){var defaultValue=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var current=form.getFieldValue(listPath)||[];form.setFieldValue(listPath,[].concat(_toConsumableArray(current),[defaultValue]));validateOnChange();};var addOn=function addOn(index){var defaultValue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var current=form.getFieldValue(listPath)||[];form.setFieldValue(listPath,[].concat(_toConsumableArray(current.slice(0,index)),[defaultValue],_toConsumableArray(current.slice(index))));validateOnChange();};var replace=function replace(index,value){var current=form.getFieldValue(listPath)||[];form.setFieldValue(listPath,current.map(function(item,i){return i===index?value:item;}));};var duplicate=function duplicate(index){var current=form.getFieldValue(listPath)||[];var value=current[index];if(!value)return;var clonedValue=typeof value==='object'?Object.assign({},value):value;addOn(index+1,clonedValue);};var move=function move(fromIndex,toIndex){var current=form.getFieldValue(listPath)||[];if(fromIndex<0||fromIndex>=current.length)return;if(toIndex<0||toIndex>=current.length)return;var item=current[fromIndex];var updated=_toConsumableArray(current);updated.splice(fromIndex,1);updated.splice(toIndex,0,item);form.setFieldValue(listPath,updated);};var remove=function remove(index){var current=form.getFieldValue(listPath)||[];form.setFieldValue(listPath,current.filter(function(_,i){return i!==index;}));validateOnChange();};var actions=React.useMemo(function(){return{add:add,addOn:addOn,replace:replace,remove:remove,move:move,duplicate:duplicate};},[listPathStr,rules,validateTrigger]);var content;if(typeof children==='function'){content=children(fields,actions);}else{var child=React.Children.only(children);content=React.cloneElement(child,Object.assign({},child.props,{fields:fields},actions));}return _jsx(FormGroup,{name:listPath,children:_jsxs(FormListContext.Provider,{value:actions,children:[content,error&&_jsx(Text,{color:"red",children:error})]})});}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormList.js";function _toConsumableArray(r) {return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();}function _nonIterableSpread() {throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _iterableToArray(r) {if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);}function _arrayWithoutHoles(r) {if (Array.isArray(r)) return _arrayLikeToArray(r);}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;}import React from 'react';
2
+
3
+ import { FormGroup, useRelativePath } from "./FormGroup";
4
+ import { Text } from "../text/Text";
5
+ import { useFormInstance } from "./Form";
6
+ import { shouldValidateOn } from "./validation";import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+
8
+ var FormListContext = React.createContext(null);
9
+ var useFormList = function useFormList() {return React.useContext(FormListContext);};
10
+
11
+ export function FormList(_ref) {var name = _ref.name,isAbsolutePath = _ref.isAbsolutePath,children = _ref.children,rules = _ref.rules,_ref$validateTrigger = _ref.validateTrigger,validateTrigger = _ref$validateTrigger === void 0 ? 'onSubmit' : _ref$validateTrigger;
12
+ var form = useFormInstance();
13
+ var listPath = useRelativePath(name, { isAbsolutePath: isAbsolutePath });
14
+ var listPathStr = listPath.join('$NEKOJOIN$');
15
+ var _React$useState = React.useState(form.getError(listPath)),_React$useState2 = _slicedToArray(_React$useState, 2),error = _React$useState2[0],setError = _React$useState2[1];
16
+
17
+
18
+ var keyCounter = React.useRef(0);
19
+
20
+ var keysMap = React.useRef(new WeakMap());
21
+
22
+
23
+ React.useEffect(function () {
24
+ return form.registerRules(listPath, rules, validateTrigger);
25
+ }, [listPathStr, JSON.stringify(rules), validateTrigger]);
26
+
27
+
28
+ React.useEffect(function () {
29
+ return form.registerErrorListener(listPath, function (err) {return setError(err);});
30
+ }, [listPathStr]);
31
+
32
+ var generateFields = function generateFields(items) {
33
+ if (!Array.isArray(items)) return [];
34
+ return items.map(function (item, index) {
35
+ var key;
36
+ if (typeof item === 'object' && item !== null) {
37
+ key = keysMap.current.get(item);
38
+ if (!key) {
39
+ key = `field_${keyCounter.current++}`;
40
+ keysMap.current.set(item, key);
41
+ }
42
+ } else {
43
+ key = `field_${keyCounter.current++}`;
44
+ }
45
+ return { key: key, name: index };
46
+ });
47
+ };
48
+
49
+ var _React$useState3 = React.useState(function () {
50
+ var initial = form.getFieldValue(listPath) || [];
51
+ return generateFields(initial);
52
+ }),_React$useState4 = _slicedToArray(_React$useState3, 2),fields = _React$useState4[0],setFields = _React$useState4[1];
53
+
54
+ React.useEffect(function () {
55
+ return form.registerListener(listPath, function (val) {
56
+ setFields(generateFields(val));
57
+ });
58
+ }, [listPathStr]);
59
+
60
+ var validateOnChange = function validateOnChange() {
61
+ if (shouldValidateOn('onChange', rules, validateTrigger)) {
62
+ form.validateField(listPath, 'onChange');
63
+ }
64
+ };
65
+
66
+ var add = function add() {var defaultValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
67
+ var current = form.getFieldValue(listPath) || [];
68
+ form.setFieldValue(listPath, [].concat(_toConsumableArray(current), [defaultValue]));
69
+ validateOnChange();
70
+ };
71
+
72
+ var addOn = function addOn(index) {var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
73
+ var current = form.getFieldValue(listPath) || [];
74
+ form.setFieldValue(listPath, [].concat(_toConsumableArray(current.slice(0, index)), [defaultValue], _toConsumableArray(current.slice(index))));
75
+ validateOnChange();
76
+ };
77
+
78
+ var replace = function replace(index, value) {
79
+ var current = form.getFieldValue(listPath) || [];
80
+ form.setFieldValue(
81
+ listPath,
82
+ current.map(function (item, i) {return i === index ? value : item;})
83
+ );
84
+ };
85
+
86
+ var duplicate = function duplicate(index) {
87
+ var current = form.getFieldValue(listPath) || [];
88
+ var value = current[index];
89
+ if (!value) return;
90
+
91
+ var clonedValue = typeof value === 'object' ? Object.assign({}, value) : value;
92
+ addOn(index + 1, clonedValue);
93
+ };
94
+
95
+ var move = function move(fromIndex, toIndex) {
96
+ var current = form.getFieldValue(listPath) || [];
97
+ if (fromIndex < 0 || fromIndex >= current.length) return;
98
+ if (toIndex < 0 || toIndex >= current.length) return;
99
+ var item = current[fromIndex];
100
+ var updated = _toConsumableArray(current);
101
+ updated.splice(fromIndex, 1);
102
+ updated.splice(toIndex, 0, item);
103
+ form.setFieldValue(listPath, updated);
104
+ };
105
+
106
+ var remove = function remove(index) {
107
+ var current = form.getFieldValue(listPath) || [];
108
+ form.setFieldValue(
109
+ listPath,
110
+ current.filter(function (_, i) {return i !== index;})
111
+ );
112
+ validateOnChange();
113
+ };
114
+
115
+ var actions = React.useMemo(
116
+ function () {return {
117
+ add: add,
118
+ addOn: addOn,
119
+ replace: replace,
120
+ remove: remove,
121
+ move: move,
122
+ duplicate: duplicate
123
+ };},
124
+ [listPathStr, rules, validateTrigger]
125
+ );
126
+
127
+ var content;
128
+ if (typeof children === 'function') {
129
+ content = children(fields, actions);
130
+ } else {
131
+ var child = React.Children.only(children);
132
+ content = React.cloneElement(child, Object.assign({}, child.props, { fields: fields }, actions));
133
+ }
134
+
135
+ return (
136
+ _jsx(FormGroup, { name: listPath, children:
137
+ _jsxs(FormListContext.Provider, { value: actions, children: [
138
+ content,
139
+ error && _jsx(Text, { color: "red", children: error })] }
140
+ ) }
141
+ ));
142
+
143
+ }
@@ -1 +1,52 @@
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/form/FormWrapperComponent.js";var _excluded=["children","form"];import{pipe}from'ramda';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{useFormState}from"./Form";import{useMarginModifier}from"../../modifiers/margin";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";import{useShadowModifier}from"../../modifiers/shadow";import{useSizeModifier}from"../../modifiers/size";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function FormWrapperComponent(_ref){var children=_ref.children,form=_ref.form,rootProps=_objectWithoutProperties(_ref,_excluded);var formState=useFormState();var _pipe=pipe(useDisplayModifier,useSizeModifier,usePositionModifier,usePaddingModifier,useMarginModifier,useFlexWrapperModifier,useFlexModifier,useBackgroundModifier,useBorderModifier,useShadowModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_=_pipe2[0],props=_pipe2[1];var handleSubmit=function handleSubmit(e){e.preventDefault();if(formState!=null&&formState.loading||formState!=null&&formState.disabled)return;form.handleSubmit();};return _jsxs("form",Object.assign({onSubmit:handleSubmit},props,{children:[children,_jsx("input",{type:"submit",style:{display:'none'}})]}));}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormWrapperComponent.js";var _excluded = ["children", "form", "onSubmit"];function asyncGeneratorStep(n, t, e, r, o, a, c) {try {var i = n[a](c),u = i.value;} catch (n) {return void e(n);}i.done ? t(u) : Promise.resolve(u).then(r, o);}function _asyncToGenerator(n) {return function () {var t = this,e = arguments;return new Promise(function (r, o) {var a = n.apply(t, e);function _next(n) {asyncGeneratorStep(a, r, o, _next, _throw, "next", n);}function _throw(n) {asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);}_next(void 0);});};}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 { useBackgroundModifier } from "../../modifiers/background";
4
+ import { useBorderModifier } from "../../modifiers/border";
5
+ import { useDisplayModifier } from "../../modifiers/display";
6
+ import { useFlexModifier } from "../../modifiers/flex";
7
+ import { useFlexWrapperModifier } from "../../modifiers/flexWrapper";
8
+ import { useFormState } from "./Form";
9
+ import { useMarginModifier } from "../../modifiers/margin";
10
+ import { usePaddingModifier } from "../../modifiers/padding";
11
+ import { usePositionModifier } from "../../modifiers/position";
12
+ import { useShadowModifier } from "../../modifiers/shadow";
13
+ import { useSizeModifier } from "../../modifiers/size";import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+
15
+ export function FormWrapperComponent(_ref) {var children = _ref.children,form = _ref.form,onSubmit = _ref.onSubmit,rootProps = _objectWithoutProperties(_ref, _excluded);
16
+ var formState = useFormState();
17
+ var _pipe = pipe(
18
+ useDisplayModifier,
19
+
20
+ useSizeModifier,
21
+ usePositionModifier,
22
+ usePaddingModifier,
23
+ useMarginModifier,
24
+ useFlexWrapperModifier,
25
+ useFlexModifier,
26
+ useBackgroundModifier,
27
+ useBorderModifier,
28
+ useShadowModifier
29
+ )([{}, rootProps]),_pipe2 = _slicedToArray(_pipe, 2),_ = _pipe2[0],props = _pipe2[1];
30
+
31
+ var handleSubmit = function () {var _ref2 = _asyncToGenerator(function* (e) {
32
+ e.preventDefault();
33
+ if (formState != null && formState.loading || formState != null && formState.disabled) return;
34
+ if (onSubmit) {
35
+ try {
36
+ var values = yield form.validateFields();
37
+ onSubmit(values);
38
+ } catch (e) {
39
+
40
+ }
41
+ } else {
42
+ form.handleSubmit();
43
+ }
44
+ });return function handleSubmit(_x) {return _ref2.apply(this, arguments);};}();
45
+
46
+ return (
47
+ _jsxs("form", Object.assign({ onSubmit: handleSubmit }, props, { children: [
48
+ children,
49
+ _jsx("input", { type: "submit", style: { display: 'none' } })] })
50
+ ));
51
+
52
+ }
@@ -1 +1,5 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormWrapperComponent.native.js";var _excluded=["children"];import{View}from"../structure/View";import{jsx as _jsx}from"react/jsx-runtime";export function FormWrapperComponent(_ref){var children=_ref.children,props=_objectWithoutProperties(_ref,_excluded);return _jsx(View,Object.assign({},props,{children:children}));}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormWrapperComponent.native.js";var _excluded = ["children"];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 { View } from "../structure/View";import { jsx as _jsx } from "react/jsx-runtime";
2
+
3
+ export function FormWrapperComponent(_ref) {var children = _ref.children,props = _objectWithoutProperties(_ref, _excluded);
4
+ return _jsx(View, Object.assign({}, props, { children: children }));
5
+ }
@@ -1 +1,22 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/SubmitButton.js";var _excluded=["form","disabled","Wrapper"];import{Button}from"../actions/Button";import{useFormInstance,useFormState}from"./Form";import{jsx as _jsx}from"react/jsx-runtime";export function SubmitButton(_ref){var form=_ref.form,disabled=_ref.disabled,Wrapper=_ref.Wrapper,props=_objectWithoutProperties(_ref,_excluded);var formState=useFormState();var contextForm=useFormInstance();form=form||contextForm;disabled=(formState==null?void 0:formState.disabled)||disabled;Wrapper=Wrapper||Button;var handleSubmit=function handleSubmit(){if(!form){console.error('No form provided to useWatch. Pass it as params or wrap it inside a <Form> component.');return;}form.handleSubmit();};return _jsx(Wrapper,Object.assign({},props,{disabled:disabled,onPress:handleSubmit}));}
1
+ var _jsxFileName = "/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/SubmitButton.js";var _excluded = ["form", "disabled", "Wrapper"];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 { Button } from "../actions/Button";
2
+ import { useFormInstance, useFormState } from "./Form";import { jsx as _jsx } from "react/jsx-runtime";
3
+
4
+ export function SubmitButton(_ref) {var form = _ref.form,disabled = _ref.disabled,Wrapper = _ref.Wrapper,props = _objectWithoutProperties(_ref, _excluded);
5
+ var formState = useFormState();
6
+ var contextForm = useFormInstance();
7
+ form = form || contextForm;
8
+ disabled = (formState == null ? void 0 : formState.disabled) || disabled;
9
+
10
+ Wrapper = Wrapper || Button;
11
+
12
+ var handleSubmit = function handleSubmit() {
13
+ if (!form) {
14
+ console.error('No form provided to useWatch. Pass it as params or wrap it inside a <Form> component.');
15
+ return;
16
+ }
17
+
18
+ form.handleSubmit();
19
+ };
20
+
21
+ return _jsx(Wrapper, Object.assign({}, props, { disabled: disabled, onPress: handleSubmit }));
22
+ }
@@ -1 +1,9 @@
1
- export*from"./Form";export*from"./FormItem";export*from"./FormList";export*from"./FormWrapperComponent";export*from"./FormGroup";export*from"./useNewForm";export*from"./useWatch";export*from"./SubmitButton";export*from"./validation";
1
+ export * from "./Form";
2
+ export * from "./FormItem";
3
+ export * from "./FormList";
4
+ export * from "./FormWrapperComponent";
5
+ export * from "./FormGroup";
6
+ export * from "./useNewForm";
7
+ export * from "./useWatch";
8
+ export * from "./SubmitButton";
9
+ export * from "./validation";