@neko-os/ui 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/dist/DynamicStyleTag.js +18 -2
  2. package/dist/DynamicStyleTag.native.js +3 -1
  3. package/dist/NekoUI.js +39 -1
  4. package/dist/abstractions/ActivityIndicator.js +19 -1
  5. package/dist/abstractions/ActivityIndicator.native.js +43 -1
  6. package/dist/abstractions/ActivityIndicator.web.js +43 -1
  7. package/dist/abstractions/AnimatedView.js +3 -1
  8. package/dist/abstractions/AnimatedView.native.js +5 -1
  9. package/dist/abstractions/AnimatedView.web.js +3 -1
  10. package/dist/abstractions/BlurView.js +43 -1
  11. package/dist/abstractions/BlurView.native.js +39 -1
  12. package/dist/abstractions/BlurView.web.js +39 -1
  13. package/dist/abstractions/DraggableSlideView.js +3 -1
  14. package/dist/abstractions/DraggableSlideView.native.js +62 -1
  15. package/dist/abstractions/FlatList.js +3 -1
  16. package/dist/abstractions/FlatList.native.js +37 -1
  17. package/dist/abstractions/FlatList.web.js +3 -1
  18. package/dist/abstractions/GradientView.js +5 -1
  19. package/dist/abstractions/GradientView.native.js +32 -1
  20. package/dist/abstractions/HiddenInput.js +3 -1
  21. package/dist/abstractions/HiddenInput.native.js +3 -1
  22. package/dist/abstractions/Icon.js +10 -1
  23. package/dist/abstractions/Icon.native.js +13 -1
  24. package/dist/abstractions/Icon.web.js +11 -1
  25. package/dist/abstractions/Image.js +12 -1
  26. package/dist/abstractions/Image.native.js +7 -1
  27. package/dist/abstractions/Image.web.js +7 -1
  28. package/dist/abstractions/ImageBackground.js +17 -1
  29. package/dist/abstractions/ImageBackground.native.js +27 -1
  30. package/dist/abstractions/ImageBackground.web.js +7 -1
  31. package/dist/abstractions/KeyboardAvoidingView.js +3 -1
  32. package/dist/abstractions/KeyboardAvoidingView.native.js +3 -1
  33. package/dist/abstractions/Platform.js +1 -1
  34. package/dist/abstractions/Platform.native.js +3 -1
  35. package/dist/abstractions/Platform.web.js +3 -1
  36. package/dist/abstractions/Pressable.js +4 -1
  37. package/dist/abstractions/Pressable.native.js +3 -1
  38. package/dist/abstractions/Pressable.web.js +3 -1
  39. package/dist/abstractions/SafeAreaView.js +3 -1
  40. package/dist/abstractions/SafeAreaView.native.js +3 -1
  41. package/dist/abstractions/ScrollView.js +3 -1
  42. package/dist/abstractions/ScrollView.native.js +5 -1
  43. package/dist/abstractions/ScrollView.web.js +3 -1
  44. package/dist/abstractions/StaticList.js +51 -1
  45. package/dist/abstractions/Switch.js +97 -1
  46. package/dist/abstractions/Switch.native.js +12 -1
  47. package/dist/abstractions/Table.js +29 -1
  48. package/dist/abstractions/Table.native.js +19 -1
  49. package/dist/abstractions/Text.js +14 -1
  50. package/dist/abstractions/Text.native.js +3 -1
  51. package/dist/abstractions/Text.web.js +18 -1
  52. package/dist/abstractions/TextInput.js +12 -1
  53. package/dist/abstractions/TextInput.native.js +5 -1
  54. package/dist/abstractions/TextInput.web.js +5 -1
  55. package/dist/abstractions/TouchableOpacity.js +4 -1
  56. package/dist/abstractions/TouchableOpacity.native.js +3 -1
  57. package/dist/abstractions/View.js +3 -1
  58. package/dist/abstractions/View.native.js +3 -1
  59. package/dist/abstractions/View.web.js +3 -1
  60. package/dist/abstractions/helpers/componentSize.js +13 -1
  61. package/dist/abstractions/helpers/componentSize.native.js +12 -1
  62. package/dist/abstractions/helpers/storage.js +32 -1
  63. package/dist/abstractions/helpers/storage.native.js +34 -1
  64. package/dist/abstractions/helpers/transformStyle.js +8 -1
  65. package/dist/abstractions/helpers/transformStyle.native.js +3 -1
  66. package/dist/abstractions/helpers/useSafeAreaInsets.js +3 -1
  67. package/dist/abstractions/helpers/useSafeAreaInsets.native.js +3 -1
  68. package/dist/abstractions/helpers/windowWidth.js +13 -1
  69. package/dist/abstractions/helpers/windowWidth.native.js +6 -1
  70. package/dist/abstractions/helpers/windowWidth.web.js +6 -1
  71. package/dist/components/actions/ActionsDrawer.js +81 -1
  72. package/dist/components/actions/Breadcrumb.js +47 -1
  73. package/dist/components/actions/Button.js +82 -1
  74. package/dist/components/actions/Dropdown.js +91 -1
  75. package/dist/components/actions/FloatingButton.js +87 -1
  76. package/dist/components/actions/FloatingMenu.js +39 -1
  77. package/dist/components/actions/Link.js +66 -1
  78. package/dist/components/actions/Pressable.js +38 -1
  79. package/dist/components/actions/index.js +9 -1
  80. package/dist/components/actions/menu/HorizontalMenu.js +98 -1
  81. package/dist/components/actions/menu/Menu.js +7 -1
  82. package/dist/components/actions/menu/SubmenuWrapper.js +16 -1
  83. package/dist/components/actions/menu/VerticalMenu.js +133 -1
  84. package/dist/components/animations/AnimatedTopBar.js +10 -1
  85. package/dist/components/animations/AnimatedTopBar.native.js +34 -1
  86. package/dist/components/animations/AnimatedTopBar.web.js +1 -1
  87. package/dist/components/animations/AnimatedView.js +45 -1
  88. package/dist/components/animations/DraggableSlideView.js +42 -1
  89. package/dist/components/animations/ParallaxHeader.js +9 -1
  90. package/dist/components/animations/ParallaxHeader.native.js +32 -1
  91. package/dist/components/animations/ParallaxHeader.web.js +32 -1
  92. package/dist/components/animations/ReanimatedScrollHandler.js +8 -1
  93. package/dist/components/animations/ReanimatedScrollHandler.native.js +24 -1
  94. package/dist/components/animations/ReanimatedScrollHandler.web.js +1 -1
  95. package/dist/components/animations/ReanimatedView.js +40 -1
  96. package/dist/components/animations/index.js +5 -1
  97. package/dist/components/calendar/CalendarNav.js +67 -1
  98. package/dist/components/calendar/WeekDaysBar.js +18 -1
  99. package/dist/components/calendar/_helpers/calendarDays.js +16 -1
  100. package/dist/components/calendar/_helpers/dateDisabled.js +24 -1
  101. package/dist/components/feedback/alerter.js +31 -1
  102. package/dist/components/feedback/confirmer.js +70 -1
  103. package/dist/components/feedback/index.js +3 -1
  104. package/dist/components/feedback/notifications/Notification.js +37 -1
  105. package/dist/components/feedback/notifications/NotificationsHandler.js +65 -1
  106. package/dist/components/filter/DateFilter.js +72 -0
  107. package/dist/components/filter/FilterGroup.js +17 -0
  108. package/dist/components/filter/FilterHandler.js +54 -0
  109. package/dist/components/filter/FilterItem.js +30 -0
  110. package/dist/components/filter/PopoverFilterItem.js +84 -0
  111. package/dist/components/filter/SearchInput.js +49 -0
  112. package/dist/components/filter/index.js +6 -0
  113. package/dist/components/form/Form.js +31 -1
  114. package/dist/components/form/FormGroup.js +21 -1
  115. package/dist/components/form/FormItem.js +118 -1
  116. package/dist/components/form/FormList.js +143 -1
  117. package/dist/components/form/FormWrapperComponent.js +52 -1
  118. package/dist/components/form/FormWrapperComponent.native.js +5 -1
  119. package/dist/components/form/SubmitButton.js +22 -1
  120. package/dist/components/form/index.js +9 -1
  121. package/dist/components/form/useNewForm.js +211 -1
  122. package/dist/components/form/useWatch.js +70 -1
  123. package/dist/components/form/validation/defaultMessages.js +20 -1
  124. package/dist/components/form/validation/index.js +5 -1
  125. package/dist/components/form/validation/normalizeRules.js +22 -1
  126. package/dist/components/form/validation/shouldValidateOn.js +21 -1
  127. package/dist/components/form/validation/validateRules.js +83 -1
  128. package/dist/components/form/validation/validators.js +82 -1
  129. package/dist/components/helpers/ConditionalLazyRender.js +6 -1
  130. package/dist/components/helpers/LazyAction.js +22 -1
  131. package/dist/components/helpers/LazyRender.js +55 -1
  132. package/dist/components/helpers/LazyRender.native.js +58 -1
  133. package/dist/components/helpers/Portal.js +21 -1
  134. package/dist/components/helpers/PortalHandler.js +32 -1
  135. package/dist/components/helpers/Responsive.js +18 -1
  136. package/dist/components/helpers/Separator.js +49 -1
  137. package/dist/components/helpers/VerticalView.js +34 -1
  138. package/dist/components/helpers/index.js +8 -1
  139. package/dist/components/index.js +20 -1
  140. package/dist/components/inputs/BooleanSelect.js +14 -0
  141. package/dist/components/inputs/Checkbox.js +56 -1
  142. package/dist/components/inputs/DateInput.js +123 -1
  143. package/dist/components/inputs/DateRangeInput.js +41 -0
  144. package/dist/components/inputs/Editable.js +129 -0
  145. package/dist/components/inputs/EnabledSelect.js +14 -0
  146. package/dist/components/inputs/InputWrapper.js +93 -1
  147. package/dist/components/inputs/LinkInput.js +17 -1
  148. package/dist/components/inputs/MaskInput.js +67 -1
  149. package/dist/components/inputs/NumberInput.js +111 -1
  150. package/dist/components/inputs/NumberRangeInput.js +41 -0
  151. package/dist/components/inputs/PasswordInput.js +24 -0
  152. package/dist/components/inputs/Picker.js +169 -1
  153. package/dist/components/inputs/Radio.js +55 -1
  154. package/dist/components/inputs/RateInput.js +62 -1
  155. package/dist/components/inputs/SegmentedPicker.js +62 -1
  156. package/dist/components/inputs/Select.js +219 -1
  157. package/dist/components/inputs/Switch.js +60 -1
  158. package/dist/components/inputs/TextArea.js +5 -0
  159. package/dist/components/inputs/TextInput.js +32 -1
  160. package/dist/components/inputs/UploadInput.js +140 -0
  161. package/dist/components/inputs/_DateInput.native.js +89 -1
  162. package/dist/components/inputs/datePicker/DatePicker.js +24 -1
  163. package/dist/components/inputs/datePicker/DayPicker.js +64 -1
  164. package/dist/components/inputs/datePicker/MonthPicker.js +62 -1
  165. package/dist/components/inputs/datePicker/QuarterPicker.js +65 -1
  166. package/dist/components/inputs/datePicker/WeekPicker.js +74 -1
  167. package/dist/components/inputs/datePicker/YearPicker.js +70 -1
  168. package/dist/components/inputs/index.js +23 -1
  169. package/dist/components/inputs/upload/Upload.js +99 -0
  170. package/dist/components/inputs/upload/Upload.native.js +154 -0
  171. package/dist/components/inputs/upload/useUploadState.js +143 -0
  172. package/dist/components/layout/Layout.js +40 -1
  173. package/dist/components/layout/LayoutContent.js +42 -1
  174. package/dist/components/layout/LayoutHeader.js +70 -1
  175. package/dist/components/layout/LayoutSider.js +64 -1
  176. package/dist/components/layout/index.js +4 -1
  177. package/dist/components/list/FlatList.js +91 -1
  178. package/dist/components/list/ScrollView.js +58 -1
  179. package/dist/components/list/index.js +2 -1
  180. package/dist/components/modals/bottomDrawer/index.js +3 -1
  181. package/dist/components/modals/bottomDrawer/index.native.js +5 -1
  182. package/dist/components/modals/bottomDrawer/index.web.js +5 -1
  183. package/dist/components/modals/bottomDrawer/native/BottomDrawer.js +239 -1
  184. package/dist/components/modals/bottomDrawer/native/DrawerContext.js +17 -1
  185. package/dist/components/modals/bottomDrawer/native/DrawerHandle.js +12 -1
  186. package/dist/components/modals/bottomDrawer/native/DrawerScrollView.js +5 -1
  187. package/dist/components/modals/bottomDrawer/native/createDrawerScrollComponent.js +139 -1
  188. package/dist/components/modals/bottomDrawer/native/utils.js +65 -1
  189. package/dist/components/modals/bottomDrawer/web/BottomDrawer.js +5 -1
  190. package/dist/components/modals/drawer/Drawer.js +5 -1
  191. package/dist/components/modals/drawer/Drawer.native.js +3 -1
  192. package/dist/components/modals/drawer/Drawer.web.js +3 -1
  193. package/dist/components/modals/drawer/index.js +1 -1
  194. package/dist/components/modals/index.js +4 -1
  195. package/dist/components/modals/modal/Modal.js +84 -1
  196. package/dist/components/modals/modal/Modal.native.js +83 -1
  197. package/dist/components/modals/modal/ModalBackdrop.js +58 -1
  198. package/dist/components/modals/modal/ModalContent.js +28 -1
  199. package/dist/components/modals/modal/ModalFooter.js +31 -1
  200. package/dist/components/modals/modal/ModalHeader.js +50 -1
  201. package/dist/components/modals/modal/handler/ModalsHandler.js +61 -1
  202. package/dist/components/modals/modal/index.js +6 -1
  203. package/dist/components/modals/router/ModalRoute.js +15 -1
  204. package/dist/components/modals/router/ModalsRouter.js +120 -1
  205. package/dist/components/modals/router/ModalsRouterContext.js +16 -1
  206. package/dist/components/modals/router/index.js +6 -1
  207. package/dist/components/modals/router/useAllModalsParams.js +6 -1
  208. package/dist/components/modals/router/useModalParams.js +6 -1
  209. package/dist/components/modals/router/useModalsNavigation.js +6 -1
  210. package/dist/components/modals/router/useUpdateModalContainer.js +6 -1
  211. package/dist/components/presentation/Avatar.js +79 -1
  212. package/dist/components/presentation/AvatarLabel.js +60 -1
  213. package/dist/components/presentation/AvatarsGroup.js +30 -0
  214. package/dist/components/presentation/Badge.js +91 -1
  215. package/dist/components/presentation/ContentLabel.js +43 -1
  216. package/dist/components/presentation/Icon.js +20 -1
  217. package/dist/components/presentation/IconLabel.js +40 -1
  218. package/dist/components/presentation/Image.js +33 -1
  219. package/dist/components/presentation/ImageBackground.js +38 -1
  220. package/dist/components/presentation/LabelValue.js +51 -1
  221. package/dist/components/presentation/Progress.js +20 -0
  222. package/dist/components/presentation/Rate.js +58 -1
  223. package/dist/components/presentation/RateTag.js +35 -1
  224. package/dist/components/presentation/Result.js +60 -1
  225. package/dist/components/presentation/ResultBar.js +56 -1
  226. package/dist/components/presentation/Tag.js +69 -1
  227. package/dist/components/presentation/Tooltip.js +44 -1
  228. package/dist/components/presentation/index.js +16 -1
  229. package/dist/components/sections/Section.js +50 -1
  230. package/dist/components/sections/SectionItem.js +24 -1
  231. package/dist/components/sections/SectionItemDropdown.js +68 -1
  232. package/dist/components/sections/SectionItemLink.js +35 -1
  233. package/dist/components/sections/index.js +4 -1
  234. package/dist/components/state/Loading.js +20 -1
  235. package/dist/components/state/LoadingView.js +37 -1
  236. package/dist/components/state/StatePresenter.js +41 -1
  237. package/dist/components/state/index.js +3 -1
  238. package/dist/components/steps/ActiveStepContent.js +16 -0
  239. package/dist/components/steps/StepsHandler.js +53 -0
  240. package/dist/components/steps/StepsMenu.js +14 -0
  241. package/dist/components/steps/StepsNavigation.js +37 -0
  242. package/dist/components/steps/index.js +4 -0
  243. package/dist/components/structure/Accordion.js +69 -1
  244. package/dist/components/structure/AccordionGroup.js +35 -1
  245. package/dist/components/structure/Affix.js +34 -0
  246. package/dist/components/structure/Affix.native.js +3 -0
  247. package/dist/components/structure/BlurView.js +59 -1
  248. package/dist/components/structure/Card.js +46 -1
  249. package/dist/components/structure/Col.js +22 -1
  250. package/dist/components/structure/GradientView.js +42 -1
  251. package/dist/components/structure/KeyboardAvoidingView.js +52 -1
  252. package/dist/components/structure/Row.js +50 -1
  253. package/dist/components/structure/SafeAreaView.js +42 -1
  254. package/dist/components/structure/Segment.js +51 -1
  255. package/dist/components/structure/TopBar.js +57 -1
  256. package/dist/components/structure/View.js +44 -1
  257. package/dist/components/structure/index.js +14 -1
  258. package/dist/components/structure/overlay/OverlayHandler.js +83 -1
  259. package/dist/components/structure/overlay/OverlayHandler.native.js +6 -1
  260. package/dist/components/structure/overlay/OverlayWrapper.js +52 -1
  261. package/dist/components/structure/overlay/calculatePosition.js +29 -1
  262. package/dist/components/structure/overlay/smartPlacement.js +32 -1
  263. package/dist/components/structure/popover/Popover.js +135 -1
  264. package/dist/components/structure/popover/Popover.native.js +105 -1
  265. package/dist/components/structure/popover/PopoverContent.js +18 -1
  266. package/dist/components/structure/popover/Popover_BU.js +157 -1
  267. package/dist/components/table/DataTable.js +62 -1
  268. package/dist/components/table/Pagination.js +128 -1
  269. package/dist/components/table/Table.js +66 -1
  270. package/dist/components/table/TableCol.js +67 -1
  271. package/dist/components/table/TableHeader.js +69 -1
  272. package/dist/components/table/TableHeaderRow.js +31 -1
  273. package/dist/components/table/TableRow.js +30 -1
  274. package/dist/components/table/index.js +7 -1
  275. package/dist/components/tabs/ActiveTabContent.js +38 -1
  276. package/dist/components/tabs/TabsHandler.js +16 -1
  277. package/dist/components/tabs/TabsMenu.js +15 -1
  278. package/dist/components/tabs/index.js +3 -1
  279. package/dist/components/text/DateText.js +24 -1
  280. package/dist/components/text/Text.js +32 -1
  281. package/dist/components/text/VerticalText.js +29 -1
  282. package/dist/components/text/index.js +3 -1
  283. package/dist/components/theme/ThemePicker.js +48 -1
  284. package/dist/components/theme/ThemePickerDrawer.js +12 -1
  285. package/dist/components/theme/ThemeStatusBar.js +3 -1
  286. package/dist/components/theme/ThemeStatusBar.native.js +9 -1
  287. package/dist/components/theme/ThemeThumb.js +98 -1
  288. package/dist/components/theme/index.js +3 -1
  289. package/dist/helpers/debounce.js +9 -1
  290. package/dist/helpers/index.js +5 -1
  291. package/dist/helpers/options.js +65 -1
  292. package/dist/helpers/random.js +5 -1
  293. package/dist/helpers/storage.js +76 -1
  294. package/dist/helpers/string.js +74 -1
  295. package/dist/i18n/I18n.js +96 -1
  296. package/dist/i18n/I18nProvider.js +40 -1
  297. package/dist/i18n/index.js +2 -1
  298. package/dist/index.js +8 -1
  299. package/dist/modifiers/_helpers.js +6 -1
  300. package/dist/modifiers/alignConverter.js +11 -1
  301. package/dist/modifiers/animation.js +18 -1
  302. package/dist/modifiers/animations/animatedEffects.js +64 -1
  303. package/dist/modifiers/animations/animatedEffects.native.js +55 -1
  304. package/dist/modifiers/animations/animatedEffects.web.js +55 -1
  305. package/dist/modifiers/animations/fadeEffect.js +46 -1
  306. package/dist/modifiers/animations/fadeEffect.native.js +33 -1
  307. package/dist/modifiers/animations/fadeEffect.web.js +3 -1
  308. package/dist/modifiers/animations/scaleEffect.js +46 -1
  309. package/dist/modifiers/animations/scaleEffect.native.js +33 -1
  310. package/dist/modifiers/animations/scrollEffect.web.js +3 -1
  311. package/dist/modifiers/animations/slideEffect.js +64 -1
  312. package/dist/modifiers/animations/slideEffect.native.js +53 -1
  313. package/dist/modifiers/animations/slideEffect.web.js +3 -1
  314. package/dist/modifiers/applyStyles.js +7 -1
  315. package/dist/modifiers/background.js +34 -1
  316. package/dist/modifiers/border.js +86 -1
  317. package/dist/modifiers/colorConverter.js +13 -1
  318. package/dist/modifiers/cursor.js +21 -1
  319. package/dist/modifiers/default.js +9 -1
  320. package/dist/modifiers/display.js +22 -1
  321. package/dist/modifiers/flex.js +20 -1
  322. package/dist/modifiers/flexWrapper.js +87 -1
  323. package/dist/modifiers/fullColor.js +32 -1
  324. package/dist/modifiers/grid.js +27 -1
  325. package/dist/modifiers/hover.js +28 -1
  326. package/dist/modifiers/logger.js +6 -1
  327. package/dist/modifiers/margin.js +25 -1
  328. package/dist/modifiers/overflow.js +28 -1
  329. package/dist/modifiers/padding.js +25 -1
  330. package/dist/modifiers/position.js +57 -1
  331. package/dist/modifiers/responsiveConverter.js +19 -1
  332. package/dist/modifiers/shadow.js +35 -1
  333. package/dist/modifiers/size.js +59 -1
  334. package/dist/modifiers/sizeConverter.js +12 -1
  335. package/dist/modifiers/state.js +33 -1
  336. package/dist/modifiers/text.js +62 -1
  337. package/dist/modifiers/textConverter.js +12 -1
  338. package/dist/modifiers/themeComponent.js +11 -1
  339. package/dist/responsive/ResponsiveHandler.js +28 -1
  340. package/dist/responsive/index.js +2 -1
  341. package/dist/responsive/responsiveHooks.js +67 -1
  342. package/dist/theme/ThemeHandler.js +81 -1
  343. package/dist/theme/default/base.js +95 -1
  344. package/dist/theme/default/blackTheme.js +47 -1
  345. package/dist/theme/default/cyberpunkTheme.js +36 -1
  346. package/dist/theme/default/darkTheme.js +35 -1
  347. package/dist/theme/default/hackerTheme.js +55 -1
  348. package/dist/theme/default/lightTheme.js +35 -1
  349. package/dist/theme/default/paperTheme.js +36 -1
  350. package/dist/theme/default/themes.js +15 -1
  351. package/dist/theme/format/colorsVariations.js +31 -1
  352. package/dist/theme/format/formatTheme.js +28 -1
  353. package/dist/theme/helpers/colorScale.js +12 -1
  354. package/dist/theme/helpers/contrastColor.js +18 -1
  355. package/dist/theme/helpers/dynamicColor.js +32 -1
  356. package/dist/theme/helpers/mergePreset.js +7 -1
  357. package/dist/theme/helpers/relatedScales.js +34 -1
  358. package/dist/theme/helpers/sizeScale.js +20 -1
  359. package/dist/theme/helpers/textScale.js +15 -1
  360. package/dist/theme/index.js +2 -1
  361. package/package.json +1 -3
  362. package/src/abstractions/Icon.js +1 -1
  363. package/src/abstractions/TextInput.js +10 -1
  364. package/src/components/actions/ActionsDrawer.js +1 -1
  365. package/src/components/actions/Button.js +3 -1
  366. package/src/components/actions/FloatingMenu.js +1 -1
  367. package/src/components/actions/menu/HorizontalMenu.js +2 -1
  368. package/src/components/actions/menu/VerticalMenu.js +2 -1
  369. package/src/components/filter/DateFilter.js +72 -0
  370. package/src/components/filter/FilterGroup.js +17 -0
  371. package/src/components/filter/FilterHandler.js +54 -0
  372. package/src/components/filter/FilterItem.js +30 -0
  373. package/src/components/filter/PopoverFilterItem.js +84 -0
  374. package/src/components/filter/SearchInput.js +49 -0
  375. package/src/components/filter/index.js +6 -0
  376. package/src/components/form/Form.js +9 -3
  377. package/src/components/form/FormItem.js +26 -1
  378. package/src/components/form/FormWrapperComponent.js +12 -3
  379. package/src/components/form/useNewForm.js +55 -4
  380. package/src/components/helpers/Separator.js +15 -11
  381. package/src/components/helpers/index.js +1 -0
  382. package/src/components/index.js +2 -0
  383. package/src/components/inputs/BooleanSelect.js +14 -0
  384. package/src/components/inputs/DateInput.js +3 -1
  385. package/src/components/inputs/DateRangeInput.js +41 -0
  386. package/src/components/inputs/Editable.js +129 -0
  387. package/src/components/inputs/EnabledSelect.js +14 -0
  388. package/src/components/inputs/InputWrapper.js +7 -4
  389. package/src/components/inputs/NumberInput.js +10 -5
  390. package/src/components/inputs/NumberRangeInput.js +41 -0
  391. package/src/components/inputs/PasswordInput.js +24 -0
  392. package/src/components/inputs/Picker.js +2 -2
  393. package/src/components/inputs/Select.js +61 -47
  394. package/src/components/inputs/TextArea.js +5 -0
  395. package/src/components/inputs/TextInput.js +14 -4
  396. package/src/components/inputs/UploadInput.js +140 -0
  397. package/src/components/inputs/index.js +9 -0
  398. package/src/components/inputs/upload/Upload.js +99 -0
  399. package/src/components/inputs/upload/Upload.native.js +154 -0
  400. package/src/components/inputs/upload/useUploadState.js +143 -0
  401. package/src/components/layout/LayoutHeader.js +1 -0
  402. package/src/components/presentation/AvatarLabel.js +1 -1
  403. package/src/components/presentation/AvatarsGroup.js +30 -0
  404. package/src/components/presentation/Badge.js +3 -2
  405. package/src/components/presentation/ContentLabel.js +1 -1
  406. package/src/components/presentation/IconLabel.js +1 -0
  407. package/src/components/presentation/Progress.js +20 -0
  408. package/src/components/presentation/index.js +2 -0
  409. package/src/components/sections/Section.js +1 -1
  410. package/src/components/sections/SectionItemLink.js +4 -2
  411. package/src/components/steps/ActiveStepContent.js +16 -0
  412. package/src/components/steps/StepsHandler.js +53 -0
  413. package/src/components/steps/StepsMenu.js +14 -0
  414. package/src/components/steps/StepsNavigation.js +37 -0
  415. package/src/components/steps/index.js +4 -0
  416. package/src/components/structure/Affix.js +34 -0
  417. package/src/components/structure/Affix.native.js +3 -0
  418. package/src/components/structure/Card.js +1 -0
  419. package/src/components/structure/TopBar.js +13 -1
  420. package/src/components/structure/index.js +1 -0
  421. package/src/components/structure/overlay/OverlayHandler.js +9 -1
  422. package/src/components/structure/popover/Popover.js +22 -5
  423. package/src/components/table/DataTable.js +7 -2
  424. package/src/components/table/Table.js +2 -1
  425. package/src/components/tabs/ActiveTabContent.js +4 -1
  426. package/src/components/text/DateText.js +15 -2
  427. package/src/modifiers/border.js +15 -9
  428. package/src/modifiers/size.js +8 -5
  429. package/src/theme/default/base.js +2 -0
  430. package/src/theme/default/hackerTheme.js +1 -10
  431. package/src/theme/default/paperTheme.js +1 -14
