@neko-os/ui 0.0.5 → 0.0.6

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 (337) hide show
  1. package/dist/NekoUI.js +1 -1
  2. package/dist/abstractions/ActivityIndicator.js +1 -0
  3. package/dist/abstractions/ActivityIndicator.native.js +1 -0
  4. package/dist/abstractions/AnimatedView.js +1 -0
  5. package/dist/abstractions/AnimatedView.native.js +1 -0
  6. package/dist/abstractions/DraggableSlideView.js +1 -0
  7. package/dist/abstractions/DraggableSlideView.native.js +1 -0
  8. package/dist/abstractions/Icon.js +1 -1
  9. package/dist/abstractions/Image.js +1 -0
  10. package/dist/abstractions/Image.native.js +1 -0
  11. package/dist/abstractions/Image.web.js +1 -0
  12. package/dist/abstractions/Platform.js +1 -0
  13. package/dist/abstractions/Platform.native.js +1 -0
  14. package/dist/abstractions/Platform.web.js +1 -0
  15. package/dist/abstractions/SafeAreaView.js +1 -0
  16. package/dist/abstractions/SafeAreaView.native.js +1 -0
  17. package/dist/abstractions/Table.js +1 -0
  18. package/dist/abstractions/Table.native.js +1 -0
  19. package/dist/abstractions/Text.js +1 -1
  20. package/dist/abstractions/TextInput.js +1 -0
  21. package/dist/abstractions/TextInput.native.js +1 -0
  22. package/dist/abstractions/TextInput.web.js +1 -0
  23. package/dist/abstractions/View.js +1 -1
  24. package/dist/abstractions/helpers/componentSize.js +1 -0
  25. package/dist/abstractions/helpers/componentSize.native.js +1 -0
  26. package/dist/abstractions/helpers/transformStyle.js +1 -0
  27. package/dist/abstractions/helpers/transformStyle.native.js +1 -0
  28. package/dist/components/actions/Breadcrumb.js +1 -0
  29. package/dist/components/actions/Button.js +1 -1
  30. package/dist/components/actions/Dropdown.js +1 -0
  31. package/dist/components/actions/Link.js +1 -1
  32. package/dist/components/actions/index.js +1 -1
  33. package/dist/components/actions/menu/HorizontalMenu.js +1 -0
  34. package/dist/components/actions/menu/Menu.js +1 -0
  35. package/dist/components/actions/menu/SubmenuWrapper.js +1 -0
  36. package/dist/components/actions/menu/VerticalMenu.js +1 -0
  37. package/dist/components/animations/AnimatedView.js +1 -0
  38. package/dist/components/animations/DraggableSlideView.js +1 -0
  39. package/dist/components/animations/index.js +1 -0
  40. package/dist/components/calendar/DayPicker.js +1 -0
  41. package/dist/components/calendar/_helpers/calendarDays.js +1 -0
  42. package/dist/components/calendar/index.js +1 -0
  43. package/dist/components/feedback/index.js +1 -0
  44. package/dist/components/feedback/notifications/Notification.js +1 -0
  45. package/dist/components/feedback/notifications/NotificationsHandler.js +1 -0
  46. package/dist/components/form/Form.js +1 -1
  47. package/dist/components/form/FormGroup.js +1 -1
  48. package/dist/components/form/FormItem.js +1 -1
  49. package/dist/components/form/FormList.js +1 -1
  50. package/dist/components/form/FormWrapperComponent.js +1 -1
  51. package/dist/components/form/FormWrapperComponent.native.js +1 -1
  52. package/dist/components/form/SubmitButton.js +1 -0
  53. package/dist/components/form/index.js +1 -1
  54. package/dist/components/form/useNewForm.js +1 -0
  55. package/dist/components/form/useWatch.js +1 -0
  56. package/dist/components/helpers/LazyRender.js +1 -0
  57. package/dist/components/helpers/LazyRender.native.js +1 -0
  58. package/dist/components/helpers/Portal.js +1 -0
  59. package/dist/components/helpers/PortalHandler.js +1 -0
  60. package/dist/components/helpers/Responsive.js +1 -1
  61. package/dist/components/helpers/Separator.js +1 -1
  62. package/dist/components/helpers/VerticalView.js +1 -0
  63. package/dist/components/helpers/index.js +1 -1
  64. package/dist/components/index.js +1 -1
  65. package/dist/components/inputs/Checkbox.js +1 -0
  66. package/dist/components/inputs/InputWrapper.js +1 -0
  67. package/dist/components/inputs/Picker.js +1 -0
  68. package/dist/components/inputs/Radio.js +1 -0
  69. package/dist/components/inputs/Switch.js +1 -0
  70. package/dist/components/inputs/TextInput.js +1 -0
  71. package/dist/components/inputs/index.js +1 -0
  72. package/dist/components/layout/Layout.js +1 -0
  73. package/dist/components/layout/LayoutContent.js +1 -0
  74. package/dist/components/layout/LayoutHeader.js +1 -0
  75. package/dist/components/layout/LayoutSider.js +1 -0
  76. package/dist/components/layout/index.js +1 -0
  77. package/dist/components/presentation/Avatar.js +1 -0
  78. package/dist/components/presentation/AvatarLabel.js +1 -0
  79. package/dist/components/presentation/Badge.js +1 -0
  80. package/dist/components/presentation/ContentLabel.js +1 -1
  81. package/dist/components/presentation/IconLabel.js +1 -1
  82. package/dist/components/presentation/Image.js +1 -0
  83. package/dist/components/presentation/LabelValue.js +1 -0
  84. package/dist/components/presentation/Result.js +1 -0
  85. package/dist/components/presentation/ResultBar.js +1 -0
  86. package/dist/components/presentation/Tag.js +1 -1
  87. package/dist/components/presentation/Tooltip.js +1 -0
  88. package/dist/components/presentation/index.js +1 -1
  89. package/dist/components/state/Loading.js +1 -0
  90. package/dist/components/state/LoadingView.js +1 -0
  91. package/dist/components/state/index.js +1 -0
  92. package/dist/components/structure/Accordion.js +1 -0
  93. package/dist/components/structure/AccordionGroup.js +1 -0
  94. package/dist/components/structure/Card.js +1 -1
  95. package/dist/components/structure/Col.js +1 -0
  96. package/dist/components/structure/Row.js +1 -0
  97. package/dist/components/structure/SafeAreaView.js +1 -0
  98. package/dist/components/structure/View.js +1 -1
  99. package/dist/components/structure/index.js +1 -1
  100. package/dist/components/structure/overlay/OverlayHandler.js +1 -0
  101. package/dist/components/structure/overlay/OverlayHandler.native.js +1 -0
  102. package/dist/components/structure/overlay/OverlayWrapper.js +1 -0
  103. package/dist/components/structure/overlay/calculatePosition.js +1 -0
  104. package/dist/components/structure/overlay/smartPlacement.js +1 -0
  105. package/dist/components/structure/popover/Popover.js +1 -0
  106. package/dist/components/structure/popover/Popover.native.js +1 -0
  107. package/dist/components/structure/popover/PopoverContent.js +1 -0
  108. package/dist/components/table/DataTable.js +1 -0
  109. package/dist/components/table/Pagination.js +1 -0
  110. package/dist/components/table/Table.js +1 -0
  111. package/dist/components/table/TableCol.js +1 -0
  112. package/dist/components/table/TableHeader.js +1 -0
  113. package/dist/components/table/TableHeaderRow.js +1 -0
  114. package/dist/components/table/TableRow.js +1 -0
  115. package/dist/components/table/index.js +1 -0
  116. package/dist/components/text/Text.js +1 -1
  117. package/dist/components/text/VerticalText.js +1 -0
  118. package/dist/components/text/index.js +1 -1
  119. package/dist/helpers/debounce.js +1 -0
  120. package/dist/helpers/index.js +1 -1
  121. package/dist/helpers/options.js +1 -0
  122. package/dist/helpers/random.js +1 -0
  123. package/dist/index.css +10 -0
  124. package/dist/index.js +1 -1
  125. package/dist/modifiers/alignConverter.js +1 -0
  126. package/dist/modifiers/animation.js +1 -0
  127. package/dist/modifiers/animations/animatedEffects.js +1 -0
  128. package/dist/modifiers/animations/animatedEffects.native.js +1 -0
  129. package/dist/modifiers/animations/animatedEffects.web.js +1 -0
  130. package/dist/modifiers/animations/fadeEffect.js +1 -0
  131. package/dist/modifiers/animations/fadeEffect.native.js +1 -0
  132. package/dist/modifiers/animations/slideEffect.js +1 -0
  133. package/dist/modifiers/animations/slideEffect.native.js +1 -0
  134. package/dist/modifiers/applyStyles.js +1 -0
  135. package/dist/modifiers/border.js +1 -1
  136. package/dist/modifiers/display.js +1 -1
  137. package/dist/modifiers/flex.js +1 -1
  138. package/dist/modifiers/flexWrapper.js +1 -1
  139. package/dist/modifiers/fullColor.js +1 -1
  140. package/dist/modifiers/grid.js +1 -0
  141. package/dist/modifiers/overflow.js +1 -0
  142. package/dist/modifiers/position.js +1 -1
  143. package/dist/modifiers/responsiveConverter.js +1 -0
  144. package/dist/modifiers/size.js +1 -1
  145. package/dist/modifiers/state.js +1 -0
  146. package/dist/responsive/ResponsiveHandler.js +1 -0
  147. package/dist/responsive/index.js +1 -0
  148. package/dist/responsive/responsiveHooks.js +1 -0
  149. package/dist/theme/ThemeHandler.js +1 -1
  150. package/dist/theme/default/base.js +1 -1
  151. package/dist/theme/default/darkTheme.js +1 -1
  152. package/dist/theme/default/hackerTheme.js +1 -1
  153. package/dist/theme/default/lightTheme.js +1 -1
  154. package/dist/theme/default/msdosTheme.js +1 -1
  155. package/dist/theme/helpers/contrastColor.js +1 -0
  156. package/dist/theme/helpers/dynamicColor.js +1 -0
  157. package/dist/theme/helpers/relatedScales.js +1 -1
  158. package/dist/theme/helpers/sizeScale.js +1 -1
  159. package/dist/theme/helpers/textScale.js +1 -1
  160. package/package.json +8 -4
  161. package/src/NekoUI.js +15 -1
  162. package/src/abstractions/ActivityIndicator.js +31 -0
  163. package/src/abstractions/ActivityIndicator.native.js +44 -0
  164. package/src/abstractions/AnimatedView.js +3 -0
  165. package/src/abstractions/AnimatedView.native.js +6 -0
  166. package/src/abstractions/DraggableSlideView.js +85 -0
  167. package/src/abstractions/DraggableSlideView.native.js +62 -0
  168. package/src/abstractions/Icon.js +4 -42
  169. package/src/abstractions/Image.js +12 -0
  170. package/src/abstractions/Image.native.js +7 -0
  171. package/src/abstractions/Image.web.js +7 -0
  172. package/src/abstractions/Platform.js +1 -0
  173. package/src/abstractions/Platform.native.js +3 -0
  174. package/src/abstractions/Platform.web.js +3 -0
  175. package/src/abstractions/SafeAreaView.js +3 -0
  176. package/src/abstractions/SafeAreaView.native.js +3 -0
  177. package/src/abstractions/Table.js +29 -0
  178. package/src/abstractions/Table.native.js +19 -0
  179. package/src/abstractions/Text.js +13 -2
  180. package/src/abstractions/TextInput.js +3 -0
  181. package/src/abstractions/TextInput.native.js +5 -0
  182. package/src/abstractions/TextInput.web.js +5 -0
  183. package/src/abstractions/View.js +2 -2
  184. package/src/abstractions/helpers/componentSize.js +13 -0
  185. package/src/abstractions/helpers/componentSize.native.js +12 -0
  186. package/src/abstractions/helpers/transformStyle.js +8 -0
  187. package/src/abstractions/helpers/transformStyle.native.js +3 -0
  188. package/src/components/actions/Breadcrumb.js +47 -0
  189. package/src/components/actions/Button.js +8 -3
  190. package/src/components/actions/Dropdown.js +68 -0
  191. package/src/components/actions/Link.js +21 -8
  192. package/src/components/actions/index.js +3 -0
  193. package/src/components/actions/menu/HorizontalMenu.js +96 -0
  194. package/src/components/actions/menu/Menu.js +7 -0
  195. package/src/components/actions/menu/SubmenuWrapper.js +16 -0
  196. package/src/components/actions/menu/VerticalMenu.js +107 -0
  197. package/src/components/animations/AnimatedView.js +45 -0
  198. package/src/components/animations/DraggableSlideView.js +42 -0
  199. package/src/components/animations/index.js +2 -0
  200. package/src/components/calendar/DayPicker.js +91 -0
  201. package/src/components/calendar/_helpers/calendarDays.js +16 -0
  202. package/src/components/calendar/index.js +1 -0
  203. package/src/components/feedback/index.js +1 -0
  204. package/src/components/feedback/notifications/Notification.js +37 -0
  205. package/src/components/feedback/notifications/NotificationsHandler.js +65 -0
  206. package/src/components/form/Form.js +15 -4
  207. package/src/components/form/FormGroup.js +4 -4
  208. package/src/components/form/FormItem.js +30 -8
  209. package/src/components/form/FormList.js +45 -9
  210. package/src/components/form/FormWrapperComponent.js +37 -2
  211. package/src/components/form/FormWrapperComponent.native.js +2 -2
  212. package/src/components/form/SubmitButton.js +20 -0
  213. package/src/components/form/index.js +3 -2
  214. package/src/components/form/useNewForm.js +67 -0
  215. package/src/components/form/useWatch.js +70 -0
  216. package/src/components/helpers/LazyRender.js +55 -0
  217. package/src/components/helpers/LazyRender.native.js +58 -0
  218. package/src/components/helpers/Portal.js +21 -0
  219. package/src/components/helpers/PortalHandler.js +32 -0
  220. package/src/components/helpers/Responsive.js +1 -1
  221. package/src/components/helpers/Separator.js +10 -14
  222. package/src/components/helpers/VerticalView.js +34 -0
  223. package/src/components/helpers/index.js +4 -0
  224. package/src/components/index.js +7 -0
  225. package/src/components/inputs/Checkbox.js +56 -0
  226. package/src/components/inputs/InputWrapper.js +79 -0
  227. package/src/components/inputs/Picker.js +116 -0
  228. package/src/components/inputs/Radio.js +55 -0
  229. package/src/components/inputs/Switch.js +60 -0
  230. package/src/components/inputs/TextInput.js +22 -0
  231. package/src/components/inputs/index.js +6 -0
  232. package/src/components/layout/Layout.js +40 -0
  233. package/src/components/layout/LayoutContent.js +42 -0
  234. package/src/components/layout/LayoutHeader.js +69 -0
  235. package/src/components/layout/LayoutSider.js +64 -0
  236. package/src/components/layout/index.js +4 -0
  237. package/src/components/presentation/Avatar.js +79 -0
  238. package/src/components/presentation/AvatarLabel.js +58 -0
  239. package/src/components/presentation/Badge.js +90 -0
  240. package/src/components/presentation/ContentLabel.js +24 -6
  241. package/src/components/presentation/IconLabel.js +12 -2
  242. package/src/components/presentation/Image.js +33 -0
  243. package/src/components/presentation/LabelValue.js +49 -0
  244. package/src/components/presentation/Result.js +60 -0
  245. package/src/components/presentation/ResultBar.js +56 -0
  246. package/src/components/presentation/Tag.js +8 -11
  247. package/src/components/presentation/Tooltip.js +43 -0
  248. package/src/components/presentation/index.js +8 -0
  249. package/src/components/state/Loading.js +20 -0
  250. package/src/components/state/LoadingView.js +28 -0
  251. package/src/components/state/index.js +2 -0
  252. package/src/components/structure/Accordion.js +69 -0
  253. package/src/components/structure/AccordionGroup.js +35 -0
  254. package/src/components/structure/Card.js +4 -1
  255. package/src/components/structure/Col.js +22 -0
  256. package/src/components/structure/Row.js +42 -0
  257. package/src/components/structure/SafeAreaView.js +42 -0
  258. package/src/components/structure/View.js +9 -3
  259. package/src/components/structure/index.js +6 -0
  260. package/src/components/structure/overlay/OverlayHandler.js +70 -0
  261. package/src/components/structure/overlay/OverlayHandler.native.js +6 -0
  262. package/src/components/structure/overlay/OverlayWrapper.js +52 -0
  263. package/src/components/structure/overlay/calculatePosition.js +29 -0
  264. package/src/components/structure/overlay/smartPlacement.js +32 -0
  265. package/src/components/structure/popover/Popover.js +69 -0
  266. package/src/components/structure/popover/Popover.native.js +75 -0
  267. package/src/components/structure/popover/PopoverContent.js +18 -0
  268. package/src/components/table/DataTable.js +57 -0
  269. package/src/components/table/Pagination.js +128 -0
  270. package/src/components/table/Table.js +65 -0
  271. package/src/components/table/TableCol.js +67 -0
  272. package/src/components/table/TableHeader.js +69 -0
  273. package/src/components/table/TableHeaderRow.js +31 -0
  274. package/src/components/table/TableRow.js +30 -0
  275. package/src/components/table/index.js +7 -0
  276. package/src/components/text/Text.js +4 -0
  277. package/src/components/text/VerticalText.js +29 -0
  278. package/src/components/text/index.js +1 -0
  279. package/src/helpers/debounce.js +9 -0
  280. package/src/helpers/index.js +2 -1
  281. package/src/helpers/options.js +65 -0
  282. package/src/helpers/random.js +5 -0
  283. package/src/index.css +10 -0
  284. package/src/index.js +1 -0
  285. package/src/modifiers/alignConverter.js +11 -0
  286. package/src/modifiers/animation.js +18 -0
  287. package/src/modifiers/animations/animatedEffects.js +63 -0
  288. package/src/modifiers/animations/animatedEffects.native.js +53 -0
  289. package/src/modifiers/animations/animatedEffects.web.js +3 -0
  290. package/src/modifiers/animations/fadeEffect.js +43 -0
  291. package/src/modifiers/animations/fadeEffect.native.js +33 -0
  292. package/src/modifiers/animations/slideEffect.js +61 -0
  293. package/src/modifiers/animations/slideEffect.native.js +53 -0
  294. package/src/modifiers/applyStyles.js +7 -0
  295. package/src/modifiers/border.js +30 -6
  296. package/src/modifiers/display.js +3 -5
  297. package/src/modifiers/flex.js +1 -1
  298. package/src/modifiers/flexWrapper.js +48 -7
  299. package/src/modifiers/fullColor.js +5 -5
  300. package/src/modifiers/grid.js +27 -0
  301. package/src/modifiers/overflow.js +23 -0
  302. package/src/modifiers/position.js +10 -2
  303. package/src/modifiers/responsiveConverter.js +19 -0
  304. package/src/modifiers/size.js +10 -4
  305. package/src/modifiers/state.js +33 -0
  306. package/src/responsive/ResponsiveHandler.js +28 -0
  307. package/src/responsive/index.js +2 -0
  308. package/src/responsive/responsiveHooks.js +54 -0
  309. package/src/theme/ThemeHandler.js +1 -1
  310. package/src/theme/default/base.js +22 -22
  311. package/src/theme/default/darkTheme.js +2 -2
  312. package/src/theme/default/hackerTheme.js +8 -0
  313. package/src/theme/default/lightTheme.js +1 -1
  314. package/src/theme/default/msdosTheme.js +1 -1
  315. package/src/theme/helpers/contrastColor.js +20 -0
  316. package/src/theme/helpers/dynamicColor.js +32 -0
  317. package/src/theme/helpers/relatedScales.js +6 -6
  318. package/src/theme/helpers/sizeScale.js +7 -2
  319. package/src/theme/helpers/textScale.js +1 -1
  320. package/dist/components/form/inputs/Checkbox.js +0 -1
  321. package/dist/components/form/inputs/Radio.js +0 -1
  322. package/dist/components/form/inputs/Switch.js +0 -1
  323. package/dist/components/form/inputs/index.js +0 -1
  324. package/dist/components/form/useForm.js +0 -1
  325. package/dist/helpers/responsive.js +0 -1
  326. package/src/components/form/inputs/Checkbox.js +0 -42
  327. package/src/components/form/inputs/Radio.js +0 -42
  328. package/src/components/form/inputs/Switch.js +0 -44
  329. package/src/components/form/inputs/index.js +0 -3
  330. package/src/components/form/useForm.js +0 -65
  331. package/src/helpers/responsive.js +0 -54
  332. /package/dist/abstractions/{windowWidth.js → helpers/windowWidth.js} +0 -0
  333. /package/dist/abstractions/{windowWidth.native.js → helpers/windowWidth.native.js} +0 -0
  334. /package/dist/abstractions/{windowWidth.web.js → helpers/windowWidth.web.js} +0 -0
  335. /package/src/abstractions/{windowWidth.js → helpers/windowWidth.js} +0 -0
  336. /package/src/abstractions/{windowWidth.native.js → helpers/windowWidth.native.js} +0 -0
  337. /package/src/abstractions/{windowWidth.web.js → helpers/windowWidth.web.js} +0 -0
