@neko-os/ui 0.0.13 → 0.2.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 (239) hide show
  1. package/dist/NekoUI.js +1 -1
  2. package/dist/abstractions/FlatList.native.js +1 -1
  3. package/dist/abstractions/KeyboardAvoidingView.js +1 -0
  4. package/dist/abstractions/KeyboardAvoidingView.native.js +1 -0
  5. package/dist/abstractions/ScrollView.native.js +1 -1
  6. package/dist/components/actions/ActionsDrawer.js +1 -0
  7. package/dist/components/actions/Button.js +1 -1
  8. package/dist/components/actions/FloatingMenu.js +1 -0
  9. package/dist/components/actions/index.js +1 -1
  10. package/dist/components/animations/AnimatedTopBar.js +1 -0
  11. package/dist/components/animations/AnimatedTopBar.native.js +1 -0
  12. package/dist/components/animations/AnimatedTopBar.web.js +1 -0
  13. package/dist/components/animations/ParallaxHeader.js +1 -0
  14. package/dist/components/animations/ParallaxHeader.native.js +1 -0
  15. package/dist/components/animations/ParallaxHeader.web.js +1 -0
  16. package/dist/components/animations/ReanimatedScrollHandler.js +1 -0
  17. package/dist/components/animations/ReanimatedScrollHandler.native.js +1 -0
  18. package/dist/components/animations/ReanimatedScrollHandler.web.js +1 -0
  19. package/dist/components/animations/index.js +1 -1
  20. package/dist/components/feedback/alerter.js +1 -1
  21. package/dist/components/feedback/confirmer.js +1 -1
  22. package/dist/components/form/FormItem.js +1 -1
  23. package/dist/components/form/FormList.js +1 -1
  24. package/dist/components/form/SubmitButton.js +1 -1
  25. package/dist/components/form/index.js +1 -1
  26. package/dist/components/form/useNewForm.js +1 -1
  27. package/dist/components/form/validation/defaultMessages.js +1 -0
  28. package/dist/components/form/validation/index.js +1 -0
  29. package/dist/components/form/validation/normalizeRules.js +1 -0
  30. package/dist/components/form/validation/shouldValidateOn.js +1 -0
  31. package/dist/components/form/validation/validateRules.js +1 -0
  32. package/dist/components/form/validation/validators.js +1 -0
  33. package/dist/components/index.js +1 -1
  34. package/dist/components/inputs/InputWrapper.js +1 -1
  35. package/dist/components/inputs/NumberInput.js +1 -1
  36. package/dist/components/inputs/Picker.js +1 -1
  37. package/dist/components/inputs/Select.js +1 -1
  38. package/dist/components/modals/bottomDrawer/index.js +1 -0
  39. package/dist/components/modals/bottomDrawer/index.native.js +1 -0
  40. package/dist/components/modals/bottomDrawer/index.web.js +1 -0
  41. package/dist/components/modals/bottomDrawer/native/BottomDrawer.js +1 -0
  42. package/dist/components/modals/bottomDrawer/native/DrawerContext.js +1 -0
  43. package/dist/components/modals/bottomDrawer/native/DrawerHandle.js +1 -0
  44. package/dist/components/modals/bottomDrawer/native/DrawerScrollView.js +1 -0
  45. package/dist/components/modals/bottomDrawer/native/createDrawerScrollComponent.js +1 -0
  46. package/dist/components/modals/bottomDrawer/web/BottomDrawer.js +1 -0
  47. package/dist/components/modals/drawer/Drawer.js +1 -0
  48. package/dist/components/modals/index.js +1 -0
  49. package/dist/components/modals/modal/Modal.js +1 -0
  50. package/dist/components/modals/modal/Modal.native.js +1 -0
  51. package/dist/components/modals/modal/ModalBackdrop.js +1 -0
  52. package/dist/components/modals/modal/ModalContent.js +1 -0
  53. package/dist/components/modals/modal/ModalFooter.js +1 -0
  54. package/dist/components/modals/modal/ModalHeader.js +1 -0
  55. package/dist/components/modals/modal/handler/ModalsHandler.js +1 -0
  56. package/dist/components/modals/router/ModalRoute.js +1 -0
  57. package/dist/components/modals/router/ModalsRouter.js +1 -0
  58. package/dist/components/modals/router/ModalsRouterContext.js +1 -0
  59. package/dist/components/modals/router/index.js +1 -0
  60. package/dist/components/modals/router/useAllModalsParams.js +1 -0
  61. package/dist/components/modals/router/useModalParams.js +1 -0
  62. package/dist/components/modals/router/useModalsNavigation.js +1 -0
  63. package/dist/components/modals/router/useUpdateModalContainer.js +1 -0
  64. package/dist/components/presentation/Avatar.js +1 -1
  65. package/dist/components/presentation/AvatarLabel.js +1 -1
  66. package/dist/components/presentation/LabelValue.js +1 -1
  67. package/dist/components/presentation/Result.js +1 -1
  68. package/dist/components/presentation/Tooltip.js +1 -1
  69. package/dist/components/sections/Section.js +1 -0
  70. package/dist/components/sections/SectionItem.js +1 -0
  71. package/dist/components/sections/SectionItemDropdown.js +1 -0
  72. package/dist/components/sections/SectionItemLink.js +1 -0
  73. package/dist/components/sections/index.js +1 -0
  74. package/dist/components/state/StatePresenter.js +1 -0
  75. package/dist/components/state/index.js +1 -1
  76. package/dist/components/structure/BlurView.js +1 -1
  77. package/dist/components/structure/KeyboardAvoidingView.js +1 -0
  78. package/dist/components/structure/TopBar.js +1 -0
  79. package/dist/components/structure/index.js +1 -1
  80. package/dist/components/structure/popover/Popover.js +1 -1
  81. package/dist/components/structure/popover/Popover.native.js +1 -1
  82. package/dist/components/structure/popover/Popover_BU.js +1 -1
  83. package/dist/components/text/DateText.js +1 -0
  84. package/dist/components/text/index.js +1 -1
  85. package/dist/components/theme/ThemePicker.js +1 -1
  86. package/dist/components/theme/ThemePickerDrawer.js +1 -1
  87. package/dist/helpers/index.js +1 -1
  88. package/dist/helpers/storage.js +1 -1
  89. package/dist/responsive/responsiveHooks.js +1 -1
  90. package/dist/theme/ThemeHandler.js +1 -1
  91. package/dist/theme/default/base.js +1 -1
  92. package/dist/theme/default/blackTheme.js +1 -1
  93. package/dist/theme/default/cyberpunkTheme.js +1 -1
  94. package/dist/theme/default/darkTheme.js +1 -1
  95. package/dist/theme/default/hackerTheme.js +1 -1
  96. package/dist/theme/default/lightTheme.js +1 -1
  97. package/dist/theme/default/paperTheme.js +1 -1
  98. package/dist/theme/default/themes.js +1 -1
  99. package/package.json +1 -1
  100. package/src/NekoUI.js +1 -1
  101. package/src/abstractions/FlatList.native.js +2 -1
  102. package/src/abstractions/KeyboardAvoidingView.js +3 -0
  103. package/src/abstractions/KeyboardAvoidingView.native.js +3 -0
  104. package/src/abstractions/ScrollView.native.js +2 -2
  105. package/src/components/actions/ActionsDrawer.js +68 -0
  106. package/src/components/actions/Button.js +2 -1
  107. package/src/components/actions/FloatingMenu.js +39 -0
  108. package/src/components/actions/index.js +2 -0
  109. package/src/components/animations/AnimatedTopBar.js +10 -0
  110. package/src/components/animations/AnimatedTopBar.native.js +34 -0
  111. package/src/components/animations/AnimatedTopBar.web.js +1 -0
  112. package/src/components/animations/ParallaxHeader.js +9 -0
  113. package/src/components/animations/ParallaxHeader.native.js +32 -0
  114. package/src/components/animations/ParallaxHeader.web.js +32 -0
  115. package/src/components/animations/ReanimatedScrollHandler.js +8 -0
  116. package/src/components/animations/ReanimatedScrollHandler.native.js +24 -0
  117. package/src/components/animations/ReanimatedScrollHandler.web.js +1 -0
  118. package/src/components/animations/index.js +3 -0
  119. package/src/components/feedback/alerter.js +1 -1
  120. package/src/components/feedback/confirmer.js +1 -1
  121. package/src/components/form/FormItem.js +42 -5
  122. package/src/components/form/FormList.js +23 -4
  123. package/src/components/form/SubmitButton.js +4 -2
  124. package/src/components/form/index.js +1 -0
  125. package/src/components/form/useNewForm.js +108 -15
  126. package/src/components/form/validation/defaultMessages.js +20 -0
  127. package/src/components/form/validation/index.js +5 -0
  128. package/src/components/form/validation/normalizeRules.js +22 -0
  129. package/src/components/form/validation/shouldValidateOn.js +21 -0
  130. package/src/components/form/validation/validateRules.js +83 -0
  131. package/src/components/form/validation/validators.js +82 -0
  132. package/src/components/index.js +2 -0
  133. package/src/components/inputs/InputWrapper.js +1 -1
  134. package/src/components/inputs/NumberInput.js +6 -5
  135. package/src/components/inputs/Picker.js +3 -2
  136. package/src/components/inputs/Select.js +31 -15
  137. package/src/components/modals/bottomDrawer/index.js +3 -0
  138. package/src/components/{structure → modals}/bottomDrawer/index.native.js +2 -1
  139. package/src/components/{structure → modals}/bottomDrawer/index.web.js +2 -1
  140. package/src/components/{structure → modals}/bottomDrawer/native/BottomDrawer.js +15 -21
  141. package/src/components/{structure → modals}/bottomDrawer/native/DrawerHandle.js +1 -1
  142. package/src/components/modals/bottomDrawer/native/DrawerScrollView.js +5 -0
  143. package/src/components/modals/bottomDrawer/native/createDrawerScrollComponent.js +131 -0
  144. package/src/components/modals/index.js +4 -0
  145. package/src/components/{structure → modals}/modal/Modal.native.js +1 -1
  146. package/src/components/{structure → modals}/modal/ModalBackdrop.js +1 -1
  147. package/src/components/{structure → modals}/modal/ModalContent.js +1 -1
  148. package/src/components/{structure → modals}/modal/ModalFooter.js +1 -1
  149. package/src/components/{structure → modals}/modal/ModalHeader.js +1 -1
  150. package/src/components/modals/router/ModalRoute.js +15 -0
  151. package/src/components/modals/router/ModalsRouter.js +120 -0
  152. package/src/components/modals/router/ModalsRouterContext.js +16 -0
  153. package/src/components/modals/router/index.js +6 -0
  154. package/src/components/modals/router/useAllModalsParams.js +6 -0
  155. package/src/components/modals/router/useModalParams.js +6 -0
  156. package/src/components/modals/router/useModalsNavigation.js +6 -0
  157. package/src/components/modals/router/useUpdateModalContainer.js +6 -0
  158. package/src/components/presentation/Avatar.js +2 -2
  159. package/src/components/presentation/AvatarLabel.js +2 -0
  160. package/src/components/presentation/LabelValue.js +7 -5
  161. package/src/components/presentation/Result.js +2 -2
  162. package/src/components/presentation/Tooltip.js +1 -1
  163. package/src/components/sections/Section.js +50 -0
  164. package/src/components/sections/SectionItem.js +24 -0
  165. package/src/components/sections/SectionItemDropdown.js +68 -0
  166. package/src/components/sections/SectionItemLink.js +33 -0
  167. package/src/components/sections/index.js +4 -0
  168. package/src/components/state/StatePresenter.js +41 -0
  169. package/src/components/state/index.js +1 -0
  170. package/src/components/structure/BlurView.js +1 -0
  171. package/src/components/structure/KeyboardAvoidingView.js +52 -0
  172. package/src/components/structure/TopBar.js +45 -0
  173. package/src/components/structure/index.js +2 -3
  174. package/src/components/structure/popover/Popover.js +1 -1
  175. package/src/components/structure/popover/Popover.native.js +1 -1
  176. package/src/components/structure/popover/Popover_BU.js +1 -1
  177. package/src/components/text/DateText.js +11 -0
  178. package/src/components/text/index.js +1 -0
  179. package/src/components/theme/ThemePicker.js +1 -2
  180. package/src/components/theme/ThemePickerDrawer.js +3 -4
  181. package/src/helpers/index.js +1 -0
  182. package/src/helpers/storage.js +32 -9
  183. package/src/responsive/responsiveHooks.js +6 -0
  184. package/src/theme/ThemeHandler.js +6 -3
  185. package/src/theme/default/base.js +16 -4
  186. package/src/theme/default/blackTheme.js +33 -21
  187. package/src/theme/default/cyberpunkTheme.js +24 -22
  188. package/src/theme/default/darkTheme.js +1 -0
  189. package/src/theme/default/hackerTheme.js +40 -19
  190. package/src/theme/default/lightTheme.js +1 -0
  191. package/src/theme/default/paperTheme.js +14 -0
  192. package/src/theme/default/themes.js +0 -9
  193. package/dist/components/structure/bottomDrawer/index.js +0 -1
  194. package/dist/components/structure/bottomDrawer/index.native.js +0 -1
  195. package/dist/components/structure/bottomDrawer/index.web.js +0 -1
  196. package/dist/components/structure/bottomDrawer/native/BottomDrawer.js +0 -1
  197. package/dist/components/structure/bottomDrawer/native/DrawerContext.js +0 -1
  198. package/dist/components/structure/bottomDrawer/native/DrawerHandle.js +0 -1
  199. package/dist/components/structure/bottomDrawer/native/DrawerScrollView.js +0 -1
  200. package/dist/components/structure/bottomDrawer/web/BottomDrawer.js +0 -1
  201. package/dist/components/structure/drawer/Drawer.js +0 -1
  202. package/dist/components/structure/modal/Modal.js +0 -1
  203. package/dist/components/structure/modal/Modal.native.js +0 -1
  204. package/dist/components/structure/modal/ModalBackdrop.js +0 -1
  205. package/dist/components/structure/modal/ModalContent.js +0 -1
  206. package/dist/components/structure/modal/ModalFooter.js +0 -1
  207. package/dist/components/structure/modal/ModalHeader.js +0 -1
  208. package/dist/components/structure/modal/handler/ModalsHandler.js +0 -1
  209. package/dist/theme/default/deepWoodsTheme.js +0 -1
  210. package/dist/theme/default/forestTheme.js +0 -1
  211. package/dist/theme/default/midnightTheme.js +0 -1
  212. package/dist/theme/default/msdosTheme.js +0 -1
  213. package/dist/theme/default/oceanTheme.js +0 -1
  214. package/dist/theme/default/pastelTheme.js +0 -1
  215. package/dist/theme/default/sunsetTheme.js +0 -1
  216. package/src/components/structure/bottomDrawer/index.js +0 -1
  217. package/src/components/structure/bottomDrawer/native/DrawerScrollView.js +0 -83
  218. package/src/theme/default/deepWoodsTheme.js +0 -34
  219. package/src/theme/default/forestTheme.js +0 -34
  220. package/src/theme/default/midnightTheme.js +0 -34
  221. package/src/theme/default/msdosTheme.js +0 -55
  222. package/src/theme/default/oceanTheme.js +0 -34
  223. package/src/theme/default/pastelTheme.js +0 -34
  224. package/src/theme/default/sunsetTheme.js +0 -35
  225. /package/dist/components/{structure → modals}/bottomDrawer/native/utils.js +0 -0
  226. /package/dist/components/{structure → modals}/drawer/Drawer.native.js +0 -0
  227. /package/dist/components/{structure → modals}/drawer/Drawer.web.js +0 -0
  228. /package/dist/components/{structure → modals}/drawer/index.js +0 -0
  229. /package/dist/components/{structure → modals}/modal/index.js +0 -0
  230. /package/src/components/{structure → modals}/bottomDrawer/native/DrawerContext.js +0 -0
  231. /package/src/components/{structure → modals}/bottomDrawer/native/utils.js +0 -0
  232. /package/src/components/{structure → modals}/bottomDrawer/web/BottomDrawer.js +0 -0
  233. /package/src/components/{structure → modals}/drawer/Drawer.js +0 -0
  234. /package/src/components/{structure → modals}/drawer/Drawer.native.js +0 -0
  235. /package/src/components/{structure → modals}/drawer/Drawer.web.js +0 -0
  236. /package/src/components/{structure → modals}/drawer/index.js +0 -0
  237. /package/src/components/{structure → modals}/modal/Modal.js +0 -0
  238. /package/src/components/{structure → modals}/modal/handler/ModalsHandler.js +0 -0
  239. /package/src/components/{structure → modals}/modal/index.js +0 -0