@@ -1 +1,35 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_LIGHT_THEME=mergeDeepRight(BASE_THEME,{label:'Light',colors:{primary:'#818DF9',text:'#272D34',text2:'#4A5159',text3:'#6E7680',text4:'#9AA1AC',mainBG:'#F4F5FE',overlayBG:'#FFFFFF',backdrop:'#383E44',shadow:'rgba(39, 45, 52, 0.15)',transparent:'rgba(255, 255, 255, 0)',divider:'#e0e0e0',blue:'#4DA3FF',yellow:'#FFD93B',green:'#4CAF50',purple:'#9B59B6',orange:'#FF7F50',cyan:'#00BCD4',red:'#E74C3C',navy:'#34495E',indigo:'#5C6BC0',gray:'#B0BEC5',brown:'#8D6E63',lylac:'#B39DDB',pink:'#F48FB1'}});
1
+ import { mergeDeepRight } from 'ramda';
2
+ import { BASE_THEME } from "./base";
3
+
4
+ export var DEFAULT_LIGHT_THEME = mergeDeepRight(BASE_THEME, {
5
+ label: 'Light',
6
+
7
+ colors: {
8
+ primary: '#818DF9',
9
+ text: '#272D34',
10
+ text2: '#4A5159',
11
+ text3: '#6E7680',
12
+ text4: '#9AA1AC',
13
+
14
+ mainBG: '#F4F5FE',
15
+ overlayBG: '#FFFFFF',
16
+ backdrop: '#383E44',
17
+ shadow: 'rgba(39, 45, 52, 0.15)',
18
+ transparent: 'rgba(255, 255, 255, 0)',
19
+ divider: '#e0e0e0',
20
+
21
+ blue: '#4DA3FF',
22
+ yellow: '#FFD93B',
23
+ green: '#4CAF50',
24
+ purple: '#9B59B6',
25
+ orange: '#FF7F50',
26
+ cyan: '#00BCD4',
27
+ red: '#E74C3C',
28
+ navy: '#34495E',
29
+ indigo: '#5C6BC0',
30
+ gray: '#B0BEC5',
31
+ brown: '#8D6E63',
32
+ lylac: '#B39DDB',
33
+ pink: '#F48FB1'
34
+ }
35
+ });
@@ -1 +1,36 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_PAPER_THEME=mergeDeepRight(BASE_THEME,{label:'Paper',colors:{primary:'#5A5A5A',text:'#000000',text2:'#333333',text3:'#555555',text4:'#777777',mainBG:'#F8F1E3',overlayBG:'#F8F1E3',backdrop:'#383E44',shadow:'rgba(0, 0, 0, 0.04)',divider:'#E3D9C9',blue:'#6B8EAE',yellow:'#EADCA6',green:'#88A288',purple:'#A391B8',orange:'#D9A066',cyan:'#9CC9C2',red:'#B85C5C',navy:'#4A4A4A',indigo:'#70788C',gray:'#B8B8B8',brown:'#8B7355',lylac:'#C7B7D4',pink:'#E4A1B2'},components:{Card:{border:true},Section:{border:true},TopBar:{borderB:true}}});
1
+ import { mergeDeepRight } from 'ramda';
2
+
3
+ import { BASE_THEME } from "./base";
4
+
5
+ export var DEFAULT_PAPER_THEME = mergeDeepRight(BASE_THEME, {
6
+ label: 'Paper',
7
+ useOverlayDivider: true,
8
+
9
+ colors: {
10
+ primary: '#5A5A5A',
11
+ text: '#000000',
12
+ text2: '#333333',
13
+ text3: '#555555',
14
+ text4: '#777777',
15
+
16
+ mainBG: '#F8F1E3',
17
+ overlayBG: '#F8F1E3',
18
+ backdrop: '#383E44',
19
+ shadow: 'rgba(0, 0, 0, 0.04)',
20
+ divider: '#E3D9C9',
21
+
22
+ blue: '#6B8EAE',
23
+ yellow: '#EADCA6',
24
+ green: '#88A288',
25
+ purple: '#A391B8',
26
+ orange: '#D9A066',
27
+ cyan: '#9CC9C2',
28
+ red: '#B85C5C',
29
+ navy: '#4A4A4A',
30
+ indigo: '#70788C',
31
+ gray: '#B8B8B8',
32
+ brown: '#8B7355',
33
+ lylac: '#C7B7D4',
34
+ pink: '#E4A1B2'
35
+ }
36
+ });
@@ -1 +1,15 @@
1
- import{CYBERPUNK_DARK_THEME}from"./cyberpunkTheme";import{DEFAULT_BLACK_THEME}from"./blackTheme";import{DEFAULT_DARK_THEME}from"./darkTheme";import{DEFAULT_LIGHT_THEME}from"./lightTheme";import{DEFAULT_MATRIX_THEME}from"./hackerTheme";import{DEFAULT_PAPER_THEME}from"./paperTheme";export var DEFAULT_THEMES={light:DEFAULT_LIGHT_THEME,dark:DEFAULT_DARK_THEME,paper:DEFAULT_PAPER_THEME,black:DEFAULT_BLACK_THEME,cyberpunk:CYBERPUNK_DARK_THEME,hacker:DEFAULT_MATRIX_THEME};
1
+ import { CYBERPUNK_DARK_THEME } from "./cyberpunkTheme";
2
+ import { DEFAULT_BLACK_THEME } from "./blackTheme";
3
+ import { DEFAULT_DARK_THEME } from "./darkTheme";
4
+ import { DEFAULT_LIGHT_THEME } from "./lightTheme";
5
+ import { DEFAULT_MATRIX_THEME } from "./hackerTheme";
6
+ import { DEFAULT_PAPER_THEME } from "./paperTheme";
7
+
8
+ export var DEFAULT_THEMES = {
9
+ light: DEFAULT_LIGHT_THEME,
10
+ dark: DEFAULT_DARK_THEME,
11
+ paper: DEFAULT_PAPER_THEME,
12
+ black: DEFAULT_BLACK_THEME,
13
+ cyberpunk: CYBERPUNK_DARK_THEME,
14
+ hacker: DEFAULT_MATRIX_THEME
15
+ };
@@ -1 +1,31 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import tinycolor from'tinycolor2';var variations=[10,20,30,40,50,60,70,80,90];export function generateColorVariants(colors){var isDark=tinycolor((colors==null?void 0:colors.overlayBG)||(colors==null?void 0:colors.bg)).isDark();var result={};Object.entries(colors).forEach(function(_ref){var _ref2=_slicedToArray(_ref,2),key=_ref2[0],value=_ref2[1];result[key]=value;variations.forEach(function(amount){if(amount<=40){var lightenSignal=!isDark?'-':'+';var darkenSignal=isDark?'-':'+';result[`${key}${lightenSignal}${amount}`]=tinycolor(value).lighten(amount).toString();result[`${key}${darkenSignal}${amount}`]=tinycolor(value).darken(amount).toString();}result[`${key}_op${amount}`]=tinycolor(value).setAlpha(amount/100).toString();});});return result;}export function applyColorVariantsOnTheme(theme){return Object.assign({},theme,{colors:generateColorVariants(theme.colors)});}
1
+ 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 tinycolor from 'tinycolor2';
2
+
3
+ var variations = [10, 20, 30, 40, 50, 60, 70, 80, 90];
4
+
5
+ export function generateColorVariants(colors) {
6
+ var isDark = tinycolor((colors == null ? void 0 : colors.overlayBG) || (colors == null ? void 0 : colors.bg)).isDark();
7
+ var result = {};
8
+
9
+ Object.entries(colors).forEach(function (_ref) {var _ref2 = _slicedToArray(_ref, 2),key = _ref2[0],value = _ref2[1];
10
+ result[key] = value;
11
+
12
+ variations.forEach(function (amount) {
13
+ if (amount <= 40) {
14
+ var lightenSignal = !isDark ? '-' : '+';
15
+ var darkenSignal = isDark ? '-' : '+';
16
+ result[`${key}${lightenSignal}${amount}`] = tinycolor(value).lighten(amount).toString();
17
+ result[`${key}${darkenSignal}${amount}`] = tinycolor(value).darken(amount).toString();
18
+ }
19
+
20
+ result[`${key}_op${amount}`] = tinycolor(value).
21
+ setAlpha(amount / 100).
22
+ toString();
23
+ });
24
+ });
25
+
26
+ return result;
27
+ }
28
+
29
+ export function applyColorVariantsOnTheme(theme) {
30
+ return Object.assign({}, theme, { colors: generateColorVariants(theme.colors) });
31
+ }
@@ -1 +1,28 @@
1
- import{mergeDeepRight,mergeDeepLeft,pipe}from'ramda';import React from'react';import tinycolor from'tinycolor2';import{DEFAULT_LIGHT_THEME}from"../default/lightTheme";import{DEFAULT_THEMES}from"../default/themes";import{applyColorVariantsOnTheme}from"./colorsVariations";export function useFormattedTheme(themes,key){themes=themes||DEFAULT_THEMES;return React.useMemo(function(){return formatTheme(themes,key);},[key]);}export function formatTheme(themes,key){var _formattedTheme$color,_formattedTheme$color2;themes=themes||DEFAULT_THEMES;var theme=themes[key]||DEFAULT_THEMES[key]||DEFAULT_LIGHT_THEME;var baseDefaultTheme=DEFAULT_THEMES[theme.base]||DEFAULT_THEMES[key]||DEFAULT_LIGHT_THEME;var formattedTheme=pipe(mergeDeepRight(baseDefaultTheme),applyColorVariantsOnTheme,mergeDeepLeft(themes._all||{}))(Object.assign({},theme));var isDark=tinycolor((formattedTheme==null?void 0:(_formattedTheme$color=formattedTheme.colors)==null?void 0:_formattedTheme$color.overlayBG)||(formattedTheme==null?void 0:(_formattedTheme$color2=formattedTheme.colors)==null?void 0:_formattedTheme$color2.bg)).isDark();return Object.assign({},formattedTheme,{isDark:isDark,isLight:!isDark});}
1
+ import { mergeDeepRight, mergeDeepLeft, pipe } from 'ramda';
2
+ import React from 'react';
3
+ import tinycolor from 'tinycolor2';
4
+
5
+ import { DEFAULT_LIGHT_THEME } from "../default/lightTheme";
6
+ import { DEFAULT_THEMES } from "../default/themes";
7
+ import { applyColorVariantsOnTheme } from "./colorsVariations";
8
+
9
+ export function useFormattedTheme(themes, key) {
10
+ themes = themes || DEFAULT_THEMES;
11
+ return React.useMemo(function () {return formatTheme(themes, key);}, [key]);
12
+ }
13
+
14
+ export function formatTheme(themes, key) {var _formattedTheme$color, _formattedTheme$color2;
15
+ themes = themes || DEFAULT_THEMES;
16
+ var theme = themes[key] || DEFAULT_THEMES[key] || DEFAULT_LIGHT_THEME;
17
+ var baseDefaultTheme = DEFAULT_THEMES[theme.base] || DEFAULT_THEMES[key] || DEFAULT_LIGHT_THEME;
18
+
19
+ var formattedTheme = pipe(
20
+ mergeDeepRight(baseDefaultTheme),
21
+ applyColorVariantsOnTheme,
22
+ mergeDeepLeft(themes._all || {})
23
+ )(Object.assign({}, theme));
24
+
25
+ var isDark = tinycolor((formattedTheme == null ? void 0 : (_formattedTheme$color = formattedTheme.colors) == null ? void 0 : _formattedTheme$color.overlayBG) || (formattedTheme == null ? void 0 : (_formattedTheme$color2 = formattedTheme.colors) == null ? void 0 : _formattedTheme$color2.bg)).isDark();
26
+
27
+ return Object.assign({}, formattedTheme, { isDark: isDark, isLight: !isDark });
28
+ }
@@ -1 +1,12 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["color"];import{omit,keys}from'ramda';import{DEFAULT_DARK_THEME}from"../default/darkTheme";var EXCLUDED_KEYS=['shadow','transparent'];var SCALE=keys(DEFAULT_DARK_THEME.colors).filter(function(k){return!EXCLUDED_KEYS.includes(k);});export function getColorFromProps(_ref,defaultValue){var color=_ref.color,props=_objectWithoutProperties(_ref,_excluded);if(!!color)return[color,props];color=SCALE.find(function(key){return!!props[key];})||defaultValue;return[color,omit(SCALE,props)];}
1
+ var _excluded = ["color"];function _objectWithoutProperties(e, t) {if (null == e) return {};var o,r,i = _objectWithoutPropertiesLoose(e, t);if (Object.getOwnPropertySymbols) {var n = Object.getOwnPropertySymbols(e);for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);}return i;}function _objectWithoutPropertiesLoose(r, e) {if (null == r) return {};var t = {};for (var n in r) if ({}.hasOwnProperty.call(r, n)) {if (-1 !== e.indexOf(n)) continue;t[n] = r[n];}return t;}import { omit, keys } from 'ramda';
2
+
3
+ import { DEFAULT_DARK_THEME } from "../default/darkTheme";
4
+
5
+ var EXCLUDED_KEYS = ['shadow', 'transparent'];
6
+ var SCALE = keys(DEFAULT_DARK_THEME.colors).filter(function (k) {return !EXCLUDED_KEYS.includes(k);});
7
+
8
+ export function getColorFromProps(_ref, defaultValue) {var color = _ref.color,props = _objectWithoutProperties(_ref, _excluded);
9
+ if (!!color) return [color, props];
10
+ color = SCALE.find(function (key) {return !!props[key];}) || defaultValue;
11
+ return [color, omit(SCALE, props)];
12
+ }
@@ -1 +1,18 @@
1
- import tinycolor from'tinycolor2';export function getContrastColor(bg){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:['#FFFFFF','#666666'];var tolerance=arguments.length>2&&arguments[2]!==undefined?arguments[2]:2.5;if(!options.length)return'#666666';var contrasts=options.map(function(color){return{color:color,contrast:tinycolor.readability(bg,color)};});contrasts.sort(function(a,b){return b.contrast-a.contrast;});if(contrasts.length>1&&Math.abs(contrasts[0].contrast-contrasts[1].contrast)<tolerance){return options[0];}return contrasts[0].color;}
1
+ import tinycolor from 'tinycolor2';
2
+
3
+ export function getContrastColor(bg) {var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['#FFFFFF', '#666666'];var tolerance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2.5;
4
+ if (!options.length) return '#666666';
5
+
6
+ var contrasts = options.map(function (color) {return {
7
+ color: color,
8
+ contrast: tinycolor.readability(bg, color)
9
+ };});
10
+
11
+ contrasts.sort(function (a, b) {return b.contrast - a.contrast;});
12
+
13
+ if (contrasts.length > 1 && Math.abs(contrasts[0].contrast - contrasts[1].contrast) < tolerance) {
14
+ return options[0];
15
+ }
16
+
17
+ return contrasts[0].color;
18
+ }
@@ -1 +1,32 @@
1
- import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";var BASE_COLORS=['text3','blue','yellow','green','purple','orange','cyan','red','navy','indigo','gray','brown','lylac','pink'];var COLORS=[].concat(BASE_COLORS,_toConsumableArray(BASE_COLORS.map(function(c){return`${c}+10`;})),_toConsumableArray(BASE_COLORS.map(function(c){return`${c}-10`;})));export function getDynamicColor(id){var num;if(typeof id==='number'){num=id;}else{num=String(id).split('').reduce(function(acc,char){return acc+char.charCodeAt(0);},0);}var index=num%COLORS.length;return COLORS[index];}
1
+ 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 _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 _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 _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;}var BASE_COLORS = [
2
+ 'text3',
3
+ 'blue',
4
+ 'yellow',
5
+ 'green',
6
+ 'purple',
7
+ 'orange',
8
+ 'cyan',
9
+ 'red',
10
+ 'navy',
11
+ 'indigo',
12
+ 'gray',
13
+ 'brown',
14
+ 'lylac',
15
+ 'pink'];
16
+
17
+
18
+ var COLORS = [].concat(BASE_COLORS, _toConsumableArray(BASE_COLORS.map(function (c) {return `${c}+10`;})), _toConsumableArray(BASE_COLORS.map(function (c) {return `${c}-10`;})));
19
+
20
+ export function getDynamicColor(id) {
21
+ var num;
22
+ if (typeof id === 'number') {
23
+ num = id;
24
+ } else {
25
+ num = String(id).
26
+ split('').
27
+ reduce(function (acc, char) {return acc + char.charCodeAt(0);}, 0);
28
+ }
29
+
30
+ var index = num % COLORS.length;
31
+ return COLORS[index];
32
+ }
@@ -1 +1,7 @@
1
- import{getThemeValue}from"./relatedScales";export function mergePreset(presets,key,props,defaultKey){if(!key)return props;var preset=getThemeValue(presets,key,false)||getThemeValue(presets,defaultKey,{});return Object.assign({},props,preset);}
1
+ import { getThemeValue } from "./relatedScales";
2
+
3
+ export function mergePreset(presets, key, props, defaultKey) {
4
+ if (!key) return props;
5
+ var preset = getThemeValue(presets, key, false) || getThemeValue(presets, defaultKey, {});
6
+ return Object.assign({}, props, preset);
7
+ }
@@ -1 +1,34 @@
1
- import{is}from'ramda';var SCALES=[['xxxs'],['xxs'],['xs'],['sm','small'],['md','p'],['lg','h6'],['xl','h5'],['xxl','h4'],['xxxl','h3']];export function getScaleSynonyms(key){return SCALES.find(function(list){return list.includes(key);})||[];}export function getThemeValue(group,key,defaultValue){defaultValue=defaultValue===undefined?key:defaultValue;if(!key)return defaultValue;var value=group[key];if(!!value||!is(String,key))return value||defaultValue;var synonyms=getScaleSynonyms(key);for(var synonym of synonyms){if(group!=null&&group[synonym]){value=group[synonym];break;}}return value||defaultValue;}
1
+ import { is } from 'ramda';
2
+
3
+ var SCALES = [
4
+ ['xxxs'],
5
+ ['xxs'],
6
+ ['xs'],
7
+ ['sm', 'small'],
8
+ ['md', 'p'],
9
+ ['lg', 'h6'],
10
+ ['xl', 'h5'],
11
+ ['xxl', 'h4'],
12
+ ['xxxl', 'h3']];
13
+
14
+
15
+ export function getScaleSynonyms(key) {
16
+ return SCALES.find(function (list) {return list.includes(key);}) || [];
17
+ }
18
+
19
+ export function getThemeValue(group, key, defaultValue) {
20
+ defaultValue = defaultValue === undefined ? key : defaultValue;
21
+ if (!key) return defaultValue;
22
+ var value = group[key];
23
+ if (!!value || !is(String, key)) return value || defaultValue;
24
+
25
+ var synonyms = getScaleSynonyms(key);
26
+ for (var synonym of synonyms) {
27
+ if (group != null && group[synonym]) {
28
+ value = group[synonym];
29
+ break;
30
+ }
31
+ }
32
+
33
+ return value || defaultValue;
34
+ }
@@ -1 +1,20 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size"];import{omit}from'ramda';var SCALE=['xxxs','xxs','xs','sm','md','lg','xl','xxl','xxxl'];export function moveScale(value){var unit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;var index=SCALE.indexOf(value);if(!index)return value;var movedIndex=index+unit;var movedValue=SCALE[index+unit];if(!movedValue){movedValue=unit>0?'xxxl':'xxxs';}return movedValue;}export function getSizeFromProps(_ref,defaultValue){var size=_ref.size,props=_objectWithoutProperties(_ref,_excluded);if(!!size)return[size,props];size=SCALE.find(function(key){return!!props[key];})||defaultValue;return[size,omit(SCALE,props)];}
1
+ var _excluded = ["size"];function _objectWithoutProperties(e, t) {if (null == e) return {};var o,r,i = _objectWithoutPropertiesLoose(e, t);if (Object.getOwnPropertySymbols) {var n = Object.getOwnPropertySymbols(e);for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);}return i;}function _objectWithoutPropertiesLoose(r, e) {if (null == r) return {};var t = {};for (var n in r) if ({}.hasOwnProperty.call(r, n)) {if (-1 !== e.indexOf(n)) continue;t[n] = r[n];}return t;}import { omit } from 'ramda';
2
+
3
+ var SCALE = ['xxxs', 'xxs', 'xs', 'sm', 'md', 'lg', 'xl', 'xxl', 'xxxl'];
4
+
5
+ export function moveScale(value) {var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
6
+ var index = SCALE.indexOf(value);
7
+ if (!index) return value;
8
+ var movedIndex = index + unit;
9
+ var movedValue = SCALE[index + unit];
10
+ if (!movedValue) {
11
+ movedValue = unit > 0 ? 'xxxl' : 'xxxs';
12
+ }
13
+ return movedValue;
14
+ }
15
+
16
+ export function getSizeFromProps(_ref, defaultValue) {var size = _ref.size,props = _objectWithoutProperties(_ref, _excluded);
17
+ if (!!size) return [size, props];
18
+ size = SCALE.find(function (key) {return !!props[key];}) || defaultValue;
19
+ return [size, omit(SCALE, props)];
20
+ }
@@ -1 +1,15 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size"];import{omit}from'ramda';var SCALE=['xxxs','xxs','xs','sm','p','h6','h5','h4','h3','h2','h1'];export function moveTextScale(value){var unit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;var index=SCALE.indexOf(value);if(!index)return value;return SCALE[index+unit]||value;}export function getTextFromProps(_ref,defaultValue){var size=_ref.size,props=_objectWithoutProperties(_ref,_excluded);if(!!size)return[size,props];size=SCALE.find(function(key){return!!props[key];})||defaultValue;return[size,omit(SCALE,props)];}
1
+ var _excluded = ["size"];function _objectWithoutProperties(e, t) {if (null == e) return {};var o,r,i = _objectWithoutPropertiesLoose(e, t);if (Object.getOwnPropertySymbols) {var n = Object.getOwnPropertySymbols(e);for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);}return i;}function _objectWithoutPropertiesLoose(r, e) {if (null == r) return {};var t = {};for (var n in r) if ({}.hasOwnProperty.call(r, n)) {if (-1 !== e.indexOf(n)) continue;t[n] = r[n];}return t;}import { omit } from 'ramda';
2
+
3
+ var SCALE = ['xxxs', 'xxs', 'xs', 'sm', 'p', 'h6', 'h5', 'h4', 'h3', 'h2', 'h1'];
4
+
5
+ export function moveTextScale(value) {var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
6
+ var index = SCALE.indexOf(value);
7
+ if (!index) return value;
8
+ return SCALE[index + unit] || value;
9
+ }
10
+
11
+ export function getTextFromProps(_ref, defaultValue) {var size = _ref.size,props = _objectWithoutProperties(_ref, _excluded);
12
+ if (!!size) return [size, props];
13
+ size = SCALE.find(function (key) {return !!props[key];}) || defaultValue;
14
+ return [size, omit(SCALE, props)];
15
+ }
@@ -1 +1,2 @@
1
- export*from"./ThemeHandler";export*from"./default/themes";
1
+ export * from "./ThemeHandler";
2
+ export * from "./default/themes";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neko-os/ui",
3
- "version": "0.2.3",
3
+ "version": "0.3.0",
4
4
  "author": "Christian Storch <ccstorch@gmail.com>",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -39,9 +39,7 @@