package/dist/NekoUI.js CHANGED
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/NekoUI.js";var _excluded=["children"];import{ThemeHandler}from"./theme/ThemeHandler";import{jsx as _jsx}from"react/jsx-runtime";export function NekoUI(_ref){var children=_ref.children,props=_objectWithoutProperties(_ref,_excluded);return _jsx(ThemeHandler,Object.assign({},props,{children:children}));}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/NekoUI.js";var _excluded=["children"];import{NotificationsHandler}from"./components/feedback/notifications/NotificationsHandler";import{OverlayHandler}from"./components/structure/overlay/OverlayHandler";import{PortalHandler}from"./components/helpers/PortalHandler";import{ResponsiveHandler}from"./responsive/ResponsiveHandler";import{ThemeHandler}from"./theme/ThemeHandler";import{jsx as _jsx}from"react/jsx-runtime";export function NekoUI(_ref){var children=_ref.children,props=_objectWithoutProperties(_ref,_excluded);return _jsx(ThemeHandler,Object.assign({},props,{children:_jsx(ResponsiveHandler,{children:_jsx(PortalHandler,{children:_jsx(NotificationsHandler,{children:_jsx(OverlayHandler,{children:children})})})})}));}
@@ -0,0 +1 @@
1
+ var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/ActivityIndicator.js";import tinycolor from'tinycolor2';import{jsx as _jsx}from"react/jsx-runtime";export function AbsActivityIndicator(_ref){var _ref$size=_ref.size,size=_ref$size===void 0?20:_ref$size,color=_ref.color,style=_ref.style;var bg=tinycolor(color).setAlpha(0.2).toString();return _jsx("div",{style:Object.assign({width:size,height:size,border:`${size/8}px solid ${bg}`,borderTop:`${size/8}px solid ${color}`,borderRadius:'50%',animation:'spin 1s linear infinite'},style)});}
@@ -0,0 +1 @@
1
+ var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/ActivityIndicator.native.js";import tinycolor from'tinycolor2';import{Animated,Easing}from"react-native-web";import React from'react';import{jsx as _jsx}from"react/jsx-runtime";export function AbsActivityIndicator(_ref){var _ref$size=_ref.size,size=_ref$size===void 0?20:_ref$size,color=_ref.color,style=_ref.style;var spinValue=React.useRef(new Animated.Value(0)).current;var bg=tinycolor(color).setAlpha(0.2).toString();React.useEffect(function(){var spinAnimation=Animated.loop(Animated.timing(spinValue,{toValue:1,duration:1000,easing:Easing.linear,useNativeDriver:true}));spinAnimation.start();return function(){return spinAnimation.stop();};},[spinValue]);var spin=spinValue.interpolate({inputRange:[0,1],outputRange:['0deg','360deg']});var borderWidth=size/8;console.log(color,bg);return _jsx(Animated.View,{style:Object.assign({width:size,height:size,borderRadius:size/2,borderWidth:borderWidth,borderColor:`${bg}`,borderTopColor:color,transform:[{rotate:spin}]},style)});}
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/AnimatedView.js";var _excluded=["children","style"];import{jsx as _jsx}from"react/jsx-runtime";export function AbsAnimatedView(_ref){var children=_ref.children,style=_ref.style,props=_objectWithoutProperties(_ref,_excluded);return _jsx("div",{style:style,children:children});}
@@ -0,0 +1 @@
1
+ import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/AnimatedView.native.js";import{map,prop}from'ramda';import Animated,{useAnimatedStyle}from'react-native-reanimated';import{jsx as _jsx}from"react/jsx-runtime";export function AbsAnimatedView(_ref){var children=_ref.children,style=_ref.style,_ref$animatedStyles=_ref.animatedStyles,animatedStyles=_ref$animatedStyles===void 0?[]:_ref$animatedStyles;return _jsx(Animated.View,{style:[style].concat(_toConsumableArray(animatedStyles)),children:children});}
@@ -0,0 +1 @@
1
+ export function AbsDraggableSlideView(_ref){var children=_ref.children;return children;}
@@ -0,0 +1 @@
1
+ var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/DraggableSlideView.native.js";import{Dimensions}from"react-native-web";import{Gesture,GestureDetector}from'react-native-gesture-handler';import Animated,{useSharedValue,useAnimatedStyle,withSpring,withTiming,runOnJS}from'react-native-reanimated';import React from'react';import{jsx as _jsx}from"react/jsx-runtime";export function AbsDraggableSlideView(_ref){var _ref$from=_ref.from,from=_ref$from===void 0?'left':_ref$from,distance=_ref.distance,open=_ref.open,onClose=_ref.onClose,style=_ref.style,_ref$threshold=_ref.threshold,threshold=_ref$threshold===void 0?0.3:_ref$threshold,children=_ref.children,_ref$resetOnOpen=_ref.resetOnOpen,resetOnOpen=_ref$resetOnOpen===void 0?true:_ref$resetOnOpen;var _Dimensions$get=Dimensions.get('window'),width=_Dimensions$get.width,height=_Dimensions$get.height;var maxDistance=from==='left'||from==='right'?distance||width:distance||height;var gestureTranslation=useSharedValue(0);React.useEffect(function(){if(resetOnOpen&&open){gestureTranslation.value=0;}},[open,resetOnOpen,gestureTranslation]);var panGesture=Gesture.Pan().onUpdate(function(e){if(from==='left')gestureTranslation.value=Math.min(e.translationX,0);else if(from==='right')gestureTranslation.value=Math.max(e.translationX,0);else if(from==='top')gestureTranslation.value=Math.min(e.translationY,0);else gestureTranslation.value=Math.max(e.translationY,0);}).onEnd(function(e){var progress;if(from==='left')progress=-e.translationX/maxDistance;else if(from==='right')progress=e.translationX/maxDistance;else if(from==='top')progress=-e.translationY/maxDistance;else progress=e.translationY/maxDistance;var shouldClose=progress>threshold;var finalValue=from==='left'||from==='top'?-maxDistance:maxDistance;if(!shouldClose)finalValue=0;gestureTranslation.value=withTiming(finalValue,{duration:200},function(finished){if(finished&&onClose&&shouldClose)runOnJS(onClose)();});});var animatedStyle=useAnimatedStyle(function(){var transform=from==='left'||from==='right'?[{translateX:gestureTranslation.value}]:[{translateY:gestureTranslation.value}];return{transform:transform};});return _jsx(GestureDetector,{gesture:panGesture,children:_jsx(Animated.View,{style:[style,animatedStyle],children:children})});}
@@ -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/abstractions/Icon.js";var _excluded=["name"];import React from'react';import{capitalizeFirstLetter,toCamelCase}from"../helpers/string";import{jsx as _jsx}from"react/jsx-runtime";export function AbsIcon(_ref){var name=_ref.name,props=_objectWithoutProperties(_ref,_excluded);var _React$useState=React.useState(true),_React$useState2=_slicedToArray(_React$useState,2),loading=_React$useState2[0],setLoading=_React$useState2[1];var ref=React.useRef();var Component=(ref==null?void 0:ref.current)||function(){return false;};React.useEffect(function(){try{import('@remixicon/react').then(function(module){if(!!name&&!name.startsWith('Ri'))name='Ri'+capitalizeFirstLetter(toCamelCase(name));var IconComponent=module[name]||module['RiCircleFill'];ref.current=IconComponent;setLoading(false);});}catch(_unused){console.error('Error loading AbsIcon component');}},[]);if(loading){return _jsx("div",{style:{height:props.size,width:props.size,borderRadius:props.size,display:'flex',justifyContent:'center',alignItems:'center'},children:_jsx("div",{style:{height:props.size/3,width:props.size/3,borderRadius:props.size,backgroundColor:props.color}})});}return _jsx(Component,Object.assign({},props));}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/Icon.js";var _excluded=["name"];import*as Icons from'@remixicon/react';import{capitalizeFirstLetter,toCamelCase}from"../helpers/string";import{jsx as _jsx}from"react/jsx-runtime";export function AbsIcon(_ref){var name=_ref.name,props=_objectWithoutProperties(_ref,_excluded);if(!!name&&!name.startsWith('Ri'))name='Ri'+capitalizeFirstLetter(toCamelCase(name));var IconComponent=Icons[name]||Icons['RiCircleFill'];return _jsx(IconComponent,Object.assign({},props));}
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/Image.js";var _excluded=["src","resizeMode","style"];import{jsx as _jsx}from"react/jsx-runtime";export function AbsImage(_ref){var src=_ref.src,_ref$resizeMode=_ref.resizeMode,resizeMode=_ref$resizeMode===void 0?'cover':_ref$resizeMode,style=_ref.style,props=_objectWithoutProperties(_ref,_excluded);var objectFitMap={cover:'cover',contain:'contain',stretch:'fill',center:'none'};var objectFit=objectFitMap[resizeMode]||'cover';return _jsx("img",Object.assign({src:src,style:Object.assign({objectFit:objectFit,objectPosition:'center'},style)},props));}
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/Image.native.js";var _excluded=["src","source","resizeMode"];import{Image as RNImage}from"react-native-web";import{jsx as _jsx}from"react/jsx-runtime";export function AbsImage(_ref){var src=_ref.src,source=_ref.source,_ref$resizeMode=_ref.resizeMode,resizeMode=_ref$resizeMode===void 0?'cover':_ref$resizeMode,props=_objectWithoutProperties(_ref,_excluded);if(!source&&!!src)source={uri:src};return _jsx(RNImage,Object.assign({source:source,resizeMode:resizeMode},props));}
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/Image.web.js";var _excluded=["src","source","resizeMode"];import{Image as RNImage}from"react-native-web";import{jsx as _jsx}from"react/jsx-runtime";export function AbsImage(_ref){var src=_ref.src,source=_ref.source,_ref$resizeMode=_ref.resizeMode,resizeMode=_ref$resizeMode===void 0?'cover':_ref$resizeMode,props=_objectWithoutProperties(_ref,_excluded);if(!source&&!!src)source={uri:src};return _jsx(RNImage,Object.assign({source:source,resizeMode:resizeMode},props));}
@@ -0,0 +1 @@
1
+ export var Platform={OS:'web'};
@@ -0,0 +1 @@
1
+ import{Platform as RNPlatform}from"react-native-web";export var Platform=RNPlatform;
@@ -0,0 +1 @@
1
+ import{Platform as RNPlatform}from"react-native-web";export var Platform=RNPlatform;
@@ -0,0 +1 @@
1
+ import{AbsView}from"./View";export var AbsSafeAreaView=AbsView;
@@ -0,0 +1 @@
1
+ import{SafeAreaView}from'react-native-safe-area-context';export var AbsSafeAreaView=SafeAreaView;
@@ -0,0 +1 @@
1
+ import _objectDestructuringEmpty from"@babel/runtime/helpers/objectDestructuringEmpty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/Table.js";var _excluded=["children","style"];import{jsx as _jsx}from"react/jsx-runtime";export function AbsTable(_ref){var children=_ref.children,style=_ref.style,props=_objectWithoutProperties(_ref,_excluded);return _jsx("table",Object.assign({},props,{style:Object.assign({},style,{borderCollapse:'separate',borderSpacing:0,width:'100%'}),children:_jsx("tbody",{children:children})}));}export function AbsTableRow(_ref2){var props=Object.assign({},(_objectDestructuringEmpty(_ref2),_ref2));return _jsx("tr",Object.assign({},props));}export function AbsTableHeader(_ref3){var props=Object.assign({},(_objectDestructuringEmpty(_ref3),_ref3));return _jsx("th",Object.assign({},props));}export function AbsTableCol(_ref4){var props=Object.assign({},(_objectDestructuringEmpty(_ref4),_ref4));return _jsx("td",Object.assign({},props));}
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/Table.native.js";var _excluded=["children"],_excluded2=["style"],_excluded3=["style"],_excluded4=["style"];import{View}from"react-native-web";import{jsx as _jsx}from"react/jsx-runtime";export function AbsTable(_ref){var children=_ref.children,props=_objectWithoutProperties(_ref,_excluded);return _jsx(View,Object.assign({},props,{children:children}));}export function AbsTableRow(_ref2){var style=_ref2.style,props=_objectWithoutProperties(_ref2,_excluded2);return _jsx(View,Object.assign({},props,{style:[style,{flexDirection:'row',flex:1}]}));}export function AbsTableHeader(_ref3){var style=_ref3.style,props=_objectWithoutProperties(_ref3,_excluded3);if(!style.width&&!style.minWidth&&!style.flex)style.flex=1;return _jsx(View,Object.assign({},props,{style:[style]}));}export function AbsTableCol(_ref4){var style=_ref4.style,props=_objectWithoutProperties(_ref4,_excluded4);if(!style.width&&!style.minWidth&&!style.flex)style.flex=1;return _jsx(View,Object.assign({},props,{style:style}));}
@@ -1 +1 @@
1
- var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/Text.js";import{jsx as _jsx}from"react/jsx-runtime";export function AbsText(props){return _jsx("span",Object.assign({},props));}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/Text.js";var _excluded=["numberOfLines","style"];import{jsx as _jsx}from"react/jsx-runtime";export function AbsText(_ref){var numberOfLines=_ref.numberOfLines,style=_ref.style,props=_objectWithoutProperties(_ref,_excluded);style=style||{};var limitLinesStyle=!!numberOfLines?{display:'-webkit-box',WebkitLineClamp:numberOfLines,WebkitBoxOrient:'vertical',overflow:'hidden'}:{};return _jsx("span",Object.assign({},props,{style:Object.assign({},limitLinesStyle,style)}));}
@@ -0,0 +1 @@
1
+ var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/TextInput.js";import{jsx as _jsx}from"react/jsx-runtime";export function AbsTextInput(props){return _jsx("input",Object.assign({type:"text"},props));}
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/TextInput.native.js";var _excluded=["onChange"];import{TextInput}from"react-native-web";import{jsx as _jsx}from"react/jsx-runtime";export function AbsTextInput(_ref){var onChange=_ref.onChange,props=_objectWithoutProperties(_ref,_excluded);return _jsx(TextInput,Object.assign({onChangeText:onChange},props));}
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/TextInput.web.js";var _excluded=["onChange"];import{TextInput}from"react-native-web";import{jsx as _jsx}from"react/jsx-runtime";export function AbsTextInput(_ref){var onChange=_ref.onChange,props=_objectWithoutProperties(_ref,_excluded);return _jsx(TextInput,Object.assign({onChangeText:onChange},props));}
@@ -1 +1 @@
1
- var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/View.js";import{jsx as _jsx}from"react/jsx-runtime";export function AbsView(props){return _jsx("div",Object.assign({},props));}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/View.js";var _excluded=["onPress","onClick"];import{jsx as _jsx}from"react/jsx-runtime";export function AbsView(_ref){var onPress=_ref.onPress,onClick=_ref.onClick,props=_objectWithoutProperties(_ref,_excluded);return _jsx("div",Object.assign({onClick:onClick||onPress},props));}
@@ -0,0 +1 @@
1
+ export function getElementSize(ref,callback){if(!ref.current)return;var el=ref.current;var rect=el.getBoundingClientRect();callback({width:el.offsetWidth,height:el.offsetHeight,x:rect.x+window.scrollX,y:rect.y+window.scrollY});}
@@ -0,0 +1 @@
1
+ import{UIManager,findNodeHandle}from"react-native-web";export function getElementSize(ref,callback){if(!ref.current)return;var handle=findNodeHandle(ref.current);if(handle){UIManager.measure(handle,function(x,y,width,height){callback({width:width,height:height,x:x,y:y});});}}
@@ -0,0 +1 @@
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";export function formatTransform(transforms){return transforms.map(function(t){var _Object$entries$=_slicedToArray(Object.entries(t)[0],2),key=_Object$entries$[0],value=_Object$entries$[1];return`${key}(${value})`;}).join(' ');}
@@ -0,0 +1 @@
1
+ export function formatTransform(transforms){return transforms;}
@@ -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/actions/Breadcrumb.js";var _excluded=["items","onChange"];import{pipe,omit}from'ramda';import{IconLabel}from"../presentation/IconLabel";import{Link}from"./Link";import{Text}from"../text/Text";import{View}from"../structure/View";import{moveScale}from"../../theme/helpers/sizeScale";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function Breadcrumb(_ref){var _this=this;var items=_ref.items,onChange=_ref.onChange,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useSizeConverter('elementHeights','md'),useThemeComponentModifier('Breadcrumb'))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),sizeCode=_pipe2[0].sizeCode,props=_pipe2[1];var gap='sm';var handlePress=function handlePress(item,index){onChange==null?void 0:onChange(item,index);item.onPress==null?void 0:item.onPress(index);item.onClick==null?void 0:item.onClick(index);};return _jsx(View,Object.assign({className:"neko-breadcrumb",row:true,gap:gap,centerV:true},props,{children:items.map(function(item,index){var active=index===items.length-1;return _jsxs(View,{row:true,gap:gap,centerV:true,children:[_jsx(Link,{onPress:!active?function(){return handlePress(item,index);}:undefined,children:_jsx(IconLabel,Object.assign({color:active?'text':'text3',size:sizeCode,moveIconSizeScale:-2,strong:active},omit(['onPress','onClick'],item)))}),!active&&_jsx(Text,{text4:true,label:"/",size:moveScale(sizeCode,-1)})]},item.key||index);})}));}
@@ -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/actions/Button.js";var _excluded=["label","icon","textProps","iconProps","gap","invert","size"];import{pipe}from'ramda';import{AbsTouchableOpacity}from"../../abstractions/TouchableOpacity";import{IconLabel}from"../presentation/IconLabel";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useColorConverter}from"../../modifiers/colorConverter";import{useDefaultModifier}from"../../modifiers/default";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useFullColorModifier}from"../../modifiers/fullColor";import{useMarginModifier}from"../../modifiers/margin";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";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,1),sizeCode=_ref2[0].sizeCode;return{paddingH:sizeCode,paddingV:2,height:sizeCode,br:sizeCode,borderWidth:1,center:true};};export function Button(rootProps){var _pipe=pipe(useColorConverter('primary'),useSizeConverter('elementHeights','md'),useThemeComponentModifier('Button'),useDefaultModifier(DEFAULT_PROPS),useFullColorModifier,useSizeModifier,usePositionModifier,usePaddingModifier,useMarginModifier,useFlexModifier,useFlexWrapperModifier,useBackgroundModifier,useBorderModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],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,size=formattedProps.size,props=_objectWithoutProperties(formattedProps,_excluded);return _jsx(AbsTouchableOpacity,Object.assign({className:"neko-button neko-wave-click-effect"},props,{children:_jsx(IconLabel,{center:true,color:fontColor,size:sizeCode,label:label,icon:icon,gap:gap,invert:invert,textProps:Object.assign({strong:true},textProps),iconProps:iconProps})}));}
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/actions/Button.js";var _excluded=["label","icon","textProps","iconProps","gap","invert","size"];import{pipe}from'ramda';import{AbsTouchableOpacity}from"../../abstractions/TouchableOpacity";import{IconLabel}from"../presentation/IconLabel";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useColorConverter}from"../../modifiers/colorConverter";import{useDefaultModifier}from"../../modifiers/default";import{useDisplayModifier}from"../../modifiers/display";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useFullColorModifier}from"../../modifiers/fullColor";import{useMarginModifier}from"../../modifiers/margin";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";import{useSizeConverter}from"../../modifiers/sizeConverter";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(_ref){var _ref2=_slicedToArray(_ref,1),sizeCode=_ref2[0].sizeCode;return{paddingH:sizeCode,paddingV:2,height:sizeCode,br:sizeCode,border:1,center:true};};export function Button(rootProps){var _pipe=pipe(useColorConverter('primary'),useSizeConverter('elementHeights','md'),useThemeComponentModifier('Button'),useDefaultModifier(DEFAULT_PROPS),useFullColorModifier,useDisplayModifier,useStateModifier,useSizeModifier,usePositionModifier,usePaddingModifier,useMarginModifier,useFlexModifier,useFlexWrapperModifier,useBackgroundModifier,useBorderModifier)([{},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,size=formattedProps.size,props=_objectWithoutProperties(formattedProps,_excluded);return _jsx(AbsTouchableOpacity,Object.assign({className:"neko-button neko-wave-click-effect",type:"button"},props,{children:_jsx(IconLabel,{center:true,color:fontColor,size:sizeCode,label:label,icon:icon,gap:gap,invert:invert,textProps:Object.assign({strong:true},textProps),iconProps:iconProps,loading:loading})}));}
@@ -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/actions/Dropdown.js";var _excluded=["items"],_excluded2=["onChange","label","trigger","icon","strong","color","popoverProps","iconLabelProps","children"];import{pipe}from'ramda';import{IconLabel}from"../presentation/IconLabel";import{Link}from"./Link";import{Menu}from"./menu/Menu";import{Popover}from"../structure/popover/Popover";import{View}from"../structure/View";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";export function Dropdown(_ref){var _this=this;var items=_ref.items,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useThemeComponentModifier('Dropdown'))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_=_pipe2[0],formattedProps=_pipe2[1];var onChange=formattedProps.onChange,label=formattedProps.label,_formattedProps$trigg=formattedProps.trigger,trigger=_formattedProps$trigg===void 0?'click':_formattedProps$trigg,icon=formattedProps.icon,strong=formattedProps.strong,color=formattedProps.color,popoverProps=formattedProps.popoverProps,iconLabelProps=formattedProps.iconLabelProps,children=formattedProps.children,props=_objectWithoutProperties(formattedProps,_excluded2);return _jsx(View,Object.assign({className:"neko-dropdown"},props,{children:_jsx(Popover,Object.assign({useParentMinWidth:true,placement:"bottomLeft",trigger:trigger,padding:"xs"},popoverProps,{renderContent:function renderContent(_ref2){var onClose=_ref2.onClose;var handleChange=function handleChange(){if(onChange)onChange.apply(void 0,arguments);onClose();};return _jsx(Menu,{vertical:true,items:items,gap:0,onChange:handleChange,linkPaddingH:"xs"});},children:children||_jsx(Link,{children:_jsx(IconLabel,Object.assign({label:label||'---',icon:icon||'arrow-down-s-fill',strong:strong,color:color,invert:true},iconLabelProps))})}))}));}
@@ -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/actions/Link.js";var _excluded=["label","children","onPress"];import{pipe,is}from'ramda';import{AbsTouchableOpacity}from"../../abstractions/TouchableOpacity";import{Text}from"../text/Text";import{useDisplayModifier}from"../../modifiers/display";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useMarginModifier}from"../../modifiers/margin";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";import{useSizeModifier}from"../../modifiers/size";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";export function Link(_ref){var label=_ref.label,children=_ref.children,onPress=_ref.onPress,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useThemeComponentModifier('Link'),useSizeModifier,useDisplayModifier,usePositionModifier,usePaddingModifier,useMarginModifier,useFlexWrapperModifier,useFlexModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_=_pipe2[0],props=_pipe2[1];if(!!label||is(String,children)){children=_jsx(Text,Object.assign({primary:true},props,{children:label||children}));}return _jsx(AbsTouchableOpacity,Object.assign({className:"neko-link",link:true,onPress:!!props.disabled?undefined:onPress},props,{children:children}));}
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/Link.js";var _excluded=["label","children","href","target"];import{pipe,is}from'ramda';import{AbsTouchableOpacity}from"../../abstractions/TouchableOpacity";import{LoadingView}from"../state/LoadingView";import{Text}from"../text/Text";import{useAnimationModifier}from"../../modifiers/animation";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useColorConverter}from"../../modifiers/colorConverter";import{useDisplayModifier}from"../../modifiers/display";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useMarginModifier}from"../../modifiers/margin";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";import{useSizeModifier}from"../../modifiers/size";import{useStateModifier}from"../../modifiers/state";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";export function Link(_ref){var label=_ref.label,children=_ref.children,href=_ref.href,target=_ref.target,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useThemeComponentModifier('Link'),useBackgroundModifier,useColorConverter('primary'),useAnimationModifier,useSizeModifier,useFlexWrapperModifier,useDisplayModifier,useStateModifier,useBorderModifier,usePositionModifier,usePaddingModifier,useMarginModifier,useFlexModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],loading=_pipe2$.loading,color=_pipe2$.color,props=_pipe2[1];if(!!label||is(String,children)){children=_jsx(Text,Object.assign({color:color},props,{children:label||children}));}return _jsx(LoadingView,{active:loading,noWrapper:true,replaceChildren:true,children:_jsx(AbsTouchableOpacity,Object.assign({className:"neko-link",link:true,target:target,href:!props.disabled&&href},props,{children:children}))});}
@@ -1 +1 @@
1
- export*from"./Button";export*from"./Link";
1
+ export*from"./Button";export*from"./Link";export*from"./Dropdown";export*from"./Breadcrumb";export*from"./menu/Menu";
@@ -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/actions/menu/HorizontalMenu.js";var _excluded=["item","linkPaddingH","handlePress","linkProps","activeIndex","activeKey","activeColor","color","sizeCode","index"],_excluded2=["active","key"],_excluded3=["gap","height","items","onChange","onChangeIndex"];import{omit,pipe}from'ramda';import React from'react';import{IconText}from"../../presentation/IconLabel";import{Link}from"../Link";import{SubmenuWrapper}from"./SubmenuWrapper";import{View}from"../../structure/View";import{useColorConverter}from"../../../modifiers/colorConverter";import{useSizeConverter}from"../../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";function Item(_ref){var item=_ref.item,_ref$linkPaddingH=_ref.linkPaddingH,linkPaddingH=_ref$linkPaddingH===void 0?'md':_ref$linkPaddingH,handlePress=_ref.handlePress,linkProps=_ref.linkProps,activeIndex=_ref.activeIndex,activeKey=_ref.activeKey,_ref$activeColor=_ref.activeColor,activeColor=_ref$activeColor===void 0?'primary':_ref$activeColor,color=_ref.color,sizeCode=_ref.sizeCode,index=_ref.index,props=_objectWithoutProperties(_ref,_excluded);activeColor=activeColor||'primary';var _omit=omit(['onClick','onPress'],item),active=_omit.active,key=_omit.key,childProps=_objectWithoutProperties(_omit,_excluded2);if(!active&&activeIndex>=0)active=activeIndex===index;if(!active&&activeKey!==undefined)active=activeKey===item.key;return _jsx(SubmenuWrapper,{item:item,onChange:handlePress,activeKey:activeKey,color:color,placement:"bottomRight",hideIcon:true,children:_jsx(Link,Object.assign({fullH:true,center:true,paddingH:linkPaddingH},linkProps,{onPress:function onPress(){return handlePress(item,index);},children:_jsx(IconText,Object.assign({color:active?activeColor:color,fullH:true,marginT:3,borderB:3,borderColor:active?activeColor:'transparent',transition:"border-color 0.6s ease",size:sizeCode},childProps))}),key||index)});}export function HorizontalMenu(rootProps){var _this=this;var _pipe=pipe(useColorConverter(),useSizeConverter('icons','md'),useThemeComponentModifier('HorizontalMenu'))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],sizeCode=_pipe2$.sizeCode,color=_pipe2$.color,formattedProps=_pipe2[1];var _formattedProps$gap=formattedProps.gap,gap=_formattedProps$gap===void 0?'sm':_formattedProps$gap,_formattedProps$heigh=formattedProps.height,height=_formattedProps$heigh===void 0?50:_formattedProps$heigh,items=formattedProps.items,onChange=formattedProps.onChange,onChangeIndex=formattedProps.onChangeIndex,props=_objectWithoutProperties(formattedProps,_excluded3);var handlePress=React.useCallback(function(item,index){if(!!onChange)onChange(item,index);if(!!onChangeIndex)onChangeIndex(index);if(!!item.onPress)item.onPress();if(!!item.onClick)item.onClick();},[onChange,onChangeIndex]);return _jsx(View,Object.assign({className:"neko-horizontal-menu",row:true,gap:gap,height:height,centerV:true},props,{children:items.map(function(item,index){return _jsx(Item,Object.assign({item:item,handlePress:handlePress,color:color,sizeCode:sizeCode,index:index},props),item.key||index);})}));}
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/menu/Menu.js";var _excluded=["vertical"];import{HorizontalMenu}from"./HorizontalMenu";import{VerticalMenu}from"./VerticalMenu";import{jsx as _jsx}from"react/jsx-runtime";export function Menu(_ref){var vertical=_ref.vertical,props=_objectWithoutProperties(_ref,_excluded);if(!!vertical)return _jsx(VerticalMenu,Object.assign({},props));return _jsx(HorizontalMenu,Object.assign({},props));}
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/actions/menu/SubmenuWrapper.js";var _excluded=["item","children","placement","hideIcon"];import{Dropdown}from"../Dropdown";import{Icon}from"../../presentation/Icon";import{View}from"../../structure/View";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function SubmenuWrapper(_ref){var _item$subItems;var item=_ref.item,children=_ref.children,placement=_ref.placement,hideIcon=_ref.hideIcon,props=_objectWithoutProperties(_ref,_excluded);if(!((_item$subItems=item.subItems)!=null&&_item$subItems.length))return children;return _jsx(Dropdown,Object.assign({popoverProps:{placement:placement||'rightTop'},items:item.subItems,trigger:"hover"},props,{children:_jsxs(View,{flex:true,row:true,gap:"xxs",center:true,fullH:true,children:[children,!hideIcon&&_jsx(Icon,{name:"arrow-right-s-line"})]})}));}
@@ -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/actions/menu/VerticalMenu.js";var _excluded=["item","linkPaddingH","linkPaddingV","handlePress","linkProps","activeIndex","activeKey","activeColor","color","sizeCode","index"],_excluded2=["active","key"],_excluded3=["item"],_excluded4=["gap","items","onChange","onChangeIndex"];import{omit,pipe}from'ramda';import React from'react';import tinycolor from'tinycolor2';import{Divider}from"../../helpers/Separator";import{IconText}from"../../presentation/IconLabel";import{Link}from"../Link";import{SubmenuWrapper}from"./SubmenuWrapper";import{Text}from"../../text/Text";import{View}from"../../structure/View";import{useColorConverter}from"../../../modifiers/colorConverter";import{useSizeConverter}from"../../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../../modifiers/themeComponent";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";function LinkItem(_ref){var item=_ref.item,_ref$linkPaddingH=_ref.linkPaddingH,linkPaddingH=_ref$linkPaddingH===void 0?'md':_ref$linkPaddingH,_ref$linkPaddingV=_ref.linkPaddingV,linkPaddingV=_ref$linkPaddingV===void 0?'xs':_ref$linkPaddingV,handlePress=_ref.handlePress,linkProps=_ref.linkProps,activeIndex=_ref.activeIndex,activeKey=_ref.activeKey,_ref$activeColor=_ref.activeColor,activeColor=_ref$activeColor===void 0?'primary':_ref$activeColor,color=_ref.color,sizeCode=_ref.sizeCode,index=_ref.index,props=_objectWithoutProperties(_ref,_excluded);activeColor=activeColor||'primary';var _omit=omit(['onClick','onPress'],item),active=_omit.active,key=_omit.key,childProps=_objectWithoutProperties(_omit,_excluded2);if(!active&&activeIndex>=0)active=activeIndex===index;if(!active&&activeKey!==undefined)active=activeKey===item.key;var bg=active&&tinycolor(color).setAlpha(0.03).toString();return _jsx(SubmenuWrapper,{item:item,onChange:handlePress,activeKey:activeKey,color:color,children:_jsx(Link,Object.assign({fullW:true,center:true,paddingH:linkPaddingH,paddingV:linkPaddingV,marginR:3,borderL:3,marginV:!!active&&-4,borderColor:active?activeColor:'transparent',bg:bg,transition:"border-color 0.5s ease, background 0.3s ease"},linkProps,{onPress:function onPress(){return handlePress(item,index);},children:_jsx(IconText,Object.assign({paddingV:active&&4,color:active?activeColor:color,fullW:true,size:sizeCode},childProps))}))});}function DividerItem(_ref2){var _ref2$linkPaddingH=_ref2.linkPaddingH,linkPaddingH=_ref2$linkPaddingH===void 0?'md':_ref2$linkPaddingH,item=_ref2.item;var content=_jsx(Divider,Object.assign({height:"xxs",line:true},item));if(!item.label)return content;return _jsxs(_Fragment,{children:[content,_jsx(Text,Object.assign({size:"xs",color:"text4",paddingH:linkPaddingH||'md',strong:true},item))]});}function Item(_ref3){var item=_ref3.item,props=_objectWithoutProperties(_ref3,_excluded3);if(item.type==='divider')return _jsx(DividerItem,Object.assign({item:item},props));return _jsx(LinkItem,Object.assign({item:item},props));}export function VerticalMenu(rootProps){var _this=this;var _pipe=pipe(useColorConverter('text'),useSizeConverter('icons','md'),useThemeComponentModifier('VerticalMenu'))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],sizeCode=_pipe2$.sizeCode,color=_pipe2$.color,formattedProps=_pipe2[1];var _formattedProps$gap=formattedProps.gap,gap=_formattedProps$gap===void 0?'sm':_formattedProps$gap,items=formattedProps.items,onChange=formattedProps.onChange,onChangeIndex=formattedProps.onChangeIndex,props=_objectWithoutProperties(formattedProps,_excluded4);var handlePress=React.useCallback(function(item,index){if(!!onChange)onChange(item,index);if(!!onChangeIndex)onChangeIndex(index);if(!!item.onPress)item.onPress();if(!!item.onClick)item.onClick();},[onChange,onChangeIndex]);return _jsx(View,Object.assign({className:"neko-vertical-menu",gap:gap,width:"100%"},props,{children:items.map(function(item,index){return _jsx(Item,Object.assign({item:item,handlePress:handlePress,color:color,sizeCode:sizeCode,index:index},props),item.key||index);})}));}
@@ -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/animations/AnimatedView.js";var _excluded=["children"];import{pipe}from'ramda';import{AbsAnimatedView}from"../../abstractions/AnimatedView";import{useAnimatedEffects}from"../../modifiers/animations/animatedEffects";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useDisplayModifier}from"../../modifiers/display";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useMarginModifier}from"../../modifiers/margin";import{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 AnimatedView(_ref){var children=_ref.children,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useAnimatedEffects,useThemeComponentModifier('AnimatedView'),useFlexWrapperModifier,useDisplayModifier,useStateModifier,useSizeModifier,usePositionModifier,useOverflowModifier,usePaddingModifier,useMarginModifier,useFlexModifier,useBackgroundModifier,useBorderModifier,useShadowModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],lazy=_pipe2$.lazy,render=_pipe2$.render,hasOpened=_pipe2$.hasOpened,props=_pipe2[1];if(lazy&&!hasOpened)return null;if(!render)return null;return _jsx(AbsAnimatedView,Object.assign({className:"neko-animated-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/animations/DraggableSlideView.js";var _excluded=["children"];import{pipe}from'ramda';import{AbsDraggableSlideView}from"../../abstractions/DraggableSlideView";import{useAnimationModifier}from"../../modifiers/animation";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useDisplayModifier}from"../../modifiers/display";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useMarginModifier}from"../../modifiers/margin";import{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 DraggableSlideView(_ref){var children=_ref.children,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useThemeComponentModifier('DraggableSlideView'),useFlexWrapperModifier,useDisplayModifier,useAnimationModifier,useStateModifier,useSizeModifier,usePositionModifier,useOverflowModifier,usePaddingModifier,useMarginModifier,useFlexModifier,useBackgroundModifier,useBorderModifier,useShadowModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_=_pipe2[0],props=_pipe2[1];return _jsx(AbsDraggableSlideView,Object.assign({className:"neko-draggable-slide-view"},props,{children:children}));}
@@ -0,0 +1 @@
1
+ export*from"./AnimatedView";export*from"./DraggableSlideView";
@@ -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/calendar/DayPicker.js";var _excluded=["initialValue","value","onChange"];import React from'react';import dayjs from'dayjs';import{Col}from"../structure/Col";import{Grid}from"../structure/Row";import{Icon}from"../presentation/Icon";import{Link}from"../actions/Link";import{Text}from"../text/Text";import{View}from"../structure/View";import{useCalendarDays}from"./_helpers/calendarDays";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function DayPicker(_ref){var _this=this;var initialValue=_ref.initialValue,value=_ref.value,onChange=_ref.onChange,props=_objectWithoutProperties(_ref,_excluded);var _React$useState=React.useState(dayjs(initialValue)),_React$useState2=_slicedToArray(_React$useState,2),localValue=_React$useState2[0],setLocalValue=_React$useState2[1];value=value===undefined?localValue:value;var handleChange=function handleChange(v){setLocalValue(v);onChange==null?void 0:onChange(v);};var _React$useState3=React.useState(function(){return initialValue?dayjs(initialValue).startOf('month'):dayjs().startOf('month');}),_React$useState4=_slicedToArray(_React$useState3,2),currentMonth=_React$useState4[0],setCurrentMonth=_React$useState4[1];var prevMonth=function prevMonth(){return setCurrentMonth(function(m){return m.subtract(1,'month');});};var nextMonth=function nextMonth(){return setCurrentMonth(function(m){return m.add(1,'month');});};var prevYear=function prevYear(){return setCurrentMonth(function(m){return m.subtract(1,'year');});};var nextYear=function nextYear(){return setCurrentMonth(function(m){return m.add(1,'year');});};var _useCalendarDays=useCalendarDays(currentMonth),weekdayLabels=_useCalendarDays.weekdayLabels,cells=_useCalendarDays.cells;return _jsxs(View,Object.assign({className:"neko-day-picker",width:250},props,{children:[_jsxs(View,{className:"neko-date-picker-header",row:true,centerV:true,gap:"xxs",height:30,children:[_jsx(Link,{onPress:prevYear,"aria-label":"Previous year",padding:"xxs",paddingL:0,children:_jsx(Icon,{name:"arrow-left-double-line"})}),_jsx(Link,{onPress:prevMonth,"aria-label":"Previous month",padding:"xxs",children:_jsx(Icon,{name:"arrow-left-s-line"})}),_jsx(Text,{center:true,flex:true,children:currentMonth.format('MMM YYYY')}),_jsx(Link,{onPress:nextMonth,"aria-label":"Next month",padding:"xxs",children:_jsx(Icon,{name:"arrow-right-s-line"})}),_jsx(Link,{onPress:nextYear,"aria-label":"Next year",padding:"xxs",paddingR:0,children:_jsx(Icon,{name:"arrow-right-double-line"})})]}),_jsx(View,{className:"neko-day-picker-week",row:true,center:true,gap:"sm",children:weekdayLabels.map(function(w){return _jsx(View,{flex:true,height:30,center:true,children:_jsx(Text,{center:true,sm:true,text4:true,children:w})},w);})}),_jsx(Grid,{className:"neko-day-picker-days",colSpan:24/7,gap:"sm",children:cells.map(function(val,idx){var dateVal=currentMonth.date(val);var isActive=dateVal.isSame(value,'day');return _jsx(Col,{className:"day-cell",center:true,children:_jsx(Link,{ratio:1,width:30,center:true,br:"md",onPress:function onPress(){return!!val&&handleChange(dateVal);},bg:isActive&&'primary',children:_jsx(Text,{sm:true,text2:true,center:true,strong:isActive,children:val!=null?val:''})})},idx);})})]}));}
@@ -0,0 +1 @@
1
+ import React from'react';export function useCalendarDays(currentMonth){return React.useMemo(function(){var startWeekday=currentMonth.startOf('month').day();var daysInMonth=currentMonth.daysInMonth();var blanks=Array.from({length:startWeekday},function(){return null;});var days=Array.from({length:daysInMonth},function(_,i){return i+1;});var cells=[].concat(blanks,days);var weekdayLabels=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];return{weekdayLabels:weekdayLabels,cells:cells};},[currentMonth.month(),currentMonth.year()]);}
@@ -0,0 +1 @@
1
+ export*from"./DayPicker";
@@ -0,0 +1 @@
1
+ export*from"./notifications/NotificationsHandler";
@@ -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/feedback/notifications/Notification.js";var _excluded=["time"];import React from'react';import{AnimatedView}from"../../animations/AnimatedView";import{Icon}from"../../presentation/Icon";import{Link}from"../../actions/Link";import{ResultBar}from"../../presentation/ResultBar";import{jsx as _jsx}from"react/jsx-runtime";export function Notification(_ref){var time=_ref.time,props=_objectWithoutProperties(_ref,_excluded);var _React$useState=React.useState(true),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];React.useEffect(function(){setTimeout(function(){return setOpen(false);},time-500);},[]);return _jsx(AnimatedView,{open:open,className:"neko-notification",slide:{from:'right'},fade:true,zIndex:120,maxWidth:"100%",bg:"overlayBG",br:"sm",unmountOnClose:true,children:_jsx(ResultBar,Object.assign({},props,{rightContent:_jsx(Link,{onPress:function onPress(){return setOpen(false);},children:_jsx(Icon,{name:"close-line",text4:true})})}))});}
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _excluded=["key"];var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/feedback/notifications/NotificationsHandler.js";import{is}from'ramda';import React from'react';import{Notification}from"./Notification";import{SafeAreaView}from"../../structure/SafeAreaView";import{View}from"../../structure/View";import{useResponsiveValue}from"../../../responsive/responsiveHooks";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var NotificationsContext=React.createContext(null);export var useNotifications=function useNotifications(){return React.useContext(NotificationsContext)||{};};var idCounter=0;export function useNotifier(){var _useNotifications=useNotifications(),add=_useNotifications.add,remove=_useNotifications.remove;var notify=function notify(data,opts,type){var key=++idCounter;var time=(opts==null?void 0:opts.time)||6000;if(is(String,data))data={title:data};var timerId=setTimeout(function(){return remove(key);},time);add(key,Object.assign({},data,{type:type,opts:opts,timerId:timerId,time:time}));};return{notify:notify,info:function info(data,opts){return notify(data,opts,'info');},error:function error(data,opts){return notify(data,opts,'error');},warning:function warning(data,opts){return notify(data,opts,'warning');},success:function success(data,opts){return notify(data,opts,'success');}};}export function NotificationsHandler(_ref){var _this=this;var children=_ref.children;var width=useResponsiveValue({sm:'100%',df:400});var _React$useState=React.useState([]),_React$useState2=_slicedToArray(_React$useState,2),messages=_React$useState2[0],setMessages=_React$useState2[1];var add=React.useCallback(function(key,data){setMessages(function(prev){return[Object.assign({key:key},data)].concat(_toConsumableArray(prev));});},[]);var remove=React.useCallback(function(key){setMessages(function(prev){return prev.filter(function(p){return p.key!==key;});});},[]);var value=React.useMemo(function(){return{add:add,remove:remove};},[add,remove]);return _jsxs(NotificationsContext.Provider,{value:value,children:[children,!!messages.length&&_jsx(View,{fixed:true,top:0,right:0,padding:"md",width:width,maxWidth:"100%",pointerEvents:"box-none",children:_jsx(SafeAreaView,{gap:"xs",children:messages.map(function(_ref2){var key=_ref2.key,item=_objectWithoutProperties(_ref2,_excluded);return _jsx(Notification,Object.assign({},item),key);})})})]});}
@@ -1 +1 @@
1
- var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/Form.js";import React from'react';import{FormWrapperComponent}from"./FormWrapperComponent";import{jsx as _jsx}from"react/jsx-runtime";var FormContext=React.createContext(null);export var useFormInstance=function useFormInstance(){return React.useContext(FormContext);};export function Form(_ref){var form=_ref.form,children=_ref.children;return _jsx(FormContext.Provider,{value:form,children:_jsx(FormWrapperComponent,{form:form,children:children})});}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/Form.js";var _excluded=["form","onSubmit","initialValues","children","loading","disabled"];import React from'react';import{FormWrapperComponent}from"./FormWrapperComponent";import{LoadingView}from"../state/LoadingView";import{useNewForm}from"./useNewForm";import{jsx as _jsx}from"react/jsx-runtime";var FormContext=React.createContext(null);export var useFormState=function useFormState(){return React.useContext(FormContext);};export var useFormInstance=function useFormInstance(){var _useFormState;return(_useFormState=useFormState())==null?void 0:_useFormState.form;};export var useForm=useFormInstance;export function Form(_ref){var form=_ref.form,onSubmit=_ref.onSubmit,initialValues=_ref.initialValues,children=_ref.children,loading=_ref.loading,disabled=_ref.disabled,props=_objectWithoutProperties(_ref,_excluded);var defaultForm=useNewForm({onSubmit:onSubmit,initialValues:initialValues});form=form||defaultForm;return _jsx(FormContext.Provider,{value:{loading:loading,disabled:disabled,form:form},children:_jsx(LoadingView,{active:loading,noWrapper:true,children:_jsx(FormWrapperComponent,Object.assign({form:form,gap:"md"},props,{children:children}))})});}
@@ -1 +1 @@
1
- import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormGroup.js";import React from'react';import{jsx as _jsx}from"react/jsx-runtime";var FormGroupContext=React.createContext(null);var useGroupPath=function useGroupPath(){var _React$useContext;return((_React$useContext=React.useContext(FormGroupContext))==null?void 0:_React$useContext.path)||[];};export function useRelativePath(name,opts){var relative=opts.relative;var listPath=!!name?Array.isArray(name)?name:[name]:[];var parentPath=useGroupPath();if(!relative)return listPath;return[].concat(_toConsumableArray(parentPath),_toConsumableArray(listPath));}export function FormGroup(_ref){var name=_ref.name;var path=useRelativePath(name,{relative:true});var value={path:path};return _jsx(FormGroupContext.Provider,{value:value,children:children});}
1
+ import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormGroup.js";import React from'react';import{jsx as _jsx}from"react/jsx-runtime";var FormGroupContext=React.createContext(null);var useGroupPath=function useGroupPath(){var _React$useContext;return((_React$useContext=React.useContext(FormGroupContext))==null?void 0:_React$useContext.path)||[];};export function useRelativePath(name,opts){var isAbsolutePath=opts.isAbsolutePath;var listPath=!!name?Array.isArray(name)?name:[name]:[];var parentPath=useGroupPath();if(!!isAbsolutePath)return listPath;return[].concat(_toConsumableArray(parentPath),_toConsumableArray(listPath));}export function FormGroup(_ref){var name=_ref.name,children=_ref.children;var path=useRelativePath(name,{isAbsolutePath:false});var value={path:path};return _jsx(FormGroupContext.Provider,{value:value,children:children});}
@@ -1 +1 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormItem.js";import React from'react';import{FormGroup,useRelativePath}from"./FormGroup";import{Text}from"../text/Text";import{useFormInstance}from"./Form";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function FormItem(_ref){var name=_ref.name,relative=_ref.relative,children=_ref.children;var form=useFormInstance();var listPath=useRelativePath(name,{relative:relative});var _React$useState=React.useState(form.getFieldValue(listPath)),_React$useState2=_slicedToArray(_React$useState,2),value=_React$useState2[0],setValue=_React$useState2[1];var error=form.getError(listPath);React.useEffect(function(){return form.registerListener(listPath,function(val){return setValue(val);});},[listPath.join('$NEKOJOIN$')]);var handleChange=function handleChange(e){var _e$target$value,_e$target;var val=(_e$target$value=e==null?void 0:(_e$target=e.target)==null?void 0:_e$target.value)!=null?_e$target$value:e;form.setFieldValue(listPath,val);};var child=React.Children.only(children);var childWithProps=React.cloneElement(child,{value:value,onChange:handleChange});return _jsxs(FormGroup,{name:listPath,children:[childWithProps,error&&_jsx(Text,{color:"red",children:error})]});}
1
+ import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormItem.js";var _excluded=["name","label","isAbsolutePath","children","useDefaultValue"];import React from'react';import{FormGroup,useRelativePath}from"./FormGroup";import{Text}from"../text/Text";import{View}from"../structure/View";import{clearProps}from"../../modifiers/_helpers";import{useFormInstance,useFormState}from"./Form";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function FormItem(_ref){var name=_ref.name,label=_ref.label,isAbsolutePath=_ref.isAbsolutePath,children=_ref.children,useDefaultValue=_ref.useDefaultValue,props=_objectWithoutProperties(_ref,_excluded);var form=useFormInstance();var formState=useFormState();var listPath=useRelativePath(name,{isAbsolutePath:isAbsolutePath});var _React$useState=React.useState(form.getFieldValue(listPath)),_React$useState2=_slicedToArray(_React$useState,2),value=_React$useState2[0],setValue=_React$useState2[1];var error=form.getError(listPath);React.useEffect(function(){return form.registerListener(listPath,function(val){return setValue(val);});},[listPath.join('$NEKOJOIN$')]);var handleChange=function handleChange(e){var _e$target$value,_e$target;var val=(_e$target$value=e==null?void 0:(_e$target=e.target)==null?void 0:_e$target.value)!=null?_e$target$value:e;form.setFieldValue(listPath,val);};var valueKey='value';if(!!useDefaultValue)valueKey='defaultValue';var childProps=clearProps(_defineProperty(_defineProperty(_defineProperty({},valueKey,value===undefined?'':value),"onChange",handleChange),"disabled",(formState==null?void 0:formState.disabled)===true||undefined));var content;if(typeof children==='function'){content=children(childProps);}else{var child=React.Children.only(children);content=React.cloneElement(child,Object.assign({},child.props,childProps));}return _jsx(FormGroup,{name:listPath,children:_jsxs(View,Object.assign({},props,{children:[label&&_jsx(Text,{sm:true,marginB:"xxs",children:label}),content,error&&_jsx(Text,{color:"red",children:error})]}))});}
@@ -1 +1 @@
1
- import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormList.js";import React from'react';import{FormGroup,useRelativePath}from"./FormGroup";import{Text}from"../text/Text";import{useFormInstance}from"./Form";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var FormListContext=React.createContext(null);var useFormList=function useFormList(){return React.useContext(FormListContext);};export function FormList(_ref){var name=_ref.name,relative=_ref.relative,children=_ref.children;var form=useFormInstance();var listPath=useRelativePath(name,{relative:relative});var listPathStr=listPath.join('$NEKOJOIN$');var error=form.getError(listPath);var _React$useState=React.useState(function(){var initial=form.getFieldValue(listPath)||[];return initial.map(function(_,index){return{key:index,name:index};});}),_React$useState2=_slicedToArray(_React$useState,2),fields=_React$useState2[0],setFields=_React$useState2[1];React.useEffect(function(){return form.registerListener(listPath,function(val){if(Array.isArray(val)){setFields(val.map(function(_,index){return{key:index,name:index};}));}});},[listPathStr]);var add=function add(){var defaultValue=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var current=form.getFieldValue(listPath)||[];form.setFieldValue(listPath,[].concat(_toConsumableArray(current),[defaultValue]));};var addOn=function addOn(index){var defaultValue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var current=form.getFieldValue(listPath)||[];form.setFieldValue(listPath,[].concat(_toConsumableArray(current.slice(0,index)),[defaultValue],_toConsumableArray(current.slice(index))));};var replace=function replace(index,value){var current=form.getFieldValue(listPath)||[];form.setFieldValue(listPath,current.map(function(item,i){return i===index?value:item;}));};var move=function move(fromIndex,toIndex){var current=form.getFieldValue(listPath)||[];if(fromIndex<0||fromIndex>=current.length)return;if(toIndex<0||toIndex>=current.length)return;var item=current[fromIndex];var updated=_toConsumableArray(current);updated.splice(fromIndex,1);updated.splice(toIndex,0,item);form.setFieldValue(listPath,updated);};var remove=function remove(index){var current=form.getFieldValue(listPath)||[];form.setFieldValue(listPath,current.filter(function(_,i){return i!==index;}));};var actions=React.useMemo(function(){return{add:add,addOn:addOn,replace:replace,remove:remove,move:move};},[listPathStr]);return _jsx(FormGroup,{name:listPath,children:_jsxs(FormListContext.Provider,{value:actions,children:[typeof children==='function'?children(fields,actions):React.cloneElement(React.Children.only(children),Object.assign({fields:fields},actions)),error&&_jsx(Text,{color:"red",children:error})]})});}
1
+ import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormList.js";import React from'react';import{FormGroup,useRelativePath}from"./FormGroup";import{Text}from"../text/Text";import{useFormInstance}from"./Form";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var FormListContext=React.createContext(null);var useFormList=function useFormList(){return React.useContext(FormListContext);};export function FormList(_ref){var name=_ref.name,isAbsolutePath=_ref.isAbsolutePath,children=_ref.children;var form=useFormInstance();var listPath=useRelativePath(name,{isAbsolutePath:isAbsolutePath});var listPathStr=listPath.join('$NEKOJOIN$');var error=form.getError(listPath);var keyCounter=React.useRef(0);var keysMap=React.useRef(new WeakMap());var generateFields=function generateFields(items){if(!Array.isArray(items))return[];return items.map(function(item,index){var key;if(typeof item==='object'&&item!==null){key=keysMap.current.get(item);if(!key){key=`field_${keyCounter.current++}`;keysMap.current.set(item,key);}}else{key=`field_${keyCounter.current++}`;}return{key:key,name:index};});};var _React$useState=React.useState(function(){var initial=form.getFieldValue(listPath)||[];return generateFields(initial);}),_React$useState2=_slicedToArray(_React$useState,2),fields=_React$useState2[0],setFields=_React$useState2[1];React.useEffect(function(){return form.registerListener(listPath,function(val){setFields(generateFields(val));});},[listPathStr]);var add=function add(){var defaultValue=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var current=form.getFieldValue(listPath)||[];form.setFieldValue(listPath,[].concat(_toConsumableArray(current),[defaultValue]));};var addOn=function addOn(index){var defaultValue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var current=form.getFieldValue(listPath)||[];form.setFieldValue(listPath,[].concat(_toConsumableArray(current.slice(0,index)),[defaultValue],_toConsumableArray(current.slice(index))));};var replace=function replace(index,value){var current=form.getFieldValue(listPath)||[];form.setFieldValue(listPath,current.map(function(item,i){return i===index?value:item;}));};var duplicate=function duplicate(index){var current=form.getFieldValue(listPath)||[];var value=current[index];if(!value)return;var clonedValue=typeof value==='object'?Object.assign({},value):value;addOn(index+1,clonedValue);};var move=function move(fromIndex,toIndex){var current=form.getFieldValue(listPath)||[];if(fromIndex<0||fromIndex>=current.length)return;if(toIndex<0||toIndex>=current.length)return;var item=current[fromIndex];var updated=_toConsumableArray(current);updated.splice(fromIndex,1);updated.splice(toIndex,0,item);form.setFieldValue(listPath,updated);};var remove=function remove(index){var current=form.getFieldValue(listPath)||[];form.setFieldValue(listPath,current.filter(function(_,i){return i!==index;}));};var actions=React.useMemo(function(){return{add:add,addOn:addOn,replace:replace,remove:remove,move:move,duplicate:duplicate};},[listPathStr]);var content;if(typeof children==='function'){content=children(fields,actions);}else{var child=React.Children.only(children);content=React.cloneElement(child,Object.assign({},child.props,{fields:fields},actions));}return _jsx(FormGroup,{name:listPath,children:_jsxs(FormListContext.Provider,{value:actions,children:[content,error&&_jsx(Text,{color:"red",children:error})]})});}
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormWrapperComponent.js";var _excluded=["children","form"];import{jsx as _jsx}from"react/jsx-runtime";export function FormWrapperComponent(_ref){var children=_ref.children,form=_ref.form,props=_objectWithoutProperties(_ref,_excluded);var handleSubmit=function handleSubmit(e){e.preventDefault();form.handleSubmit();};return _jsx("form",{onSubmit:handleSubmit,children:children});}
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormWrapperComponent.js";var _excluded=["children","form"];import{pipe}from'ramda';import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useDisplayModifier}from"../../modifiers/display";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useFormState}from"./Form";import{useMarginModifier}from"../../modifiers/margin";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";import{useShadowModifier}from"../../modifiers/shadow";import{useSizeModifier}from"../../modifiers/size";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function FormWrapperComponent(_ref){var children=_ref.children,form=_ref.form,rootProps=_objectWithoutProperties(_ref,_excluded);var formState=useFormState();var _pipe=pipe(useDisplayModifier,useSizeModifier,usePositionModifier,usePaddingModifier,useMarginModifier,useFlexWrapperModifier,useFlexModifier,useBackgroundModifier,useBorderModifier,useShadowModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_=_pipe2[0],props=_pipe2[1];var handleSubmit=function handleSubmit(e){e.preventDefault();if(formState!=null&&formState.loading||formState!=null&&formState.disabled)return;form.handleSubmit();};return _jsxs("form",Object.assign({onSubmit:handleSubmit},props,{children:[children,_jsx("input",{type:"submit",style:{display:'none'}})]}));}
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["children"];import React from'react';export function FormWrapperComponent(_ref){var children=_ref.children,props=_objectWithoutProperties(_ref,_excluded);return children;}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/FormWrapperComponent.native.js";var _excluded=["children"];import{View}from"../structure/View";import{jsx as _jsx}from"react/jsx-runtime";export function FormWrapperComponent(_ref){var children=_ref.children,props=_objectWithoutProperties(_ref,_excluded);return _jsx(View,Object.assign({},props,{children:children}));}
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/form/SubmitButton.js";var _excluded=["form","disabled"];import{Button}from"../actions/Button";import{useFormInstance,useFormState}from"./Form";import{jsx as _jsx}from"react/jsx-runtime";export function SubmitButton(_ref){var form=_ref.form,disabled=_ref.disabled,props=_objectWithoutProperties(_ref,_excluded);var formState=useFormState();var contextForm=useFormInstance();form=form||contextForm;disabled=(formState==null?void 0:formState.disabled)||disabled;var handleSubmit=function handleSubmit(){if(!form){console.error('No form provided to useWatch. Pass it as params or wrap it inside a <Form> component.');return;}form.handleSubmit();};return _jsx(Button,Object.assign({},props,{disabled:disabled,onPress:handleSubmit}));}
@@ -1 +1 @@
1
- export*from"./Form";export*from"./FormItem";export*from"./FormList";export*from"./FormWrapperComponent";export*from"./FormGroup";export*from"./useForm";export*from"./inputs";
1
+ export*from"./Form";export*from"./FormItem";export*from"./FormList";export*from"./FormWrapperComponent";export*from"./FormGroup";export*from"./useNewForm";export*from"./useWatch";export*from"./SubmitButton";
@@ -0,0 +1 @@
1
+ import{assocPath,path}from'ramda';import React from'react';export function useNewForm(){var _ref=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},_ref$initialValues=_ref.initialValues,initialValues=_ref$initialValues===void 0?{}:_ref$initialValues,validate=_ref.validate,onSubmit=_ref.onSubmit;var valuesRef=React.useRef(Object.assign({},initialValues));var errorsRef=React.useRef({});var listenersRef=React.useRef({});var formApi=React.useMemo(function(){var notify=function notify(name){var key=Array.isArray(name)?name.join('.'):name;if(listenersRef.current[key]){listenersRef.current[key].forEach(function(cb){return cb(path(name,valuesRef.current));});}};var setFieldValue=function setFieldValue(name,value){valuesRef.current=assocPath(name,value,valuesRef.current);notify(name);};var getFieldValue=function getFieldValue(name){return path(name,valuesRef.current);};var getError=function getError(name){return path(name,errorsRef.current);};var setError=function setError(name,error){errorsRef.current=assocPath(name,error,errorsRef.current);};var registerListener=function registerListener(name,cb){var key=Array.isArray(name)?name.join('.'):name;if(!listenersRef.current[key]){listenersRef.current[key]=[];}listenersRef.current[key].push(cb);return function(){listenersRef.current[key]=listenersRef.current[key].filter(function(fn){return fn!==cb;});};};var validateForm=function validateForm(){if(!validate)return true;var newErrors=validate(valuesRef.current)||{};errorsRef.current=newErrors;return Object.keys(newErrors).length===0;};var handleSubmit=function handleSubmit(){var isValid=validateForm();if(!isValid)return;console.log('SUBMIT');onSubmit(valuesRef.current);};return{setFieldValue:setFieldValue,getFieldValue:getFieldValue,getError:getError,setError:setError,registerListener:registerListener,handleSubmit:handleSubmit,valuesRef:valuesRef};},[validate,onSubmit]);return formApi;}
@@ -0,0 +1 @@
1
+ import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import React from'react';import{useFormInstance}from"./Form";export function useWatch(name){var _ref=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},form=_ref.form;var contextForm=useFormInstance();form=form||contextForm;var _React$useState=React.useState(function(){var _form;return(_form=form)==null?void 0:_form.getFieldValue(name);}),_React$useState2=_slicedToArray(_React$useState,2),value=_React$useState2[0],setValue=_React$useState2[1];React.useEffect(function(){if(!form){console.error('No form provided to useWatch. Pass it as params or wrap it inside a <Form> component.');return;}setValue(form.getFieldValue(name));var unsubscribe=form.registerListener(name,function(newValue){setValue(newValue);});return unsubscribe;},[form,name]);return value;}export function useWatchAll(form){var contextForm=useFormInstance();form=form||contextForm;var _React$useState3=React.useState(function(){var _form2;return((_form2=form)==null?void 0:_form2.valuesRef.current)||{};}),_React$useState4=_slicedToArray(_React$useState3,2),values=_React$useState4[0],setValues=_React$useState4[1];var watchedFieldsRef=React.useRef(new Set());React.useEffect(function(){if(!form)return;setValues(Object.assign({},form.valuesRef.current));var checkForNewFields=function checkForNewFields(){var currentFields=Object.keys(form.valuesRef.current);var unsubscribers=[];currentFields.forEach(function(field){if(!watchedFieldsRef.current.has(field)){watchedFieldsRef.current.add(field);var unsub=form.registerListener(field,function(){setValues(Object.assign({},form.valuesRef.current));});unsubscribers.push(unsub);}});return unsubscribers;};var unsubscribers=checkForNewFields();var interval=setInterval(function(){var newUnsubs=checkForNewFields();unsubscribers.push.apply(unsubscribers,_toConsumableArray(newUnsubs));},100);return function(){clearInterval(interval);unsubscribers.forEach(function(unsub){return unsub();});watchedFieldsRef.current.clear();};},[form]);return values;}
@@ -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/helpers/LazyRender.js";var _excluded=["children","delay","whenVisible","destroyOffScreen","minHeight"];import React from'react';import{View}from"../structure/View";import{jsx as _jsx}from"react/jsx-runtime";export function LazyRender(_ref){var children=_ref.children,_ref$delay=_ref.delay,delay=_ref$delay===void 0?0:_ref$delay,_ref$whenVisible=_ref.whenVisible,whenVisible=_ref$whenVisible===void 0?false:_ref$whenVisible,_ref$destroyOffScreen=_ref.destroyOffScreen,destroyOffScreen=_ref$destroyOffScreen===void 0?false:_ref$destroyOffScreen,initMinHeight=_ref.minHeight,props=_objectWithoutProperties(_ref,_excluded);var ref=React.useRef(null);var _React$useState=React.useState(!whenVisible&&!delay),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var _React$useState3=React.useState(initMinHeight),_React$useState4=_slicedToArray(_React$useState3,2),minHeight=_React$useState4[0],setMinHeight=_React$useState4[1];React.useEffect(function(){if(!whenVisible)return;var observer=new IntersectionObserver(function(_ref2){var _ref3=_slicedToArray(_ref2,1),entry=_ref3[0];setOpen(function(open){if(entry.isIntersecting)return true;return destroyOffScreen?false:open;});},{threshold:0});if(ref.current)observer.observe(ref.current);return function(){if(ref.current)observer.unobserve(ref.current);};},[whenVisible,destroyOffScreen]);React.useEffect(function(){if(delay>0&&!whenVisible){var timer=setTimeout(function(){return setOpen(true);},delay);return function(){return clearTimeout(timer);};}},[]);React.useEffect(function(){if(ref.current&&open){setMinHeight(ref.current.offsetHeight);}},[open]);return _jsx(View,Object.assign({className:"neko-lazy-render"},props,{minHeight:minHeight,ref:ref,children:open?children:null}));}
@@ -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/helpers/LazyRender.native.js";var _excluded=["children","delay","whenVisible","destroyOffScreen","minHeight"];import{Dimensions}from"react-native-web";import React from'react';import{View}from"../structure/View";import{jsx as _jsx}from"react/jsx-runtime";export function LazyRender(_ref){var children=_ref.children,_ref$delay=_ref.delay,delay=_ref$delay===void 0?0:_ref$delay,_ref$whenVisible=_ref.whenVisible,whenVisible=_ref$whenVisible===void 0?false:_ref$whenVisible,_ref$destroyOffScreen=_ref.destroyOffScreen,destroyOffScreen=_ref$destroyOffScreen===void 0?false:_ref$destroyOffScreen,initMinHeight=_ref.minHeight,props=_objectWithoutProperties(_ref,_excluded);var ref=React.useRef(null);var _React$useState=React.useState(!whenVisible&&!delay),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var _React$useState3=React.useState(initMinHeight),_React$useState4=_slicedToArray(_React$useState3,2),minHeight=_React$useState4[0],setMinHeight=_React$useState4[1];var windowHeight=Dimensions.get('window').height;var checkVisibility=React.useCallback(function(){if(!ref.current)return;ref.current.measureInWindow(function(x,y,width,height){var isVisible=y+height>0&&y<windowHeight;setOpen(function(prev){if(isVisible)return true;return destroyOffScreen?false:prev;});});},[windowHeight,destroyOffScreen]);React.useEffect(function(){if(whenVisible){checkVisibility();var interval=setInterval(checkVisibility,100);return function(){return clearInterval(interval);};}},[whenVisible,checkVisibility]);React.useEffect(function(){if(delay>0&&!whenVisible){var timer=setTimeout(function(){return setOpen(true);},delay);return function(){return clearTimeout(timer);};}},[]);React.useEffect(function(){if(ref.current&&open){ref.current.measure(function(x,y,width,height){setMinHeight(height);});}},[open]);return _jsx(View,Object.assign({className:"neko-lazy-render"},props,{minHeight:minHeight,ref:ref,children:open?children:null}));}
@@ -0,0 +1 @@
1
+ import React from'react';import{usePortal}from"./PortalHandler";var idCounter=0;export function Portal(_ref){var children=_ref.children;var keyRef=React.useRef(++idCounter);var _usePortal=usePortal(),mount=_usePortal.mount,update=_usePortal.update,unmount=_usePortal.unmount;React.useEffect(function(){mount(keyRef.current,children);return function(){return unmount(keyRef.current);};},[]);React.useEffect(function(){update(keyRef.current,children);},[children]);return null;}
@@ -0,0 +1 @@
1
+ import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/helpers/PortalHandler.js";import React from'react';import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var PortalContext=React.createContext(null);export var usePortal=function usePortal(){return React.useContext(PortalContext)||{};};export function PortalHandler(_ref){var _this=this;var children=_ref.children;var _React$useState=React.useState([]),_React$useState2=_slicedToArray(_React$useState,2),portals=_React$useState2[0],setPortals=_React$useState2[1];var mount=React.useCallback(function(key,element){setPortals(function(prev){return[].concat(_toConsumableArray(prev),[{key:key,element:element}]);});},[]);var update=React.useCallback(function(key,element){setPortals(function(prev){return prev.map(function(p){return p.key===key?Object.assign({},p,{element:element}):p;});});},[]);var unmount=React.useCallback(function(key){setPortals(function(prev){return prev.filter(function(p){return p.key!==key;});});},[]);var value=React.useMemo(function(){return{mount:mount,update:update,unmount:unmount};},[mount,update,unmount]);return _jsxs(PortalContext.Provider,{value:value,children:[children,portals.map(function(p){return _jsx(React.Fragment,{children:p.element},p.key);})]});}
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["children"],_excluded2=["children"];import{useResponsiveValue}from"../../helpers/responsive";export function ResponsiveRender(props){var value=useResponsiveValue(props)||props.df;return typeof value==='function'?value():value;}export function HideOn(_ref){var children=_ref.children,props=_objectWithoutProperties(_ref,_excluded);var hide=useResponsiveValue(props);if(!!hide)return false;return children;}export function ShowOn(_ref2){var children=_ref2.children,props=_objectWithoutProperties(_ref2,_excluded2);var show=useResponsiveValue(props);if(!show)return false;return children;}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["children"],_excluded2=["children"];import{useResponsiveValue}from"../../responsive/responsiveHooks";export function ResponsiveRender(props){var value=useResponsiveValue(props)||props.df;return typeof value==='function'?value():value;}export function HideOn(_ref){var children=_ref.children,props=_objectWithoutProperties(_ref,_excluded);var hide=useResponsiveValue(props);if(!!hide)return false;return children;}export function ShowOn(_ref2){var children=_ref2.children,props=_objectWithoutProperties(_ref2,_excluded2);var show=useResponsiveValue(props);if(!show)return false;return children;}
@@ -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/helpers/Separator.js";var _excluded=["withLine","lineProps","lineWidth","lineHeight"];import{pipe}from'ramda';import{AbsView}from"../../abstractions/View";import{View}from"../structure/View";import{useColorConverter}from"../../modifiers/colorConverter";import{useDefaultModifier}from"../../modifiers/default";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useMarginModifier}from"../../modifiers/margin";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),_ref2$=_ref2[0],size=_ref2$.size,sizeCode=_ref2$.sizeCode,withLine=_ref2[1].withLine;return{height:withLine?2*size:size,br:sizeCode,center:true};};export function Separator(rootProps){var _pipe=pipe(useColorConverter('divider'),useSizeConverter('spaces','md'),useThemeComponentModifier('Separator'),useDefaultModifier(DEFAULT_PROPS),useSizeModifier,useMarginModifier,useFlexModifier,useFlexWrapperModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),color=_pipe2[0].color,formattedProps=_pipe2[1];var withLine=formattedProps.withLine,lineProps=formattedProps.lineProps,lineWidth=formattedProps.lineWidth,_formattedProps$lineH=formattedProps.lineHeight,lineHeight=_formattedProps$lineH===void 0?1:_formattedProps$lineH,props=_objectWithoutProperties(formattedProps,_excluded);return _jsx(AbsView,Object.assign({className:"neko-separator"},props,{children:!!withLine&&_jsx(View,Object.assign({bg:color,br:lineHeight,height:lineHeight,fullW:true,maxWidth:lineWidth,className:"neko-separator-line"},lineProps))}));}
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/helpers/Separator.js";var _excluded=["line","lineProps"];import{pipe,is}from'ramda';import{AbsView}from"../../abstractions/View";import{View}from"../structure/View";import{useColorConverter}from"../../modifiers/colorConverter";import{useDefaultModifier}from"../../modifiers/default";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useMarginModifier}from"../../modifiers/margin";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),_ref2$=_ref2[0],size=_ref2$.size,sizeCode=_ref2$.sizeCode,line=_ref2[1].line;return{height:!!line?2*size:size,br:sizeCode,center:true,fullW:true};};export function Separator(rootProps){var _pipe=pipe(useColorConverter('divider'),useSizeConverter('spaces','md'),useThemeComponentModifier('Separator'),useDefaultModifier(DEFAULT_PROPS),useSizeModifier,useMarginModifier,useFlexModifier,useFlexWrapperModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),color=_pipe2[0].color,formattedProps=_pipe2[1];var line=formattedProps.line,lineProps=formattedProps.lineProps,props=_objectWithoutProperties(formattedProps,_excluded);var lineHeight=is(Number,line)?line:1;return _jsx(AbsView,Object.assign({className:"neko-separator"},props,{children:!!line&&_jsx(View,Object.assign({bg:color,br:lineHeight,height:lineHeight,fullW:true,className:"neko-separator-line"},lineProps))}));}export var Divider=Separator;
@@ -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/helpers/VerticalView.js";var _excluded=["children","invert"];import React from'react';import{View}from"../structure/View";import{formatTransform}from"../../abstractions/helpers/transformStyle";import{getElementSize}from"../../abstractions/helpers/componentSize";import{jsx as _jsx}from"react/jsx-runtime";export function VerticalView(_ref){var children=_ref.children,invert=_ref.invert,props=_objectWithoutProperties(_ref,_excluded);var wrapperRef=React.useRef(null);var _React$useState=React.useState({}),_React$useState2=_slicedToArray(_React$useState,2),size=_React$useState2[0],setSize=_React$useState2[1];React.useLayoutEffect(function(){getElementSize(wrapperRef,setSize);},[]);var height=size.height,width=size.width;return _jsx(View,Object.assign({width:"100%",height:"100%"},props,{relative:true,ref:wrapperRef,children:_jsx(View,{style:{position:'absolute',width:height,height:width,transform:formatTransform([{rotate:!!invert?'90deg':'-90deg'}]),left:width/2-height/2,top:'50%',marginTop:-width/2},children:children})}));}
@@ -1 +1 @@
1
- export*from"./Separator";export*from"./Responsive";
1
+ export*from"./Separator";export*from"./Responsive";export*from"./VerticalView";export*from"./PortalHandler";export*from"./Portal";export*from"./LazyRender";
@@ -1 +1 @@
1
- export*from"./actions";export*from"./form";export*from"./presentation";export*from"./structure";export*from"./text";export*from"./helpers";
1
+ export*from"./actions";export*from"./animations";export*from"./form";export*from"./presentation";export*from"./structure";export*from"./text";export*from"./helpers";export*from"./inputs";export*from"./state";export*from"./layout";export*from"./table";export*from"./feedback";export*from"./calendar";
@@ -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/inputs/Checkbox.js";var _excluded=["value","onChange","disabled","initialValue"],_excluded2=["checkboxProps"],_excluded3=["option","selected","onChange","labelKey"];import{pipe}from'ramda';import React from'react';import{AbsHiddenInput}from"../../abstractions/HiddenInput";import{ContentLabel}from"../presentation/ContentLabel";import{Link}from"../actions/Link";import{Picker}from"./Picker";import{View}from"../structure/View";import{useColorConverter}from"../../modifiers/colorConverter";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function Checkbox(_ref){var value=_ref.value,onChange=_ref.onChange,disabled=_ref.disabled,initialValue=_ref.initialValue,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useColorConverter('primary'),useSizeConverter('elementHeights','md'),useThemeComponentModifier('Checkbox'))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],size=_pipe2$.size,sizeCode=_pipe2$.sizeCode,color=_pipe2$.color,props=_pipe2[1];var _React$useState=React.useState(initialValue),_React$useState2=_slicedToArray(_React$useState,2),localValue=_React$useState2[0],setLocalValue=_React$useState2[1];value=value===undefined?localValue:value;var toggle=function toggle(){if(!!disabled)return;setLocalValue(!value);onChange==null?void 0:onChange(!value);};return _jsxs(Link,{onPress:toggle,className:"neko-checkbox",disabled:disabled,children:[_jsx(AbsHiddenInput,{checked:value,onChange:toggle,type:"checkbox",disabled:disabled}),_jsx(ContentLabel,Object.assign({size:sizeCode,gap:8,content:_jsx(View,{height:size*0.65,ratio:1,border:2,padding:2,borderColor:color,br:3,center:true,children:!!value&&_jsx(View,{bg:color,br:2,flex:true,fullW:true,fullH:true})})},props))]});}export function CheckboxGroup(_ref2){var _this=this;var checkboxProps=_ref2.checkboxProps,props=_objectWithoutProperties(_ref2,_excluded2);return _jsx(Picker,Object.assign({},props,{multiple:true,renderOption:function renderOption(_ref3){var option=_ref3.option,selected=_ref3.selected,onChange=_ref3.onChange,labelKey=_ref3.labelKey,props=_objectWithoutProperties(_ref3,_excluded3);return _jsx(Checkbox,Object.assign({label:option[labelKey],value:selected,onChange:onChange},props,checkboxProps));}}));}
@@ -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/inputs/InputWrapper.js";var _excluded=["prefix","suffix","prefixIcon","suffixIcon","loading","error","children"];import{pipe,is}from'ramda';import React from'react';import{Icon}from"../presentation/Icon";import{Loading}from"../state/Loading";import{Text}from"../text/Text";import{View}from"../structure/View";import{useDefaultModifier}from"../../modifiers/default";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var DEFAULT_PROPS={fullW:'100%',paddingH:'sm',bg:'overlayBG',border:true,br:'md',row:true,gap:'sm'};export function InputWrapper(_ref){var prefix=_ref.prefix,suffix=_ref.suffix,prefixIcon=_ref.prefixIcon,suffixIcon=_ref.suffixIcon,loading=_ref.loading,error=_ref.error,children=_ref.children,rootProps=_objectWithoutProperties(_ref,_excluded);var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),hover=_React$useState2[0],setHover=_React$useState2[1];var inputRef=React.useRef();var _pipe=pipe(useSizeConverter('elementHeights','md'),useThemeComponentModifier('InputWrapper'),useDefaultModifier(DEFAULT_PROPS))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],size=_pipe2$.size,sizeCode=_pipe2$.sizeCode,onChange=_pipe2$.onChange,props=_pipe2[1];var handlePress=function handlePress(){var _inputRef$current;inputRef==null?void 0:(_inputRef$current=inputRef.current)==null?void 0:_inputRef$current.focus==null?void 0:_inputRef$current.focus();};if(!!prefix&&is(String,prefix))prefix=_jsx(Text,{children:prefix});if(!!suffix&&is(String,suffix))suffix=_jsx(Text,{children:suffix});if(!prefix&&!!prefixIcon)prefix=_jsx(Icon,{name:prefixIcon,size:sizeCode});if(!suffix&&!!suffixIcon)suffix=_jsx(Icon,{name:suffixIcon,size:sizeCode});if(!prefix&&!!error)suffix=_jsx(Icon,{name:"close-circle-fill",size:sizeCode,red:true});if(!!loading)suffix=_jsx(Loading,{size:sizeCode});var borderColor=!!hover?'primary_op40':'divider';if(!!error)borderColor='red_op40';var child=React.Children.only(children);var childWithProps=React.cloneElement(child,Object.assign({},child.props,{ref:inputRef,onChange:child.props.onChange||onChange}));return _jsxs(View,Object.assign({className:"neko-input-wrapper",height:size,onPress:handlePress,borderColor:borderColor,onMouseEnter:function onMouseEnter(){return setHover(true);},onMouseLeave:function onMouseLeave(){return setHover(false);}},props,{children:[!!prefix&&_jsx(View,{paddingV:5,fullHeight:true,center:true,children:prefix}),_jsx(View,{flex:true,fullH:true,children:childWithProps}),!!suffix&&_jsx(View,{paddingV:5,fullHeight:true,center:true,children:suffix})]}));}
@@ -0,0 +1 @@
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/inputs/Picker.js";var _excluded=["option","onChange","value","renderOption","useRawOption","multiple","labelKey","valueKey"],_excluded2=["value","initialValue","onChange","disabled","options","renderOption","colProps","useRawOption","multiple","valueKey","labelKey"];import React from'react';import{Col}from"../structure/Col";import{LoadingView}from"../state/LoadingView";import{Row}from"../structure/Row";import{useOptions}from"../../helpers/options";import{jsx as _jsx}from"react/jsx-runtime";function isSelected(value,option){var config=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};return!!config.multiple?value==null?void 0:value.some==null?void 0:value.some(function(item){return compareOptionsValues(item,option,config);}):compareOptionsValues(value,option,config);}function compareOptionsValues(optionA,optionB){var config=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var valueKey=config.valueKey||'value';var valueA=(optionA==null?void 0:optionA[valueKey])||optionA;var valueB=(optionB==null?void 0:optionB[valueKey])||optionB;if(!valueA||!valueB)return false;return valueA===valueB;}function formatSingleChangeValue(option,value,_ref){var useRawOption=_ref.useRawOption,selected=_ref.selected,valueKey=_ref.valueKey;var selectedOption=option;var selectedValue=option[valueKey];if(!!useRawOption)selectedValue=option;if(selected){selectedOption=null;selectedValue=null;}return selectedValue;}function formatMultipleChangeValue(option,value,_ref2){var useRawOption=_ref2.useRawOption,selected=_ref2.selected,multiple=_ref2.multiple,valueKey=_ref2.valueKey;var selectedOption=option;var selectedValue=option[valueKey];value=_toConsumableArray(value||[]);if(!!useRawOption)selectedValue=option;if(selected){value=value.filter(function(item){return!isSelected(item,selectedOption,{multiple:multiple,valueKey:valueKey});});}else{value.push(selectedValue);}return value;}function PickerItem(_ref3){var option=_ref3.option,onChange=_ref3.onChange,value=_ref3.value,renderOption=_ref3.renderOption,useRawOption=_ref3.useRawOption,multiple=_ref3.multiple,labelKey=_ref3.labelKey,valueKey=_ref3.valueKey,props=_objectWithoutProperties(_ref3,_excluded);var selected=isSelected(value,option,{multiple:multiple,valueKey:valueKey});var handleChange=function handleChange(){var formatChangeValueFunc=multiple?formatMultipleChangeValue:formatSingleChangeValue;var formattedValue=formatChangeValueFunc(option,value,{selected:selected,useRawOption:useRawOption,valueKey:valueKey});onChange(formattedValue);};return _jsx(Col,Object.assign({},props,{children:renderOption({option:option,selected:selected,onChange:handleChange,valueKey:valueKey,labelKey:labelKey})}));}export function Picker(_ref4){var _this=this;var value=_ref4.value,initialValue=_ref4.initialValue,onChange=_ref4.onChange,disabled=_ref4.disabled,options=_ref4.options,renderOption=_ref4.renderOption,colProps=_ref4.colProps,useRawOption=_ref4.useRawOption,multiple=_ref4.multiple,valueKey=_ref4.valueKey,labelKey=_ref4.labelKey,rootProps=_objectWithoutProperties(_ref4,_excluded2);var _React$useState=React.useState(initialValue),_React$useState2=_slicedToArray(_React$useState,2),localValue=_React$useState2[0],setLocalValue=_React$useState2[1];value=value===undefined?localValue:value;onChange=onChange||setLocalValue;var handleChange=function handleChange(v){if(!!disabled)return;setLocalValue(v);onChange==null?void 0:onChange(v);};var _useOptions=useOptions(options,{}),finalOptions=_useOptions.options,isFirstLoad=_useOptions.isFirstLoad;valueKey=valueKey||'value';labelKey=labelKey||'label';if(!renderOption){console.error('Picker requires a renderOption prop');return false;}return _jsx(LoadingView,{active:isFirstLoad,replaceChildren:true,children:_jsx(Row,Object.assign({className:"neko-picker",gap:"md"},rootProps,{children:finalOptions==null?void 0:finalOptions.map==null?void 0:finalOptions.map(function(option){return _jsx(PickerItem,Object.assign({option:option,onChange:handleChange,value:value,renderOption:renderOption,useRawOption:useRawOption,multiple:multiple,valueKey:valueKey,labelKey:labelKey},colProps),option.value);})}))});}
@@ -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/inputs/Radio.js";var _excluded=["value","onChange","disabled","initialValue"],_excluded2=["radioProps"],_excluded3=["option","selected","onChange","labelKey"];import{pipe}from'ramda';import React from'react';import{AbsHiddenInput}from"../../abstractions/HiddenInput";import{ContentLabel}from"../presentation/ContentLabel";import{Link}from"../actions/Link";import{Picker}from"./Picker";import{View}from"../structure/View";import{useColorConverter}from"../../modifiers/colorConverter";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function Radio(_ref){var value=_ref.value,onChange=_ref.onChange,disabled=_ref.disabled,initialValue=_ref.initialValue,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useColorConverter('primary'),useSizeConverter('elementHeights','md'),useThemeComponentModifier('Radio'))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],size=_pipe2$.size,sizeCode=_pipe2$.sizeCode,color=_pipe2$.color,props=_pipe2[1];var _React$useState=React.useState(initialValue),_React$useState2=_slicedToArray(_React$useState,2),localValue=_React$useState2[0],setLocalValue=_React$useState2[1];value=value===undefined?localValue:value;var toggle=function toggle(){if(!!disabled)return;setLocalValue(!value);onChange==null?void 0:onChange(!value);};return _jsxs(Link,{onPress:toggle,className:"neko-radio",disabled:disabled,children:[_jsx(AbsHiddenInput,{checked:value,onChange:toggle,type:"radio",disabled:disabled}),_jsx(ContentLabel,Object.assign({size:sizeCode,gap:8,content:_jsx(View,{height:size*0.65,ratio:1,border:2,padding:3,borderColor:color,br:size,center:true,children:!!value&&_jsx(View,{bg:color,br:size,flex:true,fullW:true,fullH:true})})},props))]});}export function RadioGroup(_ref2){var _this=this;var radioProps=_ref2.radioProps,props=_objectWithoutProperties(_ref2,_excluded2);return _jsx(Picker,Object.assign({},props,{renderOption:function renderOption(_ref3){var option=_ref3.option,selected=_ref3.selected,onChange=_ref3.onChange,labelKey=_ref3.labelKey,props=_objectWithoutProperties(_ref3,_excluded3);return _jsx(Radio,Object.assign({label:option[labelKey],value:selected,onChange:onChange},props,radioProps));}}));}
@@ -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/inputs/Switch.js";var _excluded=["value","onChange","disabled","initialValue"],_excluded2=["switchProps"],_excluded3=["option","selected","onChange","labelKey"];import{pipe}from'ramda';import React from'react';import{AbsSwitch}from"../../abstractions/Switch";import{ContentLabel}from"../presentation/ContentLabel";import{Picker}from"./Picker";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 Switch(_ref){var value=_ref.value,onChange=_ref.onChange,disabled=_ref.disabled,initialValue=_ref.initialValue,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useColorConverter('primary'),useSizeConverter('elementHeights','md'),useThemeComponentModifier('Switch'))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],size=_pipe2$.size,sizeCode=_pipe2$.sizeCode,color=_pipe2$.color,props=_pipe2[1];var _React$useState=React.useState(initialValue),_React$useState2=_slicedToArray(_React$useState,2),localValue=_React$useState2[0],setLocalValue=_React$useState2[1];value=value===undefined?localValue:value;onChange=onChange||setLocalValue;var toggle=function toggle(){if(!!disabled)return;setLocalValue(!value);onChange==null?void 0:onChange(!value);};return _jsx(ContentLabel,Object.assign({className:"neko-checkbox",size:sizeCode,gap:8,disabled:disabled,content:_jsx(AbsSwitch,{color:color,value:value,onValueChange:toggle,trackColor:{true:color},disabled:disabled,height:size*0.75})},props));}export function SwitchGroup(_ref2){var _this=this;var switchProps=_ref2.switchProps,props=_objectWithoutProperties(_ref2,_excluded2);return _jsx(Picker,Object.assign({multiple:true,row:false},props,{renderOption:function renderOption(_ref3){var option=_ref3.option,selected=_ref3.selected,onChange=_ref3.onChange,labelKey=_ref3.labelKey,props=_objectWithoutProperties(_ref3,_excluded3);return _jsx(Switch,Object.assign({label:option[labelKey],value:selected,onChange:onChange},props,switchProps));}}));}
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/inputs/TextInput.js";var _excluded=["value"];import{AbsTextInput}from"../../abstractions/TextInput";import{InputWrapper}from"./InputWrapper";import{useColors}from"../../theme/ThemeHandler";import{jsx as _jsx}from"react/jsx-runtime";export function TextInput(_ref){var value=_ref.value,props=_objectWithoutProperties(_ref,_excluded);var colors=useColors();var STYLE={width:'100%',height:'100%',borderWidth:0,background:'transparent',outline:'none',color:colors.text};return _jsx(InputWrapper,Object.assign({},props,{children:_jsx(AbsTextInput,Object.assign({style:STYLE,placeholderTextColor:colors.text_op30},props,{value:value}))}));}
@@ -0,0 +1 @@
1
+ export*from"./Checkbox";export*from"./Radio";export*from"./Switch";export*from"./InputWrapper";export*from"./TextInput";export*from"./Picker";
@@ -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/layout/Layout.js";var _excluded=["children"];import React from'react';import{View}from"../structure/View";import{getElementSize}from"../../abstractions/helpers/componentSize";import{jsx as _jsx}from"react/jsx-runtime";var LayoutContext=React.createContext({});export var useLayout=function useLayout(){return React.useContext(LayoutContext)||{};};export function Layout(_ref){var children=_ref.children,rootProps=_objectWithoutProperties(_ref,_excluded);var _React$useState=React.useState(0),_React$useState2=_slicedToArray(_React$useState,2),layoutHeaderSpace=_React$useState2[0],setLayoutHeaderSpace=_React$useState2[1];var _React$useState3=React.useState(0),_React$useState4=_slicedToArray(_React$useState3,2),layoutSiderSpace=_React$useState4[0],setLayoutSiderSpace=_React$useState4[1];var registerHeader=function registerHeader(space){return setLayoutHeaderSpace(function(v){return v+space;});};var unregisterHeader=function unregisterHeader(space){return setLayoutHeaderSpace(function(v){return v-space;});};var _React$useState5=React.useState({}),_React$useState6=_slicedToArray(_React$useState5,2),layoutSize=_React$useState6[0],setLayoutSize=_React$useState6[1];var layoutRef=React.useRef(null);React.useLayoutEffect(function(){getElementSize(layoutRef,setLayoutSize);},[]);var value={layoutSize:layoutSize,layoutHeaderSpace:layoutHeaderSpace,setLayoutHeaderSpace:setLayoutHeaderSpace,layoutSiderSpace:layoutSiderSpace,layoutSiderSpace:layoutSiderSpace,registerHeader:registerHeader,unregisterHeader:unregisterHeader};return _jsx(LayoutContext.Provider,{value:value,children:_jsx(View,Object.assign({className:"neko-layout",bg:"bg",flex:true,relative:true},rootProps,{ref:layoutRef,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/layout/LayoutContent.js";var _excluded=["children"];import{pipe}from'ramda';import{AbsView}from"../../abstractions/View";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useDefaultModifier}from"../../modifiers/default";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{useSizeModifier}from"../../modifiers/size";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx,Fragment as _Fragment}from"react/jsx-runtime";var DEFAULT_PROPS={};export function LayoutContent(_ref){var children=_ref.children,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useThemeComponentModifier('LayoutContent'),useDefaultModifier(DEFAULT_PROPS),useSizeModifier,usePositionModifier,useOverflowModifier,usePaddingModifier,useMarginModifier,useFlexWrapperModifier,useFlexModifier,useBackgroundModifier,useBorderModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_=_pipe2[0],props=_pipe2[1];return _jsx(_Fragment,{children:_jsx(AbsView,Object.assign({className:"neko-layout-content"},props,{children:children}))});}
@@ -0,0 +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/layout/LayoutHeader.js";var _excluded=["children"];import{pipe}from'ramda';import React from'react';import{AbsView}from"../../abstractions/View";import{getElementSize}from"../../abstractions/helpers/componentSize";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useDefaultModifier}from"../../modifiers/default";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useLayout}from"./Layout";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{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx,Fragment as _Fragment}from"react/jsx-runtime";var DEFAULT_PROPS=function DEFAULT_PROPS(_ref){var _ref2=_slicedToArray(_ref,2);_objectDestructuringEmpty(_ref2[0]);var sticky=_ref2[1].sticky;return{bg:'overlayBG',fullW:true,row:true,centerV:true,padding:'md',top:0,left:0,right:0,zIndex:sticky?90:undefined};};export function LayoutHeader(_ref3){var children=_ref3.children,rootProps=_objectWithoutProperties(_ref3,_excluded);var _pipe=pipe(useThemeComponentModifier('LayoutHeader'),useDefaultModifier(DEFAULT_PROPS),useSizeModifier,usePositionModifier,useOverflowModifier,usePaddingModifier,useMarginModifier,useFlexWrapperModifier,useFlexModifier,useBackgroundModifier,useBorderModifier,useShadowModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_=_pipe2[0],props=_pipe2[1];var _useLayout=useLayout(),registerHeader=_useLayout.registerHeader,unregisterHeader=_useLayout.unregisterHeader;var headerRef=React.useRef(null);var headerHeightRef=React.useRef(null);React.useLayoutEffect(function(){if(headerRef.current&&!!rootProps.sticky){getElementSize(headerRef,function(_ref4){var height=_ref4.height;headerHeightRef.current=height;registerHeader==null?void 0:registerHeader(height);});return function(){return unregisterHeader==null?void 0:unregisterHeader(headerHeightRef.current);};}},[]);return _jsx(_Fragment,{children:_jsx(AbsView,Object.assign({className:"neko-layout-header"},props,{ref:headerRef,children:children}))});}
@@ -0,0 +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/layout/LayoutSider.js";var _excluded=["children"];import{pipe}from'ramda';import React from'react';import{AbsView}from"../../abstractions/View";import{getElementSize}from"../../abstractions/helpers/componentSize";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useDefaultModifier}from"../../modifiers/default";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useLayout}from"./Layout";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{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";var DEFAULT_PROPS=function DEFAULT_PROPS(layoutSize,headerSpace){return function(_ref){var _ref2=_slicedToArray(_ref,2);_objectDestructuringEmpty(_ref2[0]);var sticky=_ref2[1].sticky;return{top:headerSpace||0,bottom:0,maxHeight:!!sticky?'100vh':undefined,paddingB:!!sticky?headerSpace:undefined};};};export function LayoutSider(_ref3){var children=_ref3.children,rootProps=_objectWithoutProperties(_ref3,_excluded);var _useLayout=useLayout(),layoutSize=_useLayout.layoutSize,layoutHeaderSpace=_useLayout.layoutHeaderSpace,registerSider=_useLayout.registerSider,unregisterHeader=_useLayout.unregisterHeader;var _pipe=pipe(useThemeComponentModifier('LayoutSider'),useDefaultModifier(DEFAULT_PROPS(layoutSize,layoutHeaderSpace)),useSizeModifier,usePositionModifier,useOverflowModifier,usePaddingModifier,useMarginModifier,useFlexWrapperModifier,useFlexModifier,useBackgroundModifier,useBorderModifier,useShadowModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_=_pipe2[0],props=_pipe2[1];var siderRef=React.useRef(null);var _React$useState=React.useState(rootProps.width||0),_React$useState2=_slicedToArray(_React$useState,2),siderWidth=_React$useState2[0],setSiderWidth=_React$useState2[1];React.useLayoutEffect(function(){getElementSize(siderRef,function(_ref4){var width=_ref4.width;return setSiderWidth(width);});},[]);return _jsxs(_Fragment,{children:[rootProps.fixed&&_jsx(AbsView,{className:"neko-layout-sider-empty-space",style:{width:siderWidth,height:'100%'}}),_jsx(AbsView,Object.assign({className:"neko-layout-sider"},props,{ref:siderRef,children:children}))]});}
@@ -0,0 +1 @@
1
+ export*from"./Layout";export*from"./LayoutHeader";export*from"./LayoutSider";export*from"./LayoutContent";
@@ -0,0 +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}));}