@@ -0,0 +1 @@
1
+ import{useModalRouteContext}from"./ModalsRouterContext";export function useUpdateModalContainer(){var _useModalRouteContext=useModalRouteContext(),updateContainer=_useModalRouteContext.updateContainer;return updateContainer;}
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/presentation/Avatar.js";var _excluded=["initials","name","icon","src","invert","textProps","iconProps"];import{pipe}from'ramda';import{AbsView}from"../../abstractions/View";import{IconLabel}from"./IconLabel";import{Image}from"./Image";import{getDynamicColor}from"../../theme/helpers/dynamicColor";import{getInitials}from"../../helpers";import{moveScale}from"../../theme/helpers/sizeScale";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useColorConverter}from"../../modifiers/colorConverter";import{useDefaultModifier}from"../../modifiers/default";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useFullColorModifier}from"../../modifiers/fullColor";import{useMarginModifier}from"../../modifiers/margin";import{useOverflowModifier}from"../../modifiers/overflow";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";import{useShadowModifier}from"../../modifiers/shadow";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useSizeModifier}from"../../modifiers/size";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";var DEFAULT_PROPS=function DEFAULT_PROPS(_ref){var _ref2=_slicedToArray(_ref,2),sizeCode=_ref2[0].sizeCode,_ref2$=_ref2[1],round=_ref2$.round,square=_ref2$.square,src=_ref2$.src,dynamicColor=_ref2$.dynamicColor,color=_ref2$.color;return{padding:!!src?undefined:1,height:sizeCode,width:sizeCode,ratio:1,br:!!square?moveScale(sizeCode,-2)||sizeCode:undefined,round:!square,center:true,border:!!src?undefined:1,overflow:'hidden',color:dynamicColor!==undefined?getDynamicColor(dynamicColor):color};};export function Avatar(rootProps){var _pipe=pipe(useSizeConverter('elementHeights','md'),useThemeComponentModifier('Avatar'),useDefaultModifier(DEFAULT_PROPS),useColorConverter('text3'),useFullColorModifier,useSizeModifier,usePositionModifier,useFlexWrapperModifier,useBackgroundModifier,usePaddingModifier,useMarginModifier,useBorderModifier,useShadowModifier,useOverflowModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],fontColor=_pipe2$.fontColor,sizeCode=_pipe2$.sizeCode,formattedProps=_pipe2[1];var initials=formattedProps.initials,name=formattedProps.name,icon=formattedProps.icon,src=formattedProps.src,invert=formattedProps.invert,textProps=formattedProps.textProps,iconProps=formattedProps.iconProps,props=_objectWithoutProperties(formattedProps,_excluded);initials=initials||getInitials(name);var content=_jsx(IconLabel,{center:true,color:fontColor,size:sizeCode,label:!icon&&initials,icon:icon,invert:invert,textProps:Object.assign({strong:true},textProps),iconProps:iconProps});if(!!src)content=_jsx(Image,{br:0,src:src,width:sizeCode,height:sizeCode});return _jsx(AbsView,Object.assign({className:"neko-avatar"},props,{children:content}));}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/presentation/Avatar.js";var _excluded=["initials","name","icon","src","invert","textProps","iconProps","iconSize"];import{pipe}from'ramda';import{AbsView}from"../../abstractions/View";import{IconLabel}from"./IconLabel";import{Image}from"./Image";import{getDynamicColor}from"../../theme/helpers/dynamicColor";import{getInitials}from"../../helpers";import{moveScale}from"../../theme/helpers/sizeScale";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useColorConverter}from"../../modifiers/colorConverter";import{useDefaultModifier}from"../../modifiers/default";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useFullColorModifier}from"../../modifiers/fullColor";import{useMarginModifier}from"../../modifiers/margin";import{useOverflowModifier}from"../../modifiers/overflow";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";import{useShadowModifier}from"../../modifiers/shadow";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useSizeModifier}from"../../modifiers/size";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";var DEFAULT_PROPS=function DEFAULT_PROPS(_ref){var _ref2=_slicedToArray(_ref,2),sizeCode=_ref2[0].sizeCode,_ref2$=_ref2[1],round=_ref2$.round,square=_ref2$.square,src=_ref2$.src,dynamicColor=_ref2$.dynamicColor,color=_ref2$.color;return{padding:!!src?undefined:1,height:sizeCode,width:sizeCode,ratio:1,br:!!square?moveScale(sizeCode,-2)||sizeCode:undefined,round:!square,center:true,border:!!src?undefined:1,overflow:'hidden',color:dynamicColor!==undefined?getDynamicColor(dynamicColor):color};};export function Avatar(rootProps){var _pipe=pipe(useSizeConverter('elementHeights','md'),useThemeComponentModifier('Avatar'),useDefaultModifier(DEFAULT_PROPS),useColorConverter('text3'),useFullColorModifier,useSizeModifier,usePositionModifier,useFlexWrapperModifier,useBackgroundModifier,usePaddingModifier,useMarginModifier,useBorderModifier,useShadowModifier,useOverflowModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],fontColor=_pipe2$.fontColor,sizeCode=_pipe2$.sizeCode,formattedProps=_pipe2[1];var initials=formattedProps.initials,name=formattedProps.name,icon=formattedProps.icon,src=formattedProps.src,invert=formattedProps.invert,textProps=formattedProps.textProps,iconProps=formattedProps.iconProps,iconSize=formattedProps.iconSize,props=_objectWithoutProperties(formattedProps,_excluded);initials=initials||getInitials(name);var content=_jsx(IconLabel,{center:true,color:fontColor,size:sizeCode,label:!icon&&initials,icon:icon,invert:invert,textProps:Object.assign({strong:true},textProps),iconProps:Object.assign({size:iconSize},iconProps)});if(!!src)content=_jsx(Image,{br:0,src:src,width:sizeCode,height:sizeCode});return _jsx(AbsView,Object.assign({className:"neko-avatar"},props,{children:content}));}
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/presentation/AvatarLabel.js";var _excluded=["icon","label","name","initials","src","avatarColor","square","dynamicColor","avatarProps","moveAvatarSizeScale","avatarSize"];import{pipe}from'ramda';import{Avatar}from"./Avatar";import{ContentLabel}from"./ContentLabel";import{moveScale}from"../../theme/helpers/sizeScale";import{useColorConverter}from"../../modifiers/colorConverter";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";export function AvatarLabel(rootProps){var _pipe=pipe(useColorConverter(),useSizeConverter('elementHeights','md'),useThemeComponentModifier('AvatarLabel'))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],sizeCode=_pipe2$.sizeCode,color=_pipe2$.color,formattedProps=_pipe2[1];var icon=formattedProps.icon,label=formattedProps.label,name=formattedProps.name,initials=formattedProps.initials,src=formattedProps.src,avatarColor=formattedProps.avatarColor,square=formattedProps.square,dynamicColor=formattedProps.dynamicColor,avatarProps=formattedProps.avatarProps,moveAvatarSizeScale=formattedProps.moveAvatarSizeScale,avatarSize=formattedProps.avatarSize,props=_objectWithoutProperties(formattedProps,_excluded);var hasAvatar=!!name||!!initials||!!src;return _jsx(ContentLabel,Object.assign({className:"neko-avatar-label",label:label||name,color:color,size:sizeCode,content:_jsx(Avatar,Object.assign({name:name||label,initials:initials,icon:icon,src:src,size:avatarSize||moveScale(sizeCode,moveAvatarSizeScale||-1),color:avatarColor||color,dynamicColor:dynamicColor,square:square,marginH:2},avatarProps))},props));}export var AvatarText=AvatarLabel;
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/presentation/AvatarLabel.js";var _excluded=["icon","label","name","initials","src","avatarColor","square","dynamicColor","avatarProps","moveAvatarSizeScale","avatarSize","iconSize"];import{pipe}from'ramda';import{Avatar}from"./Avatar";import{ContentLabel}from"./ContentLabel";import{moveScale}from"../../theme/helpers/sizeScale";import{useColorConverter}from"../../modifiers/colorConverter";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";export function AvatarLabel(rootProps){var _pipe=pipe(useColorConverter(),useSizeConverter('elementHeights','md'),useThemeComponentModifier('AvatarLabel'))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],sizeCode=_pipe2$.sizeCode,color=_pipe2$.color,formattedProps=_pipe2[1];var icon=formattedProps.icon,label=formattedProps.label,name=formattedProps.name,initials=formattedProps.initials,src=formattedProps.src,avatarColor=formattedProps.avatarColor,square=formattedProps.square,dynamicColor=formattedProps.dynamicColor,avatarProps=formattedProps.avatarProps,moveAvatarSizeScale=formattedProps.moveAvatarSizeScale,avatarSize=formattedProps.avatarSize,iconSize=formattedProps.iconSize,props=_objectWithoutProperties(formattedProps,_excluded);var hasAvatar=!!name||!!initials||!!src;return _jsx(ContentLabel,Object.assign({className:"neko-avatar-label",label:label||name,color:color,size:sizeCode,content:_jsx(Avatar,Object.assign({name:name||label,initials:initials,icon:icon,src:src,size:avatarSize||moveScale(sizeCode,moveAvatarSizeScale||-1),color:avatarColor||color,dynamicColor:dynamicColor,square:square,marginH:2,iconSize:iconSize},avatarProps))},props));}export var AvatarText=AvatarLabel;
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/presentation/LabelValue.js";var _excluded=["children"],_excluded2=["icon","label","iconColor","labelProps","value","valueProps","vertical","spread"];import{pipe,is}from'ramda';import{IconLabel}from"./IconLabel";import{Text}from"../text/Text";import{View}from"../structure/View";import{moveScale}from"../../theme/helpers/sizeScale";import{useDefaultModifier}from"../../modifiers/default";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var DEFAULT_PROPS=function DEFAULT_PROPS(_ref){var _ref2=_slicedToArray(_ref,2),sizeCode=_ref2[0].sizeCode,_ref2$=_ref2[1],vertical=_ref2$.vertical,spread=_ref2$.spread;return{row:!vertical,centerV:!vertical,justify:!!spread&&'space-between',gap:!vertical?moveScale(sizeCode,-1):0,labelProps:{size:moveScale(sizeCode,!vertical?0:-2),moveIconSizeScale:!vertical?-1:-2,color:'text3'},valueProps:{size:sizeCode,align:spread&&'right'}};};export function LabelValue(_ref3){var children=_ref3.children,rootProps=_objectWithoutProperties(_ref3,_excluded);var _pipe=pipe(useSizeConverter('elementHeights','md'),useThemeComponentModifier('Labelvalue'),useDefaultModifier(DEFAULT_PROPS))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],sizeCode=_pipe2$.sizeCode,color=_pipe2$.color,formattedProps=_pipe2[1];var icon=formattedProps.icon,label=formattedProps.label,iconColor=formattedProps.iconColor,labelProps=formattedProps.labelProps,value=formattedProps.value,valueProps=formattedProps.valueProps,vertical=formattedProps.vertical,spread=formattedProps.spread,props=_objectWithoutProperties(formattedProps,_excluded2);var separator=!vertical&&!spread?':':'';var content=children||value;if(is(String,value))content=_jsx(Text,Object.assign({label:value},valueProps));return _jsxs(View,Object.assign({className:"neko-label-value"},props,{children:[_jsx(IconLabel,Object.assign({label:label+separator,icon:icon,iconColor:iconColor},labelProps)),content]}));}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/presentation/LabelValue.js";var _excluded=["children"],_excluded2=["icon","label","iconColor","labelProps","value","valueColor","valueProps","vertical","spread"];import{pipe,is}from'ramda';import{IconLabel}from"./IconLabel";import{Text}from"../text/Text";import{View}from"../structure/View";import{moveScale}from"../../theme/helpers/sizeScale";import{useColorConverter}from"../../modifiers/colorConverter";import{useDefaultModifier}from"../../modifiers/default";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var DEFAULT_PROPS=function DEFAULT_PROPS(_ref){var _ref2=_slicedToArray(_ref,2),_ref2$=_ref2[0],sizeCode=_ref2$.sizeCode,color=_ref2$.color,_ref2$2=_ref2[1],vertical=_ref2$2.vertical,spread=_ref2$2.spread;return{row:!vertical,centerV:!vertical,justify:!!spread&&'space-between',gap:!vertical?moveScale(sizeCode,-1):0,labelProps:{size:moveScale(sizeCode,!vertical?0:-2),moveIconSizeScale:!vertical?-1:-2,color:color||'text3'},valueProps:{size:sizeCode,align:spread&&'right'}};};export function LabelValue(_ref3){var children=_ref3.children,rootProps=_objectWithoutProperties(_ref3,_excluded);var _pipe=pipe(useColorConverter(),useSizeConverter('elementHeights','md'),useThemeComponentModifier('Labelvalue'),useDefaultModifier(DEFAULT_PROPS))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],sizeCode=_pipe2$.sizeCode,color=_pipe2$.color,formattedProps=_pipe2[1];var icon=formattedProps.icon,label=formattedProps.label,iconColor=formattedProps.iconColor,labelProps=formattedProps.labelProps,value=formattedProps.value,valueColor=formattedProps.valueColor,valueProps=formattedProps.valueProps,vertical=formattedProps.vertical,spread=formattedProps.spread,props=_objectWithoutProperties(formattedProps,_excluded2);var separator=!vertical&&!spread?':':'';var content=children||value;if(is(String,value))content=_jsx(Text,Object.assign({label:value,color:valueColor||color},valueProps));return _jsxs(View,Object.assign({className:"neko-label-value"},props,{children:[_jsx(IconLabel,Object.assign({label:label+separator,icon:icon,iconColor:iconColor},labelProps)),content]}));}
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/presentation/Result.js";var _excluded=["type","icon","iconColor","title","description","footer","titleProps","descriptionProps","textProps","iconProps"];import{Divider}from"../helpers/Separator";import{Icon}from"./Icon";import{Text}from"../text/Text";import{View}from"../structure/View";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export var RESULT_TYPES={error:{icon:'close-circle-fill',color:'red'},success:{icon:'checkbox-circle-fill',color:'green'},warning:{icon:'error-warning-fill',color:'yellow'},info:{icon:'information-2-fill',color:'blue'}};export function Result(_ref){var type=_ref.type,icon=_ref.icon,iconColor=_ref.iconColor,title=_ref.title,description=_ref.description,footer=_ref.footer,titleProps=_ref.titleProps,descriptionProps=_ref.descriptionProps,textProps=_ref.textProps,iconProps=_ref.iconProps,props=_objectWithoutProperties(_ref,_excluded);var typeProps=RESULT_TYPES[type]||{};icon=icon||typeProps.icon;iconColor=iconColor||typeProps.color||'primary';return _jsxs(View,Object.assign({className:"neko-result",center:true,padding:"lg"},props,{children:[!!icon&&_jsx(Icon,Object.assign({name:icon,color:iconColor,size:42,primary:true},iconProps)),!!icon&&_jsx(Divider,{height:10}),_jsx(Text,Object.assign({h4:true},textProps,titleProps,{children:title})),!!description&&_jsx(Text,Object.assign({text3:true,sm:true,marginT:"sm"},textProps,descriptionProps,{children:description})),!!footer&&_jsx(View,{marginT:"lg",children:footer})]}));}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/presentation/Result.js";var _excluded=["type","icon","iconColor","title","description","footer","titleProps","descriptionProps","textProps","iconProps"];import{Divider}from"../helpers/Separator";import{Icon}from"./Icon";import{Text}from"../text/Text";import{View}from"../structure/View";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export var RESULT_TYPES={error:{icon:'close-circle-fill',color:'red'},success:{icon:'checkbox-circle-fill',color:'green'},warning:{icon:'error-warning-fill',color:'yellow'},info:{icon:'information-2-fill',color:'blue'}};export function Result(_ref){var type=_ref.type,icon=_ref.icon,iconColor=_ref.iconColor,title=_ref.title,description=_ref.description,footer=_ref.footer,titleProps=_ref.titleProps,descriptionProps=_ref.descriptionProps,textProps=_ref.textProps,iconProps=_ref.iconProps,props=_objectWithoutProperties(_ref,_excluded);var typeProps=RESULT_TYPES[type]||{};icon=icon||typeProps.icon;iconColor=iconColor||typeProps.color||'primary';return _jsxs(View,Object.assign({className:"neko-result",center:true,padding:"lg"},props,{children:[!!icon&&_jsx(Icon,Object.assign({name:icon,color:iconColor,size:42,primary:true},iconProps)),!!icon&&_jsx(Divider,{height:10}),_jsx(Text,Object.assign({h4:true,center:true},textProps,titleProps,{children:title})),!!description&&_jsx(Text,Object.assign({text3:true,sm:true,marginT:"sm",center:true},textProps,descriptionProps,{children:description})),!!footer&&_jsx(View,{marginT:"lg",children:footer})]}));}
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/presentation/Tooltip.js";var _excluded=["label","icon","textProps","iconProps","gap","invert","children"];import{pipe}from'ramda';import{IconLabel}from"./IconLabel";import{Popover}from"../structure/popover/Popover";import{useColorConverter}from"../../modifiers/colorConverter";import{useFullColorModifier}from"../../modifiers/fullColor";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";export function Tooltip(rootProps){var _pipe=pipe(useColorConverter('overlayBG'),useSizeConverter('text','md'),useThemeComponentModifier('Tooltip'),useFullColorModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],loading=_pipe2$.loading,fontColor=_pipe2$.fontColor,sizeCode=_pipe2$.sizeCode,formattedProps=_pipe2[1];var label=formattedProps.label,icon=formattedProps.icon,textProps=formattedProps.textProps,iconProps=formattedProps.iconProps,gap=formattedProps.gap,invert=formattedProps.invert,children=formattedProps.children,props=_objectWithoutProperties(formattedProps,_excluded);if(!label&&!icon)return children;return _jsx(Popover,Object.assign({className:"neko-tooltip",padding:"xs"},props,{content:_jsx(IconLabel,{center:true,color:fontColor,size:sizeCode,label:label,icon:icon,gap:gap,invert:invert,textProps:textProps,iconProps:iconProps,loading:loading}),children:children}));}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/presentation/Tooltip.js";var _excluded=["label","icon","textProps","iconProps","gap","invert","children"];import{pipe}from'ramda';import{IconLabel}from"./IconLabel";import{Popover}from"../structure/popover/Popover";import{useColorConverter}from"../../modifiers/colorConverter";import{useFullColorModifier}from"../../modifiers/fullColor";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";export function Tooltip(rootProps){var _pipe=pipe(useColorConverter('overlayBG'),useSizeConverter('text','sm'),useThemeComponentModifier('Tooltip'),useFullColorModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],loading=_pipe2$.loading,fontColor=_pipe2$.fontColor,sizeCode=_pipe2$.sizeCode,formattedProps=_pipe2[1];var label=formattedProps.label,icon=formattedProps.icon,textProps=formattedProps.textProps,iconProps=formattedProps.iconProps,gap=formattedProps.gap,invert=formattedProps.invert,children=formattedProps.children,props=_objectWithoutProperties(formattedProps,_excluded);if(!label&&!icon)return children;return _jsx(Popover,Object.assign({className:"neko-tooltip",padding:"xs"},props,{content:_jsx(IconLabel,{center:true,color:fontColor,size:sizeCode,label:label,icon:icon,gap:gap,invert:invert,textProps:textProps,iconProps:iconProps,loading:loading}),children:children}));}
@@ -0,0 +1 @@
1
+ import _objectDestructuringEmpty from"@babel/runtime/helpers/objectDestructuringEmpty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/sections/Section.js";var _excluded=["children","title"],_excluded2=["titleProps","dividerProps"];import{pipe}from'ramda';import React from'react';import{Divider}from"../helpers/Separator";import{Text}from"../text";import{View}from"../structure";import{useDefaultModifier}from"../../modifiers/default";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var DEFAULT_PROPS={marginH:'md',bg:'overlayBG',br:'md',titleProps:{strong:true,text4:true,sm:true,marginB:'sm',paddingH:'md'},dividerProps:{line:true,height:1}};export function Section(_ref){var _this=this;var children=_ref.children,title=_ref.title,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useThemeComponentModifier('Section'),useDefaultModifier(DEFAULT_PROPS))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2);_objectDestructuringEmpty(_pipe2[0]);var formattedProps=_pipe2[1];var titleProps=formattedProps.titleProps,dividerProps=formattedProps.dividerProps,props=_objectWithoutProperties(formattedProps,_excluded2);var childArray=React.Children.toArray(children);return _jsxs(View,{children:[!!title&&_jsx(Text,Object.assign({marginH:props.marginH},titleProps,{label:title})),_jsx(View,Object.assign({className:"neko-section"},props,{children:childArray.map(function(child,i){return _jsxs(React.Fragment,{children:[child,i<childArray.length-1&&_jsx(Divider,Object.assign({},dividerProps))]},child.key);})}))]});}
@@ -0,0 +1 @@
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectDestructuringEmpty from"@babel/runtime/helpers/objectDestructuringEmpty";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/sections/SectionItem.js";import{pipe}from'ramda';import{LabelValue}from"../presentation";import{useColorConverter}from"../../modifiers/colorConverter";import{useDefaultModifier}from"../../modifiers/default";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";var DEFAULT_PROPS={paddingH:'md',paddingV:'sm',minH:'md'};export function SectionItem(_ref){var rootProps=Object.assign({},(_objectDestructuringEmpty(_ref),_ref));var _pipe=pipe(useColorConverter(),useThemeComponentModifier('SectionItem'),useDefaultModifier(DEFAULT_PROPS))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),color=_pipe2[0].color,formattedProps=_pipe2[1];var props=Object.assign({},(_objectDestructuringEmpty(formattedProps),formattedProps));return _jsx(LabelValue,Object.assign({spread:true,className:"neko-section-item",color:color},props));}
@@ -0,0 +1 @@
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/sections/SectionItemDropdown.js";var _excluded=["children","value","valueLabel","items","onChange"],_excluded2=["icon","iconLabelProps","trigger","placement","popoverProps","useBottomDrawer"];import{pipe}from'ramda';import{IconLabel}from"../presentation";import{Link}from"../actions";import{Menu}from"../actions/menu/Menu";import{Popover}from"../structure/popover/Popover";import{ScrollView}from"../list";import{SectionItem}from"./SectionItem";import{useColorConverter}from"../../modifiers/colorConverter";import{useDefaultModifier}from"../../modifiers/default";import{useResponsiveValue}from"../../responsive";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";var DEFAULT_PROPS={paddingV:'sm',minH:'md',icon:'arrow-down-s-fill'};export function SectionItemDropdown(_ref){var _this=this;var children=_ref.children,value=_ref.value,valueLabel=_ref.valueLabel,items=_ref.items,onChange=_ref.onChange,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useColorConverter(),useThemeComponentModifier('SectionItemDropdown'),useDefaultModifier(DEFAULT_PROPS))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),color=_pipe2[0].color,formattedProps=_pipe2[1];var icon=formattedProps.icon,iconLabelProps=formattedProps.iconLabelProps,_formattedProps$trigg=formattedProps.trigger,trigger=_formattedProps$trigg===void 0?'click':_formattedProps$trigg,placement=formattedProps.placement,popoverProps=formattedProps.popoverProps,useBottomDrawer=formattedProps.useBottomDrawer,props=_objectWithoutProperties(formattedProps,_excluded2);useBottomDrawer=useResponsiveValue(useBottomDrawer||{native:true,sm:true,md:true});return _jsx(Popover,Object.assign({useParentMinWidth:true,placement:placement||'bottomRight',trigger:trigger,padding:0,contentProps:{padding:0},useBottomDrawer:useBottomDrawer},popoverProps,{renderContent:function renderContent(_ref2){var onClose=_ref2.onClose;var handleChange=function handleChange(){if(onChange)onChange.apply(void 0,arguments);onClose();};return _jsx(ScrollView,{children:_jsx(Menu,{vertical:true,items:items,onChange:handleChange,linkPaddingH:useBottomDrawer?'md':'sm',linkMinHeight:useBottomDrawer?'xl':'md',withDivider:useBottomDrawer})});},children:_jsx(Link,{className:"neko-section-item-dropdown",children:_jsx(SectionItem,Object.assign({color:color},props,{children:children||_jsx(IconLabel,Object.assign({gap:2,invert:true,color:color},iconLabelProps,{label:valueLabel||value,icon:icon}))}))})}));}
@@ -0,0 +1 @@
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/sections/SectionItemLink.js";var _excluded=["children","value","onPress"],_excluded2=["icon","iconLabelProps"];import{pipe}from'ramda';import{IconLabel}from"../presentation";import{Link}from"../actions";import{SectionItem}from"./SectionItem";import{useColorConverter}from"../../modifiers/colorConverter";import{useDefaultModifier}from"../../modifiers/default";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";var DEFAULT_PROPS={icon:'md',paddingV:'sm',minH:'md',icon:'arrow-right-s-line'};export function SectionItemLink(_ref){var children=_ref.children,value=_ref.value,onPress=_ref.onPress,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useColorConverter(),useThemeComponentModifier('SectionItemLink'),useDefaultModifier(DEFAULT_PROPS))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),color=_pipe2[0].color,formattedProps=_pipe2[1];var icon=formattedProps.icon,iconLabelProps=formattedProps.iconLabelProps,props=_objectWithoutProperties(formattedProps,_excluded2);return _jsx(Link,{className:"neko-section-item-link",onPress:onPress,children:_jsx(SectionItem,Object.assign({color:color},props,{children:children||_jsx(IconLabel,Object.assign({gap:2,invert:true,color:color},iconLabelProps,{label:value,icon:icon}))}))});}
@@ -0,0 +1 @@
1
+ export*from"./Section";export*from"./SectionItem";export*from"./SectionItemDropdown";export*from"./SectionItemLink";
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/state/StatePresenter.js";var _excluded=["loading","error","empty","errorTitle","errorDescription","emptyTitle","emptyDescription","children"];import{Loading}from"./Loading";import{Result}from"../presentation";import{View}from"../structure";import{jsx as _jsx}from"react/jsx-runtime";export function StatePresenter(_ref){var loading=_ref.loading,error=_ref.error,empty=_ref.empty,_ref$errorTitle=_ref.errorTitle,errorTitle=_ref$errorTitle===void 0?'Something went wrong':_ref$errorTitle,errorDescription=_ref.errorDescription,_ref$emptyTitle=_ref.emptyTitle,emptyTitle=_ref$emptyTitle===void 0?'No results':_ref$emptyTitle,emptyDescription=_ref.emptyDescription,children=_ref.children,props=_objectWithoutProperties(_ref,_excluded);if(loading){return _jsx(View,Object.assign({flex:true,center:true},props,{children:_jsx(Loading,{})}));}if(error){return _jsx(View,Object.assign({flex:true,center:true},props,{children:_jsx(Result,{type:"error",title:errorTitle,description:errorDescription||error.message})}));}if(empty){return _jsx(View,Object.assign({flex:true,center:true},props,{children:_jsx(Result,{type:"empty",title:emptyTitle,description:emptyDescription})}));}return children;}
@@ -1 +1 @@
1
- export*from"./Loading";export*from"./LoadingView";
1
+ export*from"./Loading";export*from"./LoadingView";export*from"./StatePresenter";
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _objectDestructuringEmpty from"@babel/runtime/helpers/objectDestructuringEmpty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/BlurView.js";var _excluded=["children"];import tinycolor from'tinycolor2';import{pipe}from'ramda';import{AbsBlurView}from"../../abstractions/BlurView";import{useAnimationModifier}from"../../modifiers/animation";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useColors}from"../../theme";import{useDefaultModifier}from"../../modifiers/default";import{useDisplayModifier}from"../../modifiers/display";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useMarginModifier}from"../../modifiers/margin";import{useOverflowModifier}from"../../modifiers/overflow";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";import{useShadowModifier}from"../../modifiers/shadow";import{useSizeModifier}from"../../modifiers/size";import{useStateModifier}from"../../modifiers/state";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";var DEFAULT_PROPS=function DEFAULT_PROPS(colors){return function(_ref){var _ref2=_slicedToArray(_ref,2);_objectDestructuringEmpty(_ref2[0]);_objectDestructuringEmpty(_ref2[1]);var isDark=tinycolor((colors==null?void 0:colors.overlayBG)||(colors==null?void 0:colors.bg)).isDark();return{tint:isDark?'dark':'light'};};};export function BlurView(_ref3){var children=_ref3.children,rootProps=_objectWithoutProperties(_ref3,_excluded);var colors=useColors();var _pipe=pipe(useThemeComponentModifier('BlurView'),useDefaultModifier(DEFAULT_PROPS(colors)),useFlexWrapperModifier,useDisplayModifier,useAnimationModifier,useStateModifier,useSizeModifier,usePositionModifier,useOverflowModifier,usePaddingModifier,useMarginModifier,useFlexModifier,useBackgroundModifier,useBorderModifier,useShadowModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2);_objectDestructuringEmpty(_pipe2[0]);var props=_pipe2[1];return _jsx(AbsBlurView,Object.assign({className:"neko-blur-view"},props,{children:children}));}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _objectDestructuringEmpty from"@babel/runtime/helpers/objectDestructuringEmpty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/BlurView.js";var _excluded=["children"];import tinycolor from'tinycolor2';import{pipe}from'ramda';import{AbsBlurView}from"../../abstractions/BlurView";import{useAnimationModifier}from"../../modifiers/animation";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useColors}from"../../theme";import{useDefaultModifier}from"../../modifiers/default";import{useDisplayModifier}from"../../modifiers/display";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useMarginModifier}from"../../modifiers/margin";import{useOverflowModifier}from"../../modifiers/overflow";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";import{useShadowModifier}from"../../modifiers/shadow";import{useSizeModifier}from"../../modifiers/size";import{useStateModifier}from"../../modifiers/state";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";var DEFAULT_PROPS=function DEFAULT_PROPS(colors){return function(_ref){var _ref2=_slicedToArray(_ref,2);_objectDestructuringEmpty(_ref2[0]);_objectDestructuringEmpty(_ref2[1]);var isDark=tinycolor((colors==null?void 0:colors.overlayBG)||(colors==null?void 0:colors.bg)).isDark();return{width:'auto',tint:isDark?'dark':'light'};};};export function BlurView(_ref3){var children=_ref3.children,rootProps=_objectWithoutProperties(_ref3,_excluded);var colors=useColors();var _pipe=pipe(useThemeComponentModifier('BlurView'),useDefaultModifier(DEFAULT_PROPS(colors)),useFlexWrapperModifier,useDisplayModifier,useAnimationModifier,useStateModifier,useSizeModifier,usePositionModifier,useOverflowModifier,usePaddingModifier,useMarginModifier,useFlexModifier,useBackgroundModifier,useBorderModifier,useShadowModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2);_objectDestructuringEmpty(_pipe2[0]);var props=_pipe2[1];return _jsx(AbsBlurView,Object.assign({className:"neko-blur-view"},props,{children:children}));}
@@ -0,0 +1 @@
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/structure/KeyboardAvoidingView.js";var _excluded=["children","keyboardVerticalOffset"];import{pipe}from'ramda';import{AbsKeyboardAvoidingView}from"../../abstractions/KeyboardAvoidingView";import{Platform}from"../../abstractions/Platform";import{useSafeAreaInsets}from"../../abstractions/helpers/useSafeAreaInsets";import{useAnimationModifier}from"../../modifiers/animation";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useCursorModifier}from"../../modifiers/cursor";import{useDisplayModifier}from"../../modifiers/display";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useMarginModifier}from"../../modifiers/margin";import{useOverflowModifier}from"../../modifiers/overflow";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";import{useShadowModifier}from"../../modifiers/shadow";import{useSizeModifier}from"../../modifiers/size";import{useStateModifier}from"../../modifiers/state";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";export function KeyboardAvoidingView(_ref){var children=_ref.children,_ref$keyboardVertical=_ref.keyboardVerticalOffset,keyboardVerticalOffset=_ref$keyboardVertical===void 0?0:_ref$keyboardVertical,rootProps=_objectWithoutProperties(_ref,_excluded);var _useSafeAreaInsets=useSafeAreaInsets(),bottom=_useSafeAreaInsets.bottom;var _pipe=pipe(useThemeComponentModifier('KeyboardAvoidingView'),useFlexWrapperModifier,useDisplayModifier,useCursorModifier,useAnimationModifier,useStateModifier,useSizeModifier,usePositionModifier,useOverflowModifier,usePaddingModifier,useMarginModifier,useFlexModifier,useBackgroundModifier,useBorderModifier,useShadowModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_=_pipe2[0],props=_pipe2[1];return _jsx(AbsKeyboardAvoidingView,Object.assign({behavior:Platform.OS==='ios'?'padding':'height',keyboardVerticalOffset:keyboardVerticalOffset+bottom},props,{children:children}));}
@@ -0,0 +1 @@
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/structure/TopBar.js";var _excluded=["right","left","WrapperView","children"];import{Text}from"../text";import{View}from"./View";import{useResponsiveConverter}from"../../modifiers/responsiveConverter";import{useSafeAreaInsets}from"../../abstractions/helpers/useSafeAreaInsets";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function TopBar(_ref){var right=_ref.right,left=_ref.left,WrapperView=_ref.WrapperView,children=_ref.children,rootProps=_objectWithoutProperties(_ref,_excluded);var _useSafeAreaInsets=useSafeAreaInsets(),safeTop=_useSafeAreaInsets.top;var _useResponsiveConvert=useResponsiveConverter([])([{},rootProps]),_useResponsiveConvert2=_slicedToArray(_useResponsiveConvert,2),_=_useResponsiveConvert2[0],props=_useResponsiveConvert2[1];var _props$useSafeArea=props.useSafeArea,useSafeArea=_props$useSafeArea===void 0?true:_props$useSafeArea,title=props.title,subtitle=props.subtitle;var hasContent=!!title||!!subtitle||!!children||!!right||!!left;WrapperView=WrapperView||View;return _jsx(WrapperView,Object.assign({paddingT:useSafeArea&&safeTop},props,{children:!!hasContent&&_jsxs(View,{minH:"md",centerV:true,row:true,paddingH:"md",paddingV:"sm",gap:"sm",fullW:true,children:[_jsx(View,{flex:1,toLeft:true,children:left}),_jsxs(View,{center:true,flex:3,children:[children||_jsx(Text,{center:true,h6:true,numberOfLines:1,children:title}),subtitle&&_jsx(Text,{center:true,xs:true,numberOfLines:1,children:subtitle})]}),_jsx(View,{flex:1,toRight:true,children:right})]})}));}
@@ -1 +1 @@
1
- export*from"./Accordion";export*from"./AccordionGroup";export*from"./View";export*from"./GradientView";export*from"./BlurView";export*from"./SafeAreaView";export*from"./Card";export*from"./Row";export*from"./Col";export*from"./modal";export*from"./drawer";export*from"./bottomDrawer";export*from"./popover/Popover";export*from"./Segment";
1
+ export*from"./Accordion";export*from"./AccordionGroup";export*from"./View";export*from"./GradientView";export*from"./BlurView";export*from"./SafeAreaView";export*from"./Card";export*from"./Row";export*from"./Col";export*from"./popover/Popover";export*from"./Segment";export*from"./TopBar";export*from"./KeyboardAvoidingView";
@@ -1 +1 @@
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/structure/popover/Popover.js";var _excluded=["renderContent","content","trigger","placement","unmountOnClose","children","parentWidth","parentMinWidth","useBottomDrawer","bottomDrawerProps","watch","disabled"],_excluded2=["children","content","renderContent","snapPoints"];import React from'react';import{BottomDrawer}from"../bottomDrawer";import{PopoverContent}from"./PopoverContent";import{useRegisterOverlay}from"../overlay/OverlayHandler";import{useResponsiveValue}from"../../../responsive";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";export function Popover(_ref){var _this=this;var renderContent=_ref.renderContent,content=_ref.content,_ref$trigger=_ref.trigger,trigger=_ref$trigger===void 0?'hover':_ref$trigger,_ref$placement=_ref.placement,placement=_ref$placement===void 0?'bottom':_ref$placement,unmountOnClose=_ref.unmountOnClose,children=_ref.children,parentWidth=_ref.parentWidth,parentMinWidth=_ref.parentMinWidth,_ref$useBottomDrawer=_ref.useBottomDrawer,useBottomDrawer=_ref$useBottomDrawer===void 0?{}:_ref$useBottomDrawer,_ref$bottomDrawerProp=_ref.bottomDrawerProps,bottomDrawerProps=_ref$bottomDrawerProp===void 0?{}:_ref$bottomDrawerProp,watch=_ref.watch,disabled=_ref.disabled,props=_objectWithoutProperties(_ref,_excluded);var shouldUseDrawer=useResponsiveValue(useBottomDrawer);var ref=React.useRef(null);var _useRegisterOverlay=useRegisterOverlay({unmountOnClose:unmountOnClose}),onOpen=_useRegisterOverlay.onOpen,onUpdate=_useRegisterOverlay.onUpdate,onClose=_useRegisterOverlay.onClose,onFastClose=_useRegisterOverlay.onFastClose,stopDelayedClosing=_useRegisterOverlay.stopDelayedClosing;var click=trigger==='click';var hover=trigger==='hover';var focus=trigger==='focus';renderContent=renderContent||function(){return content;};var buildContent=function buildContent(){var _ref$current,_ref$current$getBound,_ref$current2,_ref$current2$getBoun;return _jsx(PopoverContent,Object.assign({placement:placement,width:parentWidth?(_ref$current=ref.current)==null?void 0:(_ref$current$getBound=_ref$current.getBoundingClientRect())==null?void 0:_ref$current$getBound.width:undefined,minWidth:parentMinWidth?(_ref$current2=ref.current)==null?void 0:(_ref$current2$getBoun=_ref$current2.getBoundingClientRect())==null?void 0:_ref$current2$getBoun.width:undefined},props,{onMouseEnter:hover?stopDelayedClosing:undefined,onMouseLeave:hover?onClose:undefined,children:renderContent({onClose:onFastClose})}));};var computeTriggerRect=function computeTriggerRect(){var rect=ref.current.getBoundingClientRect();var scrollX=window.scrollX||window.pageXOffset;var scrollY=window.scrollY||window.pageYOffset;return{left:rect.left+scrollX,right:rect.right+scrollX,top:rect.top+scrollY,bottom:rect.bottom+scrollY,width:rect.width,height:rect.height};};var show=function show(e){if(e&&e.stopPropagation)e.stopPropagation();var triggerRect=computeTriggerRect();onOpen({content:buildContent(),triggerRect:triggerRect,placement:placement,options:{dismissOnClickOutside:click||focus}});};React.useEffect(function(){return function(){return onClose();};},[]);React.useEffect(function(){if(!ref.current||!watch)return;onUpdate({content:buildContent(),options:{dismissOnClickOutside:click||focus}});},watch);if(shouldUseDrawer){return _jsx(DrawerPopover,Object.assign({content:content,renderContent:renderContent,children:children},props,bottomDrawerProps));}var child=React.Children.only(children);var childProps={ref:ref,onClick:show};if(hover)childProps={ref:ref,onMouseEnter:show,onMouseLeave:onClose,disabled:disabled};if(focus)childProps={ref:ref,onFocus:show,disabled:disabled};return React.cloneElement(child,childProps);}function DrawerPopover(_ref2){var children=_ref2.children,content=_ref2.content,renderContent=_ref2.renderContent,snapPoints=_ref2.snapPoints,props=_objectWithoutProperties(_ref2,_excluded2);var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var onClose=function onClose(){return setOpen(false);};var child=React.Children.only(children);var childProps={onClick:function onClick(){return setOpen(true);}};return _jsxs(_Fragment,{children:[React.cloneElement(child,childProps),_jsx(BottomDrawer,Object.assign({open:open,onClose:onClose,snapPoints:snapPoints},props,{children:renderContent({onClose:onClose})}))]});}
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/structure/popover/Popover.js";var _excluded=["renderContent","content","trigger","placement","unmountOnClose","children","parentWidth","parentMinWidth","useBottomDrawer","bottomDrawerProps","watch","disabled"],_excluded2=["children","content","renderContent","snapPoints"];import React from'react';import{BottomDrawer}from"../../modals/bottomDrawer";import{PopoverContent}from"./PopoverContent";import{useRegisterOverlay}from"../overlay/OverlayHandler";import{useResponsiveValue}from"../../../responsive";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";export function Popover(_ref){var _this=this;var renderContent=_ref.renderContent,content=_ref.content,_ref$trigger=_ref.trigger,trigger=_ref$trigger===void 0?'hover':_ref$trigger,_ref$placement=_ref.placement,placement=_ref$placement===void 0?'bottom':_ref$placement,unmountOnClose=_ref.unmountOnClose,children=_ref.children,parentWidth=_ref.parentWidth,parentMinWidth=_ref.parentMinWidth,_ref$useBottomDrawer=_ref.useBottomDrawer,useBottomDrawer=_ref$useBottomDrawer===void 0?{}:_ref$useBottomDrawer,_ref$bottomDrawerProp=_ref.bottomDrawerProps,bottomDrawerProps=_ref$bottomDrawerProp===void 0?{}:_ref$bottomDrawerProp,watch=_ref.watch,disabled=_ref.disabled,props=_objectWithoutProperties(_ref,_excluded);var shouldUseDrawer=useResponsiveValue(useBottomDrawer);var ref=React.useRef(null);var _useRegisterOverlay=useRegisterOverlay({unmountOnClose:unmountOnClose}),onOpen=_useRegisterOverlay.onOpen,onUpdate=_useRegisterOverlay.onUpdate,onClose=_useRegisterOverlay.onClose,onFastClose=_useRegisterOverlay.onFastClose,stopDelayedClosing=_useRegisterOverlay.stopDelayedClosing;var click=trigger==='click';var hover=trigger==='hover';var focus=trigger==='focus';renderContent=renderContent||function(){return content;};var buildContent=function buildContent(){var _ref$current,_ref$current$getBound,_ref$current2,_ref$current2$getBoun;return _jsx(PopoverContent,Object.assign({placement:placement,width:parentWidth?(_ref$current=ref.current)==null?void 0:(_ref$current$getBound=_ref$current.getBoundingClientRect())==null?void 0:_ref$current$getBound.width:undefined,minWidth:parentMinWidth?(_ref$current2=ref.current)==null?void 0:(_ref$current2$getBoun=_ref$current2.getBoundingClientRect())==null?void 0:_ref$current2$getBoun.width:undefined},props,{onMouseEnter:hover?stopDelayedClosing:undefined,onMouseLeave:hover?onClose:undefined,children:renderContent({onClose:onFastClose})}));};var computeTriggerRect=function computeTriggerRect(){var rect=ref.current.getBoundingClientRect();var scrollX=window.scrollX||window.pageXOffset;var scrollY=window.scrollY||window.pageYOffset;return{left:rect.left+scrollX,right:rect.right+scrollX,top:rect.top+scrollY,bottom:rect.bottom+scrollY,width:rect.width,height:rect.height};};var show=function show(e){if(e&&e.stopPropagation)e.stopPropagation();var triggerRect=computeTriggerRect();onOpen({content:buildContent(),triggerRect:triggerRect,placement:placement,options:{dismissOnClickOutside:click||focus}});};React.useEffect(function(){return function(){return onClose();};},[]);React.useEffect(function(){if(!ref.current||!watch)return;onUpdate({content:buildContent(),options:{dismissOnClickOutside:click||focus}});},watch);if(shouldUseDrawer){return _jsx(DrawerPopover,Object.assign({content:content,renderContent:renderContent,children:children},props,bottomDrawerProps));}var child=React.Children.only(children);var childProps={ref:ref,onClick:show};if(hover)childProps={ref:ref,onMouseEnter:show,onMouseLeave:onClose,disabled:disabled};if(focus)childProps={ref:ref,onFocus:show,disabled:disabled};return React.cloneElement(child,childProps);}function DrawerPopover(_ref2){var children=_ref2.children,content=_ref2.content,renderContent=_ref2.renderContent,snapPoints=_ref2.snapPoints,props=_objectWithoutProperties(_ref2,_excluded2);var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var onClose=function onClose(){return setOpen(false);};var child=React.Children.only(children);var childProps={onClick:function onClick(){return setOpen(true);}};return _jsxs(_Fragment,{children:[React.cloneElement(child,childProps),_jsx(BottomDrawer,Object.assign({open:open,onClose:onClose,snapPoints:snapPoints},props,{children:renderContent({onClose:onClose})}))]});}
@@ -1 +1 @@
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/structure/popover/Popover.native.js";var _excluded=["content","renderContent","placement","children","useBottomDrawer","bottomDrawerProps","snapPoints"];import{Modal,TouchableWithoutFeedback}from"react-native-web";import React from'react';import{BottomDrawer}from"../bottomDrawer";import{PopoverContent}from"./PopoverContent";import{View}from"../View";import{calculatePosition}from"../overlay/calculatePosition";import{useResponsiveValue}from"../../../responsive";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";export function Popover(_ref){var _position$y,_position$x;var content=_ref.content,renderContent=_ref.renderContent,_ref$placement=_ref.placement,placement=_ref$placement===void 0?'bottom':_ref$placement,children=_ref.children,_ref$useBottomDrawer=_ref.useBottomDrawer,useBottomDrawer=_ref$useBottomDrawer===void 0?{}:_ref$useBottomDrawer,_ref$bottomDrawerProp=_ref.bottomDrawerProps,bottomDrawerProps=_ref$bottomDrawerProp===void 0?{}:_ref$bottomDrawerProp,snapPoints=_ref.snapPoints,props=_objectWithoutProperties(_ref,_excluded);var shouldUseDrawer=useResponsiveValue(useBottomDrawer);var ref=React.useRef(null);var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var _React$useState3=React.useState(null),_React$useState4=_slicedToArray(_React$useState3,2),triggerRect=_React$useState4[0],setTriggerRect=_React$useState4[1];var _React$useState5=React.useState(null),_React$useState6=_slicedToArray(_React$useState5,2),position=_React$useState6[0],setPosition=_React$useState6[1];renderContent=renderContent||function(){return content;};var onOpen=function onOpen(){if(shouldUseDrawer){setOpen(true);return;}if(ref.current){ref.current.measureInWindow(function(x,y,width,height){setTriggerRect({left:x,top:y,right:x+width,bottom:y+height,width:width,height:height});setOpen(true);});}};var onClose=function onClose(){setOpen(false);setTriggerRect(null);setPosition(null);};children=React.cloneElement(React.Children.only(children),{onPress:onOpen});if(shouldUseDrawer){return _jsxs(View,{ref:ref,children:[children,_jsx(BottomDrawer,Object.assign({open:open,onClose:onClose,snapPoints:snapPoints},bottomDrawerProps,{children:renderContent({onClose:onClose})}))]});}return _jsxs(_Fragment,{children:[_jsx(View,{ref:ref,children:children}),open&&_jsx(Modal,{transparent:true,visible:open,animationType:"fade",onRequestClose:onClose,children:_jsx(View,{fullW:true,flex:true,fullH:true,bg:"backdrop_op50",children:_jsx(TouchableWithoutFeedback,{onPress:onClose,children:_jsx(View,{style:{flex:1},children:triggerRect&&_jsx(View,{style:{position:'absolute',top:(_position$y=position==null?void 0:position.y)!=null?_position$y:-9999,left:(_position$x=position==null?void 0:position.x)!=null?_position$x:-9999},onLayout:function onLayout(e){var _e$nativeEvent$layout=e.nativeEvent.layout,width=_e$nativeEvent$layout.width,height=_e$nativeEvent$layout.height;var popoverRect={width:width,height:height};var pos=calculatePosition(triggerRect,popoverRect,placement,8);setPosition(pos);},children:_jsx(PopoverContent,Object.assign({placement:placement},props,{children:renderContent({onClose:onClose})}))})})})})})]});}
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/structure/popover/Popover.native.js";var _excluded=["content","renderContent","placement","children","useBottomDrawer","bottomDrawerProps","snapPoints"];import{Modal,TouchableWithoutFeedback}from"react-native-web";import React from'react';import{BottomDrawer}from"../../modals/bottomDrawer";import{PopoverContent}from"./PopoverContent";import{View}from"../View";import{calculatePosition}from"../overlay/calculatePosition";import{useResponsiveValue}from"../../../responsive";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";export function Popover(_ref){var _position$y,_position$x;var content=_ref.content,renderContent=_ref.renderContent,_ref$placement=_ref.placement,placement=_ref$placement===void 0?'bottom':_ref$placement,children=_ref.children,_ref$useBottomDrawer=_ref.useBottomDrawer,useBottomDrawer=_ref$useBottomDrawer===void 0?{}:_ref$useBottomDrawer,_ref$bottomDrawerProp=_ref.bottomDrawerProps,bottomDrawerProps=_ref$bottomDrawerProp===void 0?{}:_ref$bottomDrawerProp,snapPoints=_ref.snapPoints,props=_objectWithoutProperties(_ref,_excluded);var shouldUseDrawer=useResponsiveValue(useBottomDrawer);var ref=React.useRef(null);var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var _React$useState3=React.useState(null),_React$useState4=_slicedToArray(_React$useState3,2),triggerRect=_React$useState4[0],setTriggerRect=_React$useState4[1];var _React$useState5=React.useState(null),_React$useState6=_slicedToArray(_React$useState5,2),position=_React$useState6[0],setPosition=_React$useState6[1];renderContent=renderContent||function(){return content;};var onOpen=function onOpen(){if(shouldUseDrawer){setOpen(true);return;}if(ref.current){ref.current.measureInWindow(function(x,y,width,height){setTriggerRect({left:x,top:y,right:x+width,bottom:y+height,width:width,height:height});setOpen(true);});}};var onClose=function onClose(){setOpen(false);setTriggerRect(null);setPosition(null);};children=React.cloneElement(React.Children.only(children),{onPress:onOpen});if(shouldUseDrawer){return _jsxs(View,{ref:ref,children:[children,_jsx(BottomDrawer,Object.assign({open:open,onClose:onClose,snapPoints:snapPoints},bottomDrawerProps,{children:renderContent({onClose:onClose})}))]});}return _jsxs(_Fragment,{children:[_jsx(View,{ref:ref,children:children}),open&&_jsx(Modal,{transparent:true,visible:open,animationType:"fade",onRequestClose:onClose,children:_jsx(View,{fullW:true,flex:true,fullH:true,bg:"backdrop_op50",children:_jsx(TouchableWithoutFeedback,{onPress:onClose,children:_jsx(View,{style:{flex:1},children:triggerRect&&_jsx(View,{style:{position:'absolute',top:(_position$y=position==null?void 0:position.y)!=null?_position$y:-9999,left:(_position$x=position==null?void 0:position.x)!=null?_position$x:-9999},onLayout:function onLayout(e){var _e$nativeEvent$layout=e.nativeEvent.layout,width=_e$nativeEvent$layout.width,height=_e$nativeEvent$layout.height;var popoverRect={width:width,height:height};var pos=calculatePosition(triggerRect,popoverRect,placement,8);setPosition(pos);},children:_jsx(PopoverContent,Object.assign({placement:placement},props,{children:renderContent({onClose:onClose})}))})})})})})]});}
@@ -1 +1 @@
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/structure/popover/Popover_BU.js";var _excluded=["renderContent","content","trigger","placement","unmountOnClose","children","parentWidth","parentMinWidth","useBottomDrawer","bottomDrawerProps","watch"],_excluded2=["children","content","renderContent","snapPoints"];import React from'react';import{BottomDrawer}from"../bottomDrawer";import{PopoverContent}from"./PopoverContent";import{useRegisterOverlay}from"../overlay/OverlayHandler";import{useResponsiveValue}from"../../../responsive";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";export function Popover(_ref){var _this=this;var renderContent=_ref.renderContent,content=_ref.content,_ref$trigger=_ref.trigger,trigger=_ref$trigger===void 0?'hover':_ref$trigger,_ref$placement=_ref.placement,placement=_ref$placement===void 0?'bottom':_ref$placement,unmountOnClose=_ref.unmountOnClose,children=_ref.children,parentWidth=_ref.parentWidth,parentMinWidth=_ref.parentMinWidth,_ref$useBottomDrawer=_ref.useBottomDrawer,useBottomDrawer=_ref$useBottomDrawer===void 0?{}:_ref$useBottomDrawer,_ref$bottomDrawerProp=_ref.bottomDrawerProps,bottomDrawerProps=_ref$bottomDrawerProp===void 0?{}:_ref$bottomDrawerProp,watch=_ref.watch,props=_objectWithoutProperties(_ref,_excluded);var shouldUseDrawer=useResponsiveValue(useBottomDrawer);var ref=React.useRef(null);var _useRegisterOverlay=useRegisterOverlay({unmountOnClose:unmountOnClose}),onOpen=_useRegisterOverlay.onOpen,onUpdate=_useRegisterOverlay.onUpdate,onClose=_useRegisterOverlay.onClose,onFastClose=_useRegisterOverlay.onFastClose,stopDelayedClosing=_useRegisterOverlay.stopDelayedClosing;var click=trigger==='click';var hover=trigger==='hover';var focus=trigger==='focus';renderContent=renderContent||function(){return content;};var buildContent=function buildContent(){var _ref$current,_ref$current$getBound,_ref$current2,_ref$current2$getBoun;return _jsx(PopoverContent,Object.assign({placement:placement,width:parentWidth?(_ref$current=ref.current)==null?void 0:(_ref$current$getBound=_ref$current.getBoundingClientRect())==null?void 0:_ref$current$getBound.width:undefined,minWidth:parentMinWidth?(_ref$current2=ref.current)==null?void 0:(_ref$current2$getBoun=_ref$current2.getBoundingClientRect())==null?void 0:_ref$current2$getBoun.width:undefined},props,{onMouseEnter:hover?stopDelayedClosing:undefined,onMouseLeave:hover?onClose:undefined,children:renderContent({onClose:onFastClose})}));};var computeTriggerRect=function computeTriggerRect(){var rect=ref.current.getBoundingClientRect();var scrollX=window.scrollX||window.pageXOffset;var scrollY=window.scrollY||window.pageYOffset;return{left:rect.left+scrollX,right:rect.right+scrollX,top:rect.top+scrollY,bottom:rect.bottom+scrollY,width:rect.width,height:rect.height};};var show=function show(e){if(e&&e.stopPropagation)e.stopPropagation();var triggerRect=computeTriggerRect();onOpen({content:buildContent(),triggerRect:triggerRect,placement:placement,options:{dismissOnClickOutside:click||focus}});};React.useEffect(function(){return function(){return onClose();};},[]);React.useEffect(function(){if(!ref.current)return;var triggerRect=computeTriggerRect();onUpdate({content:buildContent(),triggerRect:triggerRect,placement:placement,options:{dismissOnClickOutside:click||focus}});},[watch,renderContent]);if(shouldUseDrawer){return _jsx(DrawerPopover,Object.assign({content:content,renderContent:renderContent,children:children},props,bottomDrawerProps));}var child=React.Children.only(children);var childProps={ref:ref,onClick:show};if(hover)childProps={ref:ref,onMouseEnter:show,onMouseLeave:onClose};if(focus)childProps={ref:ref,onFocus:show};return React.cloneElement(child,childProps);}function DrawerPopover(_ref2){var children=_ref2.children,content=_ref2.content,renderContent=_ref2.renderContent,snapPoints=_ref2.snapPoints,props=_objectWithoutProperties(_ref2,_excluded2);var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var onClose=function onClose(){return setOpen(false);};var child=React.Children.only(children);var childProps={onClick:function onClick(){return setOpen(true);}};return _jsxs(_Fragment,{children:[React.cloneElement(child,childProps),_jsx(BottomDrawer,Object.assign({open:open,onClose:onClose,snapPoints:snapPoints},props,{children:renderContent({onClose:onClose})}))]});}
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/structure/popover/Popover_BU.js";var _excluded=["renderContent","content","trigger","placement","unmountOnClose","children","parentWidth","parentMinWidth","useBottomDrawer","bottomDrawerProps","watch"],_excluded2=["children","content","renderContent","snapPoints"];import React from'react';import{BottomDrawer}from"../../modals/bottomDrawer";import{PopoverContent}from"./PopoverContent";import{useRegisterOverlay}from"../overlay/OverlayHandler";import{useResponsiveValue}from"../../../responsive";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";export function Popover(_ref){var _this=this;var renderContent=_ref.renderContent,content=_ref.content,_ref$trigger=_ref.trigger,trigger=_ref$trigger===void 0?'hover':_ref$trigger,_ref$placement=_ref.placement,placement=_ref$placement===void 0?'bottom':_ref$placement,unmountOnClose=_ref.unmountOnClose,children=_ref.children,parentWidth=_ref.parentWidth,parentMinWidth=_ref.parentMinWidth,_ref$useBottomDrawer=_ref.useBottomDrawer,useBottomDrawer=_ref$useBottomDrawer===void 0?{}:_ref$useBottomDrawer,_ref$bottomDrawerProp=_ref.bottomDrawerProps,bottomDrawerProps=_ref$bottomDrawerProp===void 0?{}:_ref$bottomDrawerProp,watch=_ref.watch,props=_objectWithoutProperties(_ref,_excluded);var shouldUseDrawer=useResponsiveValue(useBottomDrawer);var ref=React.useRef(null);var _useRegisterOverlay=useRegisterOverlay({unmountOnClose:unmountOnClose}),onOpen=_useRegisterOverlay.onOpen,onUpdate=_useRegisterOverlay.onUpdate,onClose=_useRegisterOverlay.onClose,onFastClose=_useRegisterOverlay.onFastClose,stopDelayedClosing=_useRegisterOverlay.stopDelayedClosing;var click=trigger==='click';var hover=trigger==='hover';var focus=trigger==='focus';renderContent=renderContent||function(){return content;};var buildContent=function buildContent(){var _ref$current,_ref$current$getBound,_ref$current2,_ref$current2$getBoun;return _jsx(PopoverContent,Object.assign({placement:placement,width:parentWidth?(_ref$current=ref.current)==null?void 0:(_ref$current$getBound=_ref$current.getBoundingClientRect())==null?void 0:_ref$current$getBound.width:undefined,minWidth:parentMinWidth?(_ref$current2=ref.current)==null?void 0:(_ref$current2$getBoun=_ref$current2.getBoundingClientRect())==null?void 0:_ref$current2$getBoun.width:undefined},props,{onMouseEnter:hover?stopDelayedClosing:undefined,onMouseLeave:hover?onClose:undefined,children:renderContent({onClose:onFastClose})}));};var computeTriggerRect=function computeTriggerRect(){var rect=ref.current.getBoundingClientRect();var scrollX=window.scrollX||window.pageXOffset;var scrollY=window.scrollY||window.pageYOffset;return{left:rect.left+scrollX,right:rect.right+scrollX,top:rect.top+scrollY,bottom:rect.bottom+scrollY,width:rect.width,height:rect.height};};var show=function show(e){if(e&&e.stopPropagation)e.stopPropagation();var triggerRect=computeTriggerRect();onOpen({content:buildContent(),triggerRect:triggerRect,placement:placement,options:{dismissOnClickOutside:click||focus}});};React.useEffect(function(){return function(){return onClose();};},[]);React.useEffect(function(){if(!ref.current)return;var triggerRect=computeTriggerRect();onUpdate({content:buildContent(),triggerRect:triggerRect,placement:placement,options:{dismissOnClickOutside:click||focus}});},[watch,renderContent]);if(shouldUseDrawer){return _jsx(DrawerPopover,Object.assign({content:content,renderContent:renderContent,children:children},props,bottomDrawerProps));}var child=React.Children.only(children);var childProps={ref:ref,onClick:show};if(hover)childProps={ref:ref,onMouseEnter:show,onMouseLeave:onClose};if(focus)childProps={ref:ref,onFocus:show};return React.cloneElement(child,childProps);}function DrawerPopover(_ref2){var children=_ref2.children,content=_ref2.content,renderContent=_ref2.renderContent,snapPoints=_ref2.snapPoints,props=_objectWithoutProperties(_ref2,_excluded2);var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var onClose=function onClose(){return setOpen(false);};var child=React.Children.only(children);var childProps={onClick:function onClick(){return setOpen(true);}};return _jsxs(_Fragment,{children:[React.cloneElement(child,childProps),_jsx(BottomDrawer,Object.assign({open:open,onClose:onClose,snapPoints:snapPoints},props,{children:renderContent({onClose:onClose})}))]});}
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/text/DateText.js";var _excluded=["format","value","children"];import{is}from'ramda';import dayjs from'dayjs';import{Text}from"../text";import{jsx as _jsx}from"react/jsx-runtime";export function DateText(_ref){var _ref$format=_ref.format,format=_ref$format===void 0?'DD MMM YYYY':_ref$format,value=_ref.value,children=_ref.children,props=_objectWithoutProperties(_ref,_excluded);value=is(String,children)?children:value;return _jsx(Text,Object.assign({},props,{children:dayjs(value).format(format)}));}
@@ -1 +1 @@
1
- export*from"./Text";export*from"./VerticalText";
1
+ export*from"./Text";export*from"./VerticalText";export*from"./DateText";
@@ -1 +1 @@
1
- var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/theme/ThemePicker.js";import{mapObjIndexed,mergeDeepRight,values,pipe,filter}from'ramda';import{DEFAULT_THEMES,useThemeHandler}from"../../theme";import{IconLabel}from"../presentation";import{Link}from"../actions";import{Picker}from"../inputs";import{ThemeThumb}from"./ThemeThumb";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function ThemePicker(_ref){var _this=this;var _onChange=_ref.onChange,onlyKeys=_ref.onlyKeys,hideKeys=_ref.hideKeys;var _useThemeHandler=useThemeHandler(),activeThemeKey=_useThemeHandler.activeThemeKey,setActiveThemeKey=_useThemeHandler.setActiveThemeKey,themes=_useThemeHandler.themes,onChangeTheme=_useThemeHandler.onChangeTheme;var options=pipe(mergeDeepRight(DEFAULT_THEMES),mapObjIndexed(function(obj,key){return Object.assign({},obj,{value:key,key:key});}),values,filter(function(item){if(item.value==='_all')return false;if(onlyKeys&&onlyKeys.includes(item.value))return true;if(hideKeys&&hideKeys.includes(item.value))return false;return true;}))(themes);return _jsx(Picker,{colSpan:12,gap:"lg",value:activeThemeKey,onChange:function onChange(key){setActiveThemeKey(key);onChangeTheme==null?void 0:onChangeTheme(key);_onChange==null?void 0:_onChange(key);},options:options,renderOption:function renderOption(_ref2){var option=_ref2.option,selected=_ref2.selected,onChange=_ref2.onChange;return _jsxs(Link,{onPress:onChange,gap:"xs",children:[_jsx(ThemeThumb,{value:option.value}),_jsx(IconLabel,{center:true,label:option.label,icon:selected&&'checkbox-circle-fill',color:selected?'primary':'text3',strong:true})]});}});}
1
+ var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/theme/ThemePicker.js";import{mapObjIndexed,mergeDeepRight,values,pipe,filter}from'ramda';import{DEFAULT_THEMES,useThemeHandler}from"../../theme";import{IconLabel}from"../presentation";import{Link}from"../actions";import{Picker}from"../inputs";import{ThemeThumb}from"./ThemeThumb";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function ThemePicker(_ref){var _this=this;var _onChange=_ref.onChange,onlyKeys=_ref.onlyKeys,hideKeys=_ref.hideKeys;var _useThemeHandler=useThemeHandler(),activeThemeKey=_useThemeHandler.activeThemeKey,themes=_useThemeHandler.themes,onChangeTheme=_useThemeHandler.onChangeTheme;var options=pipe(mergeDeepRight(DEFAULT_THEMES),mapObjIndexed(function(obj,key){return Object.assign({},obj,{value:key,key:key});}),values,filter(function(item){if(item.value==='_all')return false;if(onlyKeys&&onlyKeys.includes(item.value))return true;if(hideKeys&&hideKeys.includes(item.value))return false;return true;}))(themes);return _jsx(Picker,{colSpan:12,gap:"lg",value:activeThemeKey,onChange:function onChange(key){onChangeTheme==null?void 0:onChangeTheme(key);_onChange==null?void 0:_onChange(key);},options:options,renderOption:function renderOption(_ref2){var option=_ref2.option,selected=_ref2.selected,onChange=_ref2.onChange;return _jsxs(Link,{onPress:onChange,gap:"xs",children:[_jsx(ThemeThumb,{value:option.value}),_jsx(IconLabel,{center:true,label:option.label,icon:selected&&'checkbox-circle-fill',color:selected?'primary':'text3',strong:true})]});}});}
@@ -1 +1 @@
1
- var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/theme/ThemePickerDrawer.js";import{BottomDrawer}from"../structure";import{ScrollView}from"../list/ScrollView";import{ThemePicker}from"./ThemePicker";import{jsx as _jsx}from"react/jsx-runtime";export function ThemePickerDrawer(_ref){var open=_ref.open,onClose=_ref.onClose,onChange=_ref.onChange;return _jsx(BottomDrawer,{open:open,onClose:onClose,maxWidth:550,snapPoints:['50%','85%'],children:_jsx(ScrollView,{padding:"md",children:_jsx(ThemePicker,{onChange:onChange})})});}
1
+ var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/theme/ThemePickerDrawer.js";import{BottomDrawer,DrawerScrollView}from"../modals/bottomDrawer";import{ThemePicker}from"./ThemePicker";import{jsx as _jsx}from"react/jsx-runtime";export function ThemePickerDrawer(_ref){var open=_ref.open,onClose=_ref.onClose,onChange=_ref.onChange;return _jsx(BottomDrawer,{open:open,onClose:onClose,maxWidth:550,snapPoints:['50%','85%'],children:_jsx(DrawerScrollView,{padding:"md",children:_jsx(ThemePicker,{onChange:onChange})})});}
@@ -1 +1 @@
1
- export*from"./debounce";export*from"./string";export*from"./random";export*from"./storage";
1
+ export*from"./debounce";export*from"./string";export*from"./random";export*from"./storage";export*from"./../abstractions/helpers/useSafeAreaInsets";
@@ -1 +1 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import React from'react';import{AbsStorage}from"../abstractions/helpers/storage";function set(key,value){return AbsStorage.set(key,JSON.stringify(value));}function setAsync(key,value){return AbsStorage.setAsync(key,JSON.stringify(value));}function get(key){var value=AbsStorage.get(key);return formatStoragedValue(value);}function getAsync(key){return AbsStorage.setAsync(key).then(function(value){return formatStoragedValue(value);});}function formatStoragedValue(value){try{if(!value)return value;value=JSON.parse(value);if(value==='undefined')return undefined;if(value==='null')return undefined;return value;}catch(e){return value;}}function useState(key,defaultValue){var _React$useState=React.useState(get(key)||defaultValue),_React$useState2=_slicedToArray(_React$useState,2),value=_React$useState2[0],setValue=_React$useState2[1];var handleChange=function handleChange(newValue){set(key,newValue);setValue(newValue);};return[value,handleChange];}export var Storage=Object.assign({},AbsStorage,{set:set,setAsync:setAsync,get:get,getAsync:getAsync,useState:useState});
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import React from'react';import{AbsStorage}from"../abstractions/helpers/storage";var listeners={};function notify(key,value){if(listeners[key]){listeners[key].forEach(function(cb){return cb(value);});}}function subscribe(key,cb){if(!listeners[key])listeners[key]=[];listeners[key].push(cb);return function(){listeners[key]=listeners[key].filter(function(fn){return fn!==cb;});};}function set(key,value){AbsStorage.set(key,JSON.stringify(value));notify(key,value);}function setAsync(key,value){return AbsStorage.setAsync(key,JSON.stringify(value)).then(function(){notify(key,value);});}function get(key,defaultValue){var _formatStoragedValue;var value=AbsStorage.get(key);return(_formatStoragedValue=formatStoragedValue(value))!=null?_formatStoragedValue:defaultValue;}function getAsync(key,defaultValue){return AbsStorage.getAsync(key).then(function(value){var _formatStoragedValue2;return(_formatStoragedValue2=formatStoragedValue(value))!=null?_formatStoragedValue2:defaultValue;});}function formatStoragedValue(value){try{if(!value)return value;value=JSON.parse(value);if(value==='undefined')return undefined;if(value==='null')return undefined;return value;}catch(e){return value;}}function useState(key,defaultValue){var _React$useState=React.useState(function(){var _get;return(_get=get(key))!=null?_get:defaultValue;}),_React$useState2=_slicedToArray(_React$useState,2),value=_React$useState2[0],setValue=_React$useState2[1];React.useEffect(function(){return subscribe(key,setValue);},[key]);var handleChange=function handleChange(newValue){set(key,newValue);};return[value,handleChange];}export var Storage=Object.assign({},AbsStorage,{set:set,setAsync:setAsync,get:get,getAsync:getAsync,useState:useState});
@@ -1 +1 @@
1
- import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import{is}from'ramda';import React from'react';import{Platform}from"../abstractions/Platform";import{useBreakpoints}from"../theme/ThemeHandler";import{useResponsive}from"../responsive/ResponsiveHandler";export function useGetResponsiveValue(){var breakpoints=useBreakpoints();var _useResponsive=useResponsive(),width=_useResponsive.width,screen=_useResponsive.screen;return React.useCallback(function(value){var isNative=(value==null?void 0:value.native)!==undefined&&Platform.OS!=='web';if(isNative)return value==null?void 0:value.native;var isWeb=(value==null?void 0:value.web)!==undefined&&Platform.OS==='web';if(isWeb)return value==null?void 0:value.web;var isObj=is(Object,value);if(!isObj)return value;if(value[screen])return value[screen];var keys=Object.keys(value);var _loop=function _loop(){var match=k.match(/^(\w+)([du])$/);if(!match)return 0;var bpName=match[1];var mode=match[2];var bpIndex=breakpoints.findIndex(function(b){return b.name===bpName;});if(bpIndex===-1)return 0;if(mode==='u'){var lowerBound=bpIndex>0?breakpoints[bpIndex-1].value:0;if(width>=lowerBound)return{v:value[k]};}if(mode==='d'){if(width<breakpoints[bpIndex].value)return{v:value[k]};}},_ret;for(var k of keys){_ret=_loop();if(_ret===0)continue;if(_ret)return _ret.v;}return value==null?void 0:value.df;},[screen]);}export function useResponsiveValue(value){var getValue=useGetResponsiveValue();var isObj=is(Object,value);var valueWatch=isObj?Object.keys(value).map(function(k){return`${k}:${value[k]}`;}):[value];return React.useMemo(function(){return getValue(value);},[getValue].concat(_toConsumableArray(valueWatch)));}
1
+ import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import{is}from'ramda';import React from'react';import{Platform}from"../abstractions/Platform";import{useBreakpoints}from"../theme/ThemeHandler";import{useResponsive}from"../responsive/ResponsiveHandler";export function useGetResponsiveValue(){var breakpoints=useBreakpoints();var _useResponsive=useResponsive(),width=_useResponsive.width,screen=_useResponsive.screen;return React.useCallback(function(value){var isNative=(value==null?void 0:value.native)!==undefined&&Platform.OS!=='web';if(isNative)return value==null?void 0:value.native;var isWeb=(value==null?void 0:value.web)!==undefined&&Platform.OS==='web';if(isWeb)return value==null?void 0:value.web;var isIOS=(value==null?void 0:value.ios)!==undefined&&Platform.OS==='ios';if(isIOS)return value==null?void 0:value.ios;var isAndroid=(value==null?void 0:value.android)!==undefined&&Platform.OS==='android';if(isAndroid)return value==null?void 0:value.android;var isObj=is(Object,value);if(!isObj)return value;if(value[screen])return value[screen];var keys=Object.keys(value);var _loop=function _loop(){var match=k.match(/^(\w+)([du])$/);if(!match)return 0;var bpName=match[1];var mode=match[2];var bpIndex=breakpoints.findIndex(function(b){return b.name===bpName;});if(bpIndex===-1)return 0;if(mode==='u'){var lowerBound=bpIndex>0?breakpoints[bpIndex-1].value:0;if(width>=lowerBound)return{v:value[k]};}if(mode==='d'){if(width<breakpoints[bpIndex].value)return{v:value[k]};}},_ret;for(var k of keys){_ret=_loop();if(_ret===0)continue;if(_ret)return _ret.v;}return value==null?void 0:value.df;},[screen]);}export function useResponsiveValue(value){var getValue=useGetResponsiveValue();var isObj=is(Object,value);var valueWatch=isObj?Object.keys(value).map(function(k){return`${k}:${value[k]}`;}):[value];return React.useMemo(function(){return getValue(value);},[getValue].concat(_toConsumableArray(valueWatch)));}
@@ -1 +1 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/theme/ThemeHandler.js";import{mergeDeepRight}from'ramda';import React from'react';import{DEFAULT_LIGHT_THEME}from"./default/lightTheme";import{getThemeValue}from"./helpers/relatedScales";import{useFormattedTheme}from"./format/formatTheme";import{jsx as _jsx}from"react/jsx-runtime";var DEFAULT_BREAKPOINTS=[{name:'sm',value:768},{name:'md',value:1024},{name:'lg',value:1440},{name:'xl',value:10000}];var ThemeContext=React.createContext(null);export var useThemeHandler=function useThemeHandler(){return React.useContext(ThemeContext)||{};};export var useBreakpoints=function useBreakpoints(){var _useThemeHandler;return((_useThemeHandler=useThemeHandler())==null?void 0:_useThemeHandler.breakpoints)||DEFAULT_BREAKPOINTS;};export var useTheme=function useTheme(groupKey){var theme=useThemeHandler().theme||DEFAULT_LIGHT_THEME;if(!groupKey)return theme;return(theme==null?void 0:theme[groupKey])||{};};export var useGetThemeValue=function useGetThemeValue(groupKey){var group=useTheme(groupKey);return function(key){return getThemeValue(group,key);};};export var useColors=function useColors(){return useTheme('colors');};export var useGetColor=function useGetColor(){return useGetThemeValue('colors');};export var useSpaces=function useSpaces(){return useTheme('spaces');};export var useGetSpace=function useGetSpace(){return useGetThemeValue('spaces');};export var useRadius=function useRadius(){return useTheme('radius');};export var useGetRadius=function useGetRadius(){return useGetThemeValue('radius');};export var useElementHeights=function useElementHeights(){return useTheme('elementHeights');};export var useGetElementHeight=function useGetElementHeight(){return useGetThemeValue('elementHeights');};export var useTexts=function useTexts(){return useTheme('texts');};export var useGetText=function useGetText(){return useGetThemeValue('text');};export var useThemeComponents=function useThemeComponents(){return useTheme('components');};export function useThemeComponent(name){var components=useThemeComponents();return components[name]||{};}export function useMergeThemeComponent(name,props){var themeProps=useThemeComponent(name);return mergeDeepRight(themeProps,props);}export function ThemeHandler(_ref){var breakpoints=_ref.breakpoints,themes=_ref.themes,initTheme=_ref.initTheme,onChangeTheme=_ref.onChangeTheme,children=_ref.children;var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),themePickerOpen=_React$useState2[0],setThemePickerOpen=_React$useState2[1];var openThemePicker=function openThemePicker(){return setThemePickerOpen(true);};var _React$useState3=React.useState(initTheme||'light'),_React$useState4=_slicedToArray(_React$useState3,2),activeThemeKey=_React$useState4[0],setActiveThemeKey=_React$useState4[1];var toggleTheme=function toggleTheme(){return setActiveThemeKey(activeThemeKey==='light'?'dark':'light');};var theme=useFormattedTheme(themes,activeThemeKey);var value={theme:theme,themes:themes,activeThemeKey:activeThemeKey,setActiveThemeKey:setActiveThemeKey,toggleTheme:toggleTheme,themePickerOpen:themePickerOpen,setThemePickerOpen:setThemePickerOpen,onChangeTheme:onChangeTheme,openThemePicker:openThemePicker,toggleTheme:toggleTheme,breakpoints:breakpoints||DEFAULT_BREAKPOINTS};return _jsx(ThemeContext.Provider,{value:value,children:children});}
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/theme/ThemeHandler.js";import{mergeDeepRight}from'ramda';import React from'react';import{DEFAULT_LIGHT_THEME}from"./default/lightTheme";import{getThemeValue}from"./helpers/relatedScales";import{useFormattedTheme}from"./format/formatTheme";import{jsx as _jsx}from"react/jsx-runtime";var DEFAULT_BREAKPOINTS=[{name:'sm',value:768},{name:'md',value:1024},{name:'lg',value:1440},{name:'xl',value:10000}];var ThemeContext=React.createContext(null);export var useThemeHandler=function useThemeHandler(){return React.useContext(ThemeContext)||{};};export var useBreakpoints=function useBreakpoints(){var _useThemeHandler;return((_useThemeHandler=useThemeHandler())==null?void 0:_useThemeHandler.breakpoints)||DEFAULT_BREAKPOINTS;};export var useTheme=function useTheme(groupKey){var theme=useThemeHandler().theme||DEFAULT_LIGHT_THEME;if(!groupKey)return theme;return(theme==null?void 0:theme[groupKey])||{};};export var useGetThemeValue=function useGetThemeValue(groupKey){var group=useTheme(groupKey);return function(key){return getThemeValue(group,key);};};export var useColors=function useColors(){return useTheme('colors');};export var useGetColor=function useGetColor(){return useGetThemeValue('colors');};export var useSpaces=function useSpaces(){return useTheme('spaces');};export var useGetSpace=function useGetSpace(){return useGetThemeValue('spaces');};export var useRadius=function useRadius(){return useTheme('radius');};export var useGetRadius=function useGetRadius(){return useGetThemeValue('radius');};export var useElementHeights=function useElementHeights(){return useTheme('elementHeights');};export var useGetElementHeight=function useGetElementHeight(){return useGetThemeValue('elementHeights');};export var useTexts=function useTexts(){return useTheme('texts');};export var useGetText=function useGetText(){return useGetThemeValue('text');};export var useThemeComponents=function useThemeComponents(){return useTheme('components');};export function useThemeComponent(name){var components=useThemeComponents();return components[name]||{};}export function useMergeThemeComponent(name,props){var themeProps=useThemeComponent(name);return mergeDeepRight(themeProps,props);}export function ThemeHandler(_ref){var breakpoints=_ref.breakpoints,themes=_ref.themes,initTheme=_ref.initTheme,onChangeTheme=_ref.onChangeTheme,children=_ref.children;var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),themePickerOpen=_React$useState2[0],setThemePickerOpen=_React$useState2[1];var openThemePicker=function openThemePicker(){return setThemePickerOpen(true);};var _React$useState3=React.useState(initTheme||'light'),_React$useState4=_slicedToArray(_React$useState3,2),activeThemeKey=_React$useState4[0],setActiveThemeKey=_React$useState4[1];var handleChangeTheme=function handleChangeTheme(key){setActiveThemeKey(key);onChangeTheme==null?void 0:onChangeTheme(key);};var toggleTheme=function toggleTheme(){return handleChangeTheme(activeThemeKey==='light'?'dark':'light');};var theme=useFormattedTheme(themes,activeThemeKey);var value={theme:theme,themes:themes,activeThemeKey:activeThemeKey,toggleTheme:toggleTheme,themePickerOpen:themePickerOpen,setThemePickerOpen:setThemePickerOpen,onChangeTheme:handleChangeTheme,openThemePicker:openThemePicker,toggleTheme:toggleTheme,breakpoints:breakpoints||DEFAULT_BREAKPOINTS};return _jsx(ThemeContext.Provider,{value:value,children:children});}
@@ -1 +1 @@
1
- export var BASE_THEME={spaces:{xxxs:1,xxs:3,xs:5,sm:10,md:15,lg:20,xl:30,xxl:40,xxxl:50},radius:{xxxs:4,xxs:5,xs:5,sm:7,md:8,lg:10,xl:12,xxl:15,xxxl:18},icons:{xxxs:10,xxs:12,xs:14,sm:16,md:18,lg:22,xl:26,xxl:28,xxxl:32},elementHeights:{xxxs:10,xxs:15,xs:20,sm:30,md:35,lg:40,xl:50,xxl:60,xxxl:70},texts:{h1:{fontSize:35,strong:true},h2:{fontSize:28,strong:true},h3:{fontSize:26,strong:true},h4:{fontSize:22,strong:true},h5:{fontSize:18,strong:true},h6:{fontSize:16,strong:true},p:{fontSize:14},sm:{fontSize:12},xs:{fontSize:10},xxs:{fontSize:8}}};
1
+ export var BASE_THEME={spaces:{xxxs:1,xxs:3,xs:5,sm:10,md:15,lg:20,xl:30,xxl:40,xxxl:50},radius:{xxxs:4,xxs:5,xs:5,sm:7,md:8,lg:10,xl:12,xxl:15,xxxl:18},icons:{xxxs:10,xxs:12,xs:14,sm:16,md:18,lg:22,xl:26,xxl:28,xxxl:32},elementHeights:{xxxs:10,xxs:15,xs:25,sm:35,md:40,lg:45,xl:50,xxl:60,xxxl:70},texts:{h1:{fontSize:35,strong:true},h2:{fontSize:28,strong:true},h3:{fontSize:26,strong:true},h4:{fontSize:22,strong:true},h5:{fontSize:18,strong:true},h6:{fontSize:16,strong:true},p:{fontSize:14},sm:{fontSize:12},xs:{fontSize:10},xxs:{fontSize:8}}};
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_BLACK_THEME=mergeDeepRight(BASE_THEME,{label:'Pitch Black',colors:{primary:'#818DF9',text:'#FFFFFF',text2:'#E0E0E0',text3:'#B0B0B0',text4:'#8A8A8A',mainBG:'#0f0f0f',overlayBG:'#000000',backdrop:'#1f1f1f',shadow:'rgba(216, 210, 203, 0.1)',divider:'#383E44',blue:'#4DA3FF',yellow:'#FFD93B',green:'#4CAF50',purple:'#9B59B6',orange:'#FF7F50',cyan:'#00BCD4',red:'#E74C3C',navy:'#34495E',indigo:'#5C6BC0',gray:'#9E9E9E',brown:'#8D6E63',lylac:'#B39DDB',pink:'#F48FB1'}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_BLACK_THEME=mergeDeepRight(BASE_THEME,{label:'Pitch Black',colors:{primary:'#818DF9',text:'#F2F2F2',text2:'#CFCFCF',text3:'#A6A6A6',text4:'#737373',mainBG:'#0A0A0A',overlayBG:'#141414',backdrop:'#1f1f1f',shadow:'rgba(0, 0, 0, 0.7)',transparent:'rgba(0, 0, 0, 0)',divider:'#262626',blue:'#3A7BFF',yellow:'#FFC857',green:'#2ECC71',purple:'#9B5DE5',orange:'#FF8C42',cyan:'#00C2D1',red:'#FF4D4F',navy:'#1F2A44',indigo:'#5C6BC0',gray:'#8E8E93',brown:'#8B5E3C',lylac:'#C77DFF',pink:'#FF6FAE'}});
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var CYBERPUNK_DARK_THEME=mergeDeepRight(BASE_THEME,{label:'Cyberpunk',colors:{primary:'#FCEE09',text:'#FFFFFF',text2:'#B3B3B3',text3:'#8C8C8C',text4:'#666666',mainBG:'#14141F',overlayBG:'#14141F',backdrop:'#0A0A0F',shadow:'rgba(39, 45, 52, 0.6)',divider:'rgba(255,255,255, 0.2)',blue:'#00E5FF',yellow:'#FFD600',green:'#00FF9D',purple:'#D500F9',orange:'#FF9100',cyan:'#00B8D4',red:'#FF1744',navy:'#1E2A38',indigo:'#651FFF',gray:'#757575',brown:'#6D4C41',lylac:'#B388FF',pink:'#FF80AB'}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var CYBERPUNK_DARK_THEME=mergeDeepRight(BASE_THEME,{label:'Cyberpunk',colors:{primary:'#FF4FD8',text:'#F5EFFF',text2:'#D6C8FF',text3:'#A78BFA',text4:'#7C6BB3',mainBG:'#0A0614',overlayBG:'#140A26',backdrop:'#0A0A0F',shadow:'rgba(0, 0, 0, 0.7)',transparent:'rgba(0, 0, 0, 0)',divider:'#24123A',blue:'#00B3FF',yellow:'#FFD166',green:'#00F5A0',purple:'#9D4EDD',orange:'#FF7A18',cyan:'#00E5FF',red:'#FF3D6E',navy:'#1B1B3A',indigo:'#5A67FF',gray:'#8E8EAA',brown:'#8B5CF6',lylac:'#C77DFF',pink:'#FF4FD8'}});
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_DARK_THEME=mergeDeepRight(BASE_THEME,{label:'Dark',colors:{primary:'#818DF9',text:'#FFFFFF',text2:'#E0E0E0',text3:'#B0B0B0',text4:'#8A8A8A',mainBG:'#383E44',overlayBG:'#272D34',backdrop:'#383E44',shadow:'rgba(216, 210, 203, 0.1)',divider:'#383E44',blue:'#4DA3FF',yellow:'#FFD93B',green:'#4CAF50',purple:'#9B59B6',orange:'#FF7F50',cyan:'#00BCD4',red:'#E74C3C',navy:'#34495E',indigo:'#5C6BC0',gray:'#9E9E9E',brown:'#8D6E63',lylac:'#B39DDB',pink:'#F48FB1'}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_DARK_THEME=mergeDeepRight(BASE_THEME,{label:'Dark',colors:{primary:'#818DF9',text:'#FFFFFF',text2:'#E0E0E0',text3:'#B0B0B0',text4:'#8A8A8A',mainBG:'#383E44',overlayBG:'#272D34',backdrop:'#383E44',shadow:'rgba(216, 210, 203, 0.1)',transparent:'rgba(0, 0, 0, 0)',divider:'#383E44',blue:'#4DA3FF',yellow:'#FFD93B',green:'#4CAF50',purple:'#9B59B6',orange:'#FF7F50',cyan:'#00BCD4',red:'#E74C3C',navy:'#34495E',indigo:'#5C6BC0',gray:'#9E9E9E',brown:'#8D6E63',lylac:'#B39DDB',pink:'#F48FB1'}});
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_MATRIX_THEME=mergeDeepRight(BASE_THEME,{label:'Hacker',colors:{primary:'#00FF41',text:'#00FF41',text2:'#00CC33',text3:'#009926',text4:'#00661A',mainBG:'#000000',overlayBG:'#0A0A0A',backdrop:'#000000',shadow:'rgba(0, 255, 65, 0.2)',divider:'rgba(0,255,65, 0.3)',blue:'#0087BD',yellow:'#AEBF00',green:'#00FF41',purple:'#7A1FA2',orange:'#FF6D00',cyan:'#00BFA5',red:'#D50000',navy:'#003366',indigo:'#303F9F',gray:'#4A4A4A',brown:'#5D4037',lylac:'#8E24AA',pink:'#C51162'},components:{Card:{border:1,br:5,borderColor:'divider'}}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_MATRIX_THEME=mergeDeepRight(BASE_THEME,{label:'Hacker',colors:{primary:'#00FF41',text:'#D2FFE9',text2:'#A6F5D0',text3:'#6EE7B7',text4:'#3FAF85',mainBG:'#000000',overlayBG:'#0A0A0A',backdrop:'#000000',shadow:'rgba(0, 255, 65, 0.2)',transparent:'rgba(0, 0, 0, 0)',divider:'rgba(0,255,65, 0.3)',blue:'#00B3FF',yellow:'#E6FF3F',green:'#00FF41',purple:'#9B5DE5',orange:'#FF9F1C',cyan:'#00FFE0',red:'#FF3B3B',navy:'#001F2F',indigo:'#4B6BFF',gray:'#2E2E2E',brown:'#5C4033',lylac:'#C084FC',pink:'#FF4FD8'},radius:{xxxs:0,xxs:1,xs:2,sm:3,md:4,lg:5,xl:6,xxl:7,xxxl:8},components:{Card:{border:true},Section:{border:true}}});
@@ -1 +1 @@
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)',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';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 +1 @@
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'}});
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 +1 @@
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_MSDOS_THEME}from"./msdosTheme";import{DEFAULT_PAPER_THEME}from"./paperTheme";import{MIDNIGHT_NEON_THEME}from"./midnightTheme";export var DEFAULT_THEMES={light:DEFAULT_LIGHT_THEME,dark:DEFAULT_DARK_THEME,paper:DEFAULT_PAPER_THEME,black:DEFAULT_BLACK_THEME,midnight:MIDNIGHT_NEON_THEME,cyberpunk:CYBERPUNK_DARK_THEME,hacker:DEFAULT_MATRIX_THEME,msdos:DEFAULT_MSDOS_THEME};
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};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neko-os/ui",
3
- "version": "0.0.13",
3
+ "version": "0.2.0",
4
4
  "author": "Christian Storch <ccstorch@gmail.com>",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
package/src/NekoUI.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { DynamicStyleTag } from './DynamicStyleTag'
2
2
  import { I18nProvider } from './i18n'
3
- import { ModalsHandler } from './components/structure/modal/handler/ModalsHandler'
3
+ import { ModalsHandler } from './components/modals/modal/handler/ModalsHandler'
4
4
  import { NotificationsHandler } from './components/feedback/notifications/NotificationsHandler'
5
5
  import { OverlayHandler } from './components/structure/overlay/OverlayHandler'
6
6
  import { PortalHandler } from './components/helpers/PortalHandler'
@@ -1,7 +1,7 @@
1
1
  import { FlatList } from 'react-native'
2
2
 
3
3
  export const AbsFlatList = ({
4
- style: { height, width, ...style },
4
+ style: { height, width, flex, ...style },
5
5
  ItemSeparatorComponent,
6
6
  Separator,
7
7
  renderSeparator,
@@ -25,6 +25,7 @@ export const AbsFlatList = ({
25
25
  <FlatList
26
26
  height={height}
27
27
  width={width}
28
+ style={{ flex }}
28
29
  {...props}
29
30
  ItemSeparatorComponent={ItemSeparatorComponent}
30
31
  ListEmptyComponent={ListEmptyComponent}
@@ -0,0 +1,3 @@
1
+ import { AbsView } from './View'
2
+
3
+ export const AbsKeyboardAvoidingView = AbsView
@@ -0,0 +1,3 @@
1
+ import { KeyboardAvoidingView } from 'react-native'
2
+
3
+ export const AbsKeyboardAvoidingView = KeyboardAvoidingView
@@ -1,5 +1,5 @@
1
1
  import { ScrollView } from 'react-native'
2
2
 
3
- export const AbsScrollView = ({ style: { height, width, ...style }, ...props }) => {
4
- return <ScrollView height={height} width={width} {...props} contentContainerStyle={style} />
3
+ export const AbsScrollView = ({ style: { height, width, flex, ...style }, ...props }) => {
4
+ return <ScrollView height={height} width={width} style={{ flex }} {...props} contentContainerStyle={style} />
5
5
  }
@@ -0,0 +1,68 @@
1
+ import { pipe } from 'ramda'
2
+
3
+ import { TopBar, View } from '../structure'
4
+ import { BottomDrawer, DrawerScrollView } from '../modals/bottomDrawer'
5
+ import { Menu } from './menu/Menu'
6
+ import { Section } from '../sections'
7
+ import { useDefaultModifier } from '../../modifiers/default'
8
+ import { useThemeComponentModifier } from '../../modifiers/themeComponent'
9
+
10
+ const DEFAULT_PROPS = {
11
+ useSafeArea: false,
12
+ bg: 'mainBG',
13
+ topBarProps: {
14
+ useSafeArea: false,
15
+ },
16
+ menuProps: {
17
+ vertical: true,
18
+ linkPaddingH: 'md',
19
+ linkMinHeight: 'xl',
20
+ withDivider: true,
21
+ },
22
+ }
23
+
24
+ function Content({ items, title, subtitle, onClose, onChange, topBarProps, menuProps }) {
25
+ const handleChange = (...params) => {
26
+ onChange?.(...params)
27
+ onClose()
28
+ }
29
+
30
+ return (
31
+ <>
32
+ <TopBar title={title} subtitle={subtitle} {...topBarProps} />
33
+
34
+ <View flex>
35
+ <DrawerScrollView>
36
+ {!title && <View paddingT="md" />}
37
+ <Section>
38
+ <Menu items={items} onChange={handleChange} {...menuProps} />
39
+ </Section>
40
+ <View height={100} />
41
+ </DrawerScrollView>
42
+ </View>
43
+ </>
44
+ )
45
+ }
46
+
47
+ export function ActionsDrawer({ items, onChange, title, subtitle, onClose, ...rootProps }) {
48
+ const [{}, formattedProps] = pipe(
49
+ useThemeComponentModifier('ActionsDrawer'), //
50
+ useDefaultModifier(DEFAULT_PROPS)
51
+ )([{}, rootProps])
52
+
53
+ const { topBarProps, menuProps, ...props } = formattedProps
54
+
55
+ return (
56
+ <BottomDrawer onClose={onClose} {...props}>
57
+ <Content
58
+ onClose={onClose}
59
+ topBarProps={topBarProps}
60
+ menuProps={menuProps}
61
+ title={title}
62
+ subtitle={subtitle}
63
+ onChange={onChange}
64
+ items={items}
65
+ />
66
+ </BottomDrawer>
67
+ )
68
+ }
@@ -54,7 +54,7 @@ export function Button({ children, ...rootProps }) {
54
54
  useBorderModifier
55
55
  )([{}, rootProps])
56
56
 
57
- const { label, icon, textProps, iconProps, gap, invert, size, ...props } = formattedProps
57
+ const { label, icon, textProps, iconProps, gap, invert, size, iconLabelProps, ...props } = formattedProps
58
58
 
59
59
  return (
60
60
  <AbsTouchableOpacity className="neko-button neko-wave-click-effect" type="button" {...props}>
@@ -70,6 +70,7 @@ export function Button({ children, ...rootProps }) {
70
70
  textProps={{ strong: true, ...textProps }}
71
71
  iconProps={iconProps}
72
72
  loading={loading}
73
+ {...iconLabelProps}
73
74
  />
74
75
  )}
75
76
  </AbsTouchableOpacity>
@@ -0,0 +1,39 @@
1
+ import { Icon } from '../presentation'
2
+ import { Link } from './Link'
3
+ import { Text } from '../text'
4
+ import { View } from '../structure'
5
+ import { moveScale } from '../../theme/helpers/sizeScale'
6
+ import { useSafeAreaInsets } from '../../abstractions/helpers/useSafeAreaInsets'
7
+
8
+ export function FloatingMenu({ fixed, onChange, items, activeIndex, size = 'md', WrapperView, ...props }) {
9
+ const insets = useSafeAreaInsets()
10
+ const height = moveScale(size, 2)
11
+
12
+ const bg = !WrapperView ? 'overlayBG' : null
13
+ WrapperView = WrapperView || View
14
+
15
+ return (
16
+ <View absolute={!fixed} fixed={fixed} left="md" right="md" centerH bottom={Math.max(insets.bottom, 16)}>
17
+ <WrapperView height={height} shadow round row paddingH="sm" bg={bg} {...props}>
18
+ {items.map((item, index) => {
19
+ const isActive = index === activeIndex
20
+
21
+ return (
22
+ <Link key={index} onPress={() => onChange(item, index)} center padding="xs" gap={3} width={height} round>
23
+ <Icon
24
+ name={isActive ? item.icon?.replace(/line(?=[^line]*$)/, 'fill') : item.icon}
25
+ size={height}
26
+ color={isActive ? 'primary' : 'text3'}
27
+ />
28
+ {!!item.label && (
29
+ <Text size="xxs" center color={isActive ? 'primary' : 'text3'} strong numberOfLines={1}>
30
+ {item.label}
31
+ </Text>
32
+ )}
33
+ </Link>
34
+ )
35
+ })}
36
+ </WrapperView>
37
+ </View>
38
+ )
39
+ }
@@ -5,3 +5,5 @@ export * from './Pressable'
5
5
  export * from './Dropdown'
6
6
  export * from './Breadcrumb'
7
7
  export * from './menu/Menu'
8
+ export * from './FloatingMenu'
9
+ export * from './ActionsDrawer'
@@ -0,0 +1,10 @@
1
+ import { AnimatedView } from './AnimatedView'
2
+ import { TopBar } from '../structure'
3
+
4
+ export function AnimatedTopBar(props) {
5
+ return (
6
+ <AnimatedView style={{ position: 'absolute', top: 0, left: 0, right: 0, zIndex: 90 }} fade>
7
+ <TopBar {...props} />
8
+ </AnimatedView>
9
+ )
10
+ }