39
39
  }
40
40
  },
41
41
  "dependencies": {
42
- "dayjs": "1.11.18",
43
42
  "prop-types": "^15.8.1",
44
- "react-native-web": "^0.21.0",
45
43
  "tinycolor2": "^1.6.0"
46
44
  },
47
45
  "devDependencies": {
@@ -3,7 +3,7 @@ import * as Icons from '@remixicon/react'
3
3
  import { capitalizeFirstLetter, toCamelCase } from '../helpers/string'
4
4
 
5
5
  export function AbsIcon({ name, ...props }) {
6
- if (!!name && !name.startsWith('Ri')) name = 'Ri' + capitalizeFirstLetter(toCamelCase(name))
6
+ if (!!name && !name.startsWith?.('Ri')) name = 'Ri' + capitalizeFirstLetter(toCamelCase(name))
7
7
  const IconComponent = Icons[name] || Icons['RiCircleFill']
8
8
 
9
9
  return <IconComponent {...props} />
@@ -1,3 +1,12 @@
1
- export function AbsTextInput({ onChange, ...props }) {
1
+ export function AbsTextInput({ onChange, multiline, rows, ...props }) {
2
+ if (multiline) {
3
+ return (
4
+ <textarea
5
+ rows={rows}
6
+ onChange={(e) => onChange?.(e?.target?.value, e)}
7
+ {...props}
8
+ />
9
+ )
10
+ }
2
11
  return <input type="text" onChange={(e) => onChange?.(e?.target?.value, e)} {...props} />
3
12
  }
@@ -36,7 +36,7 @@ function Content({ items, title, subtitle, onClose, onChange, topBarProps, menuP
36
36
  <View flex>
37
37
  <DrawerScrollView>
38
38
  {!title && <View paddingT="md" />}
39
- <Section>
39
+ <Section marginH="md">
40
40
  <Menu items={items} onChange={handleChange} {...menuProps} />
41
41
  </Section>
42
42
  <View height={100} />
@@ -34,7 +34,9 @@ const DEFAULT_PROPS = ([{ sizeCode }]) => ({
34
34
  },
35
35
  })
36
36
 
37
- export function Button({ children, ...rootProps }) {
37
+ export function Button({ children, dashed, ...rootProps }) {
38
+ if (dashed) rootProps = { outline: true, ...rootProps, borderStyle: 'dashed' }
39
+
38
40
  const [{ loading, fontColor, sizeCode }, formattedProps] = pipe(
39
41
  useColorConverter('primary'),
40
42
  useSizeConverter('elementHeights', 'md'),
@@ -13,7 +13,7 @@ export function FloatingMenu({ fixed, onChange, items, activeIndex, size = 'md',
13
13
  WrapperView = WrapperView || View
14
14
 
15
15
  return (
16
- <View absolute={!fixed} fixed={fixed} left="md" right="md" centerH bottom={Math.max(insets.bottom, 16)}>
16
+ <View absolute={!fixed} fixed={fixed} left="md" right="md" centerH bottom={Math.max(insets.bottom / 2, 16)}>
17
17
  <WrapperView height={height} shadow round row paddingH="sm" bg={bg} {...props}>
18
18
  {items.map((item, index) => {
19
19
  const isActive = index === activeIndex
@@ -23,7 +23,7 @@ function Item({
23
23
  ...props
24
24
  }) {
25
25
  activeColor = activeColor || 'primary'
26
- let { active, key, ...childProps } = omit(['onClick', 'onPress'], item)
26
+ let { active, key, disabled, ...childProps } = omit(['onClick', 'onPress'], item)
27
27
  if (!active && activeIndex >= 0) active = activeIndex === index
28
28
  if (!active && activeKey !== undefined) active = activeKey === item.key
29
29
 
@@ -41,6 +41,7 @@ function Item({
41
41
  fullH
42
42
  center
43
43
  paddingH={linkPaddingH}
44
+ disabled={disabled}
44
45
  {...linkProps}
45
46
  onPress={() => handlePress(item, index)}
46
47
  >
@@ -30,7 +30,7 @@ function LinkItem({
30
30
  ...props
31
31
  }) {
32
32
  activeColor = activeColor || 'primary'
33
- let { active, key, ...childProps } = omit(['onClick', 'onPress'], item)
33
+ let { active, key, disabled, ...childProps } = omit(['onClick', 'onPress'], item)
34
34
  if (!active && activeIndex >= 0) active = activeIndex === index
35
35
  if (!active && activeKey !== undefined) active = activeKey === item.key
36
36
  const bg = active && tinycolor(color).setAlpha(0.03).toString()
@@ -49,6 +49,7 @@ function LinkItem({
49
49
  bg={bg}
50
50
  transition="border-color 0.5s ease, background 0.3s ease"
51
51
  hover={{ br: 0 }}
52
+ disabled={disabled}
52
53
  {...linkProps}
53
54
  onPress={() => handlePress(item, index)}
54
55
  >
@@ -0,0 +1,72 @@
1
+ import React from 'react'
2
+ import dayjs from 'dayjs'
3
+ import { is } from 'ramda'
4
+
5
+ import { DateInput } from '../inputs'
6
+ import { FilterItem } from './FilterItem'
7
+ import { useFilter } from './FilterHandler'
8
+
9
+ function getFormat(type) {
10
+ switch (type) {
11
+ case 'year':
12
+ return 'YYYY'
13
+ case 'quarter':
14
+ return 'YYYY [Q]Q'
15
+ case 'month':
16
+ return 'YYYY MMM'
17
+ case 'week':
18
+ return 'YYYY wo'
19
+ default:
20
+ return 'YYYY-MM-DD'
21
+ }
22
+ }
23
+
24
+ function formatValue(value, type) {
25
+ if (!value) return null
26
+ const date = dayjs(value)
27
+
28
+ switch (type) {
29
+ case 'year':
30
+ return [date.startOf('year'), date.endOf('year')]
31
+ case 'quarter':
32
+ return [date.startOf('quarter'), date.endOf('quarter')]
33
+ case 'month':
34
+ return [date.startOf('month'), date.endOf('month')]
35
+ case 'week':
36
+ return [date.startOf('isoWeek'), date.endOf('isoWeek')]
37
+ default:
38
+ return [date.startOf('day'), date.endOf('day')]
39
+ }
40
+ }
41
+
42
+ export function DateFilter({ name, label, type, format, useMapValue, ...rest }) {
43
+ const { filters, onChangeFilter } = useFilter()
44
+ let value = filters?.[name]
45
+ format = format || getFormat(type)
46
+
47
+ if (!!value?.init && !!value.end) {
48
+ value = value.init
49
+ }
50
+ if (is(Array, value) && value?.length === 2) {
51
+ value = value[0]
52
+ }
53
+
54
+ if (!!value && !!value.format) {
55
+ label = value.format(format)
56
+ }
57
+
58
+ const handleChange = (val) => {
59
+ let result = formatValue(val, type)
60
+ if (!!result?.length && !!useMapValue) {
61
+ const [init, end] = result
62
+ result = { init, end }
63
+ }
64
+ onChangeFilter(name, result)
65
+ }
66
+
67
+ return (
68
+ <FilterItem name={name}>
69
+ {({ value: _v }) => <DateInput value={value} onChange={handleChange} type={type} {...rest} />}
70
+ </FilterItem>
71
+ )
72
+ }
@@ -0,0 +1,17 @@
1
+ import React from 'react'
2
+
3
+ const FilterGroupContext = React.createContext(null)
4
+ const useGroupPath = () => React.useContext(FilterGroupContext)?.path || []
5
+
6
+ export function useFilterPath(name) {
7
+ const listPath = !!name ? (Array.isArray(name) ? name : [name]) : []
8
+ const parentPath = useGroupPath()
9
+ return [...parentPath, ...listPath]
10
+ }
11
+
12
+ export function FilterGroup({ name, children }) {
13
+ const path = useFilterPath(name)
14
+ const value = { path }
15
+
16
+ return <FilterGroupContext.Provider value={value}>{children}</FilterGroupContext.Provider>
17
+ }
@@ -0,0 +1,54 @@
1
+ import { assocPath, curry } from 'ramda'
2
+ import React from 'react'
3
+
4
+ const FilterContext = React.createContext()
5
+ export const useFilter = () => React.useContext(FilterContext) || {}
6
+
7
+ export function FilterHandler({
8
+ children,
9
+ initialFilters = {},
10
+ initialSearch,
11
+ initialSort,
12
+ onChange,
13
+ }) {
14
+ const [filters, setFilters] = React.useState(initialFilters)
15
+ const [search, setSearch] = React.useState(initialSearch)
16
+ const [sort, setSort] = React.useState(initialSort)
17
+
18
+ React.useEffect(() => {
19
+ onChange?.({ filters, search, sort })
20
+ }, [filters, search, sort])
21
+
22
+ const onChangeFilter = curry((name, value) => {
23
+ const listPath = Array.isArray(name) ? name : [name]
24
+ setFilters((prev) => assocPath(listPath, value, prev))
25
+ })
26
+ const onChangeSearch = setSearch
27
+ const onChangeSort = setSort
28
+
29
+ const onReset = () => {
30
+ setFilters(initialFilters)
31
+ setSearch(initialSearch)
32
+ setSort(initialSort)
33
+ }
34
+
35
+ const onClear = () => {
36
+ setFilters({})
37
+ setSearch(undefined)
38
+ setSort(undefined)
39
+ }
40
+
41
+ const value = {
42
+ filters,
43
+ setFilters,
44
+ onChangeFilter,
45
+ search,
46
+ onChangeSearch,
47
+ sort,
48
+ onChangeSort,
49
+ onReset,
50
+ onClear,
51
+ }
52
+
53
+ return <FilterContext.Provider value={value}>{children}</FilterContext.Provider>
54
+ }
@@ -0,0 +1,30 @@
1
+ import React from 'react'
2
+ import { path } from 'ramda'
3
+
4
+ import { clearProps } from '../../modifiers/_helpers'
5
+ import { useFilter } from './FilterHandler'
6
+ import { useFilterPath } from './FilterGroup'
7
+
8
+ export function FilterItem({ name, children }) {
9
+ const { filters, onChangeFilter } = useFilter()
10
+ const listPath = useFilterPath(name)
11
+
12
+ const value = path(listPath, filters)
13
+
14
+ const handleChange = (e) => {
15
+ const val = e?.target?.value ?? e
16
+ onChangeFilter(listPath, val)
17
+ }
18
+
19
+ const childProps = clearProps({
20
+ value: value === undefined ? '' : value,
21
+ onChange: handleChange,
22
+ })
23
+
24
+ if (typeof children === 'function') {
25
+ return children(childProps)
26
+ }
27
+
28
+ const child = React.Children.only(children)
29
+ return React.cloneElement(child, { ...child.props, ...childProps })
30
+ }