@neko-os/ui 0.0.8 → 0.0.10

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 (220) hide show
  1. package/dist/DynamicStyleTag.js +5 -0
  2. package/dist/DynamicStyleTag.native.js +1 -0
  3. package/dist/NekoUI.js +1 -1
  4. package/dist/abstractions/ActivityIndicator.native.js +1 -1
  5. package/dist/abstractions/ActivityIndicator.web.js +1 -0
  6. package/dist/abstractions/AnimatedView.web.js +1 -0
  7. package/dist/abstractions/BlurView.web.js +1 -0
  8. package/dist/abstractions/FlatList.js +1 -0
  9. package/dist/abstractions/FlatList.native.js +1 -0
  10. package/dist/abstractions/FlatList.web.js +1 -0
  11. package/dist/abstractions/ScrollView.web.js +1 -0
  12. package/dist/abstractions/StaticList.js +1 -0
  13. package/dist/abstractions/helpers/storage.js +1 -0
  14. package/dist/abstractions/helpers/storage.native.js +1 -0
  15. package/dist/abstractions/helpers/useSafeAreaInsets.js +1 -0
  16. package/dist/abstractions/helpers/useSafeAreaInsets.native.js +1 -0
  17. package/dist/components/actions/Button.js +1 -1
  18. package/dist/components/actions/Dropdown.js +1 -1
  19. package/dist/components/actions/FloatingButton.js +1 -0
  20. package/dist/components/actions/index.js +1 -1
  21. package/dist/components/actions/menu/VerticalMenu.js +1 -1
  22. package/dist/components/calendar/_helpers/calendarDays.js +1 -1
  23. package/dist/components/feedback/alerter.js +1 -1
  24. package/dist/components/feedback/confirmer.js +1 -1
  25. package/dist/components/helpers/ConditionalLazyRender.js +1 -0
  26. package/dist/components/helpers/LazyAction.js +1 -0
  27. package/dist/components/helpers/LazyRender.js +1 -1
  28. package/dist/components/helpers/LazyRender.native.js +1 -1
  29. package/dist/components/helpers/index.js +1 -1
  30. package/dist/components/index.js +1 -1
  31. package/dist/components/inputs/DateInput.js +1 -1
  32. package/dist/components/inputs/InputWrapper.js +1 -1
  33. package/dist/components/inputs/LinkInput.js +1 -1
  34. package/dist/components/inputs/NumberInput.js +1 -0
  35. package/dist/components/inputs/Picker.js +1 -1
  36. package/dist/components/inputs/Radio.js +1 -1
  37. package/dist/components/inputs/RateInput.js +1 -0
  38. package/dist/components/inputs/SegmentedPicker.js +1 -0
  39. package/dist/components/inputs/Select.js +1 -0
  40. package/dist/components/inputs/datePicker/DayPicker.js +1 -1
  41. package/dist/components/inputs/datePicker/MonthPicker.js +1 -1
  42. package/dist/components/inputs/datePicker/QuarterPicker.js +1 -1
  43. package/dist/components/inputs/datePicker/WeekPicker.js +1 -1
  44. package/dist/components/inputs/datePicker/YearPicker.js +1 -1
  45. package/dist/components/inputs/index.js +1 -1
  46. package/dist/components/layout/Layout.js +1 -1
  47. package/dist/components/list/FlatList.js +1 -0
  48. package/dist/components/list/index.js +1 -1
  49. package/dist/components/presentation/Rate.js +1 -0
  50. package/dist/components/presentation/RateTag.js +1 -0
  51. package/dist/components/presentation/Result.js +1 -1
  52. package/dist/components/presentation/Tooltip.js +1 -1
  53. package/dist/components/presentation/index.js +1 -1
  54. package/dist/components/state/LoadingView.js +1 -1
  55. package/dist/components/structure/Accordion.js +1 -1
  56. package/dist/components/structure/Row.js +1 -1
  57. package/dist/components/structure/Segment.js +1 -0
  58. package/dist/components/structure/View.js +1 -1
  59. package/dist/components/structure/bottomDrawer/native/BottomDrawer.js +1 -1
  60. package/dist/components/structure/bottomDrawer/native/utils.js +1 -1
  61. package/dist/components/structure/bottomDrawer/web/BottomDrawer.js +1 -1
  62. package/dist/components/structure/index.js +1 -1
  63. package/dist/components/structure/overlay/OverlayHandler.js +1 -1
  64. package/dist/components/structure/popover/Popover.js +1 -1
  65. package/dist/components/structure/popover/Popover.native.js +1 -1
  66. package/dist/components/structure/popover/Popover_BU.js +1 -0
  67. package/dist/components/tabs/ActiveTabContent.js +1 -0
  68. package/dist/components/tabs/TabsHandler.js +1 -0
  69. package/dist/components/tabs/TabsMenu.js +1 -0
  70. package/dist/components/tabs/index.js +1 -0
  71. package/dist/components/theme/ThemePicker.js +1 -0
  72. package/dist/components/theme/ThemePickerDrawer.js +1 -0
  73. package/dist/components/theme/ThemeStatusBar.js +1 -0
  74. package/dist/components/theme/ThemeStatusBar.native.js +1 -0
  75. package/dist/components/theme/ThemeThumb.js +1 -0
  76. package/dist/components/theme/index.js +1 -0
  77. package/dist/helpers/index.js +1 -1
  78. package/dist/helpers/storage.js +1 -0
  79. package/dist/helpers/string.js +1 -1
  80. package/dist/i18n/I18n.js +1 -0
  81. package/dist/i18n/I18nProvider.js +1 -0
  82. package/dist/i18n/index.js +1 -0
  83. package/dist/index.css +4 -0
  84. package/dist/index.js +1 -1
  85. package/dist/modifiers/animations/fadeEffect.web.js +1 -0
  86. package/dist/modifiers/animations/scrollEffect.web.js +1 -0
  87. package/dist/modifiers/animations/slideEffect.web.js +1 -0
  88. package/dist/modifiers/fullColor.js +1 -1
  89. package/dist/modifiers/overflow.js +1 -1
  90. package/dist/modifiers/position.js +1 -1
  91. package/dist/theme/ThemeHandler.js +1 -1
  92. package/dist/theme/default/base.js +1 -1
  93. package/dist/theme/default/blackTheme.js +1 -1
  94. package/dist/theme/default/cyberpunkTheme.js +1 -1
  95. package/dist/theme/default/darkTheme.js +1 -1
  96. package/dist/theme/default/deepWoodsTheme.js +1 -1
  97. package/dist/theme/default/forestTheme.js +1 -1
  98. package/dist/theme/default/hackerTheme.js +1 -1
  99. package/dist/theme/default/lightTheme.js +1 -1
  100. package/dist/theme/default/midnightTheme.js +1 -1
  101. package/dist/theme/default/msdosTheme.js +1 -1
  102. package/dist/theme/default/oceanTheme.js +1 -1
  103. package/dist/theme/default/paperTheme.js +1 -0
  104. package/dist/theme/default/pastelTheme.js +1 -1
  105. package/dist/theme/default/sunsetTheme.js +1 -1
  106. package/dist/theme/default/themes.js +1 -1
  107. package/dist/theme/format/formatTheme.js +1 -1
  108. package/dist/theme/helpers/contrastColor.js +1 -1
  109. package/package.json +1 -1
  110. package/src/DynamicStyleTag.js +21 -0
  111. package/src/DynamicStyleTag.native.js +3 -0
  112. package/src/NekoUI.js +21 -4
  113. package/src/abstractions/ActivityIndicator.native.js +3 -4
  114. package/src/abstractions/ActivityIndicator.web.js +43 -0
  115. package/src/abstractions/AnimatedView.web.js +3 -0
  116. package/src/abstractions/BlurView.web.js +39 -0
  117. package/src/abstractions/FlatList.js +3 -0
  118. package/src/abstractions/FlatList.native.js +36 -0
  119. package/src/abstractions/FlatList.web.js +3 -0
  120. package/src/abstractions/ScrollView.web.js +3 -0
  121. package/src/abstractions/StaticList.js +51 -0
  122. package/src/abstractions/Text.web.js +15 -0
  123. package/src/abstractions/helpers/storage.js +32 -0
  124. package/src/abstractions/helpers/storage.native.js +34 -0
  125. package/src/abstractions/helpers/useSafeAreaInsets.js +3 -0
  126. package/src/abstractions/helpers/useSafeAreaInsets.native.js +3 -0
  127. package/src/components/actions/Button.js +1 -0
  128. package/src/components/actions/Dropdown.js +24 -5
  129. package/src/components/actions/FloatingButton.js +87 -0
  130. package/src/components/actions/index.js +1 -0
  131. package/src/components/actions/menu/VerticalMenu.js +30 -5
  132. package/src/components/calendar/_helpers/calendarDays.js +2 -0
  133. package/src/components/feedback/alerter.js +1 -1
  134. package/src/components/feedback/confirmer.js +2 -2
  135. package/src/components/helpers/ConditionalLazyRender.js +6 -0
  136. package/src/components/helpers/LazyAction.js +22 -0
  137. package/src/components/helpers/LazyRender.js +2 -2
  138. package/src/components/helpers/LazyRender.native.js +1 -1
  139. package/src/components/helpers/index.js +1 -0
  140. package/src/components/index.js +2 -0
  141. package/src/components/inputs/DateInput.js +11 -1
  142. package/src/components/inputs/InputWrapper.js +0 -1
  143. package/src/components/inputs/LinkInput.js +3 -3
  144. package/src/components/inputs/NumberInput.js +105 -0
  145. package/src/components/inputs/Picker.js +61 -9
  146. package/src/components/inputs/Radio.js +1 -1
  147. package/src/components/inputs/RateInput.js +62 -0
  148. package/src/components/inputs/SegmentedPicker.js +62 -0
  149. package/src/components/inputs/Select.js +189 -0
  150. package/src/components/inputs/datePicker/DayPicker.js +4 -5
  151. package/src/components/inputs/datePicker/MonthPicker.js +2 -2
  152. package/src/components/inputs/datePicker/QuarterPicker.js +2 -2
  153. package/src/components/inputs/datePicker/WeekPicker.js +2 -2
  154. package/src/components/inputs/datePicker/YearPicker.js +9 -6
  155. package/src/components/inputs/index.js +4 -0
  156. package/src/components/layout/Layout.js +1 -1
  157. package/src/components/list/FlatList.js +91 -0
  158. package/src/components/list/index.js +1 -0
  159. package/src/components/presentation/Rate.js +58 -0
  160. package/src/components/presentation/RateTag.js +35 -0
  161. package/src/components/presentation/Result.js +2 -2
  162. package/src/components/presentation/Tooltip.js +1 -0
  163. package/src/components/presentation/index.js +2 -0
  164. package/src/components/state/LoadingView.js +10 -1
  165. package/src/components/structure/Accordion.js +1 -1
  166. package/src/components/structure/Row.js +9 -1
  167. package/src/components/structure/Segment.js +51 -0
  168. package/src/components/structure/View.js +2 -0
  169. package/src/components/structure/bottomDrawer/native/BottomDrawer.js +19 -3
  170. package/src/components/structure/bottomDrawer/native/utils.js +29 -22
  171. package/src/components/structure/bottomDrawer/web/BottomDrawer.js +3 -1
  172. package/src/components/structure/index.js +1 -0
  173. package/src/components/structure/overlay/OverlayHandler.js +6 -1
  174. package/src/components/structure/popover/Popover.js +44 -21
  175. package/src/components/structure/popover/Popover.native.js +3 -2
  176. package/src/components/structure/popover/Popover_BU.js +157 -0
  177. package/src/components/tabs/ActiveTabContent.js +35 -0
  178. package/src/components/tabs/TabsHandler.js +16 -0
  179. package/src/components/tabs/TabsMenu.js +15 -0
  180. package/src/components/tabs/index.js +3 -0
  181. package/src/components/theme/ThemePicker.js +49 -0
  182. package/src/components/theme/ThemePickerDrawer.js +13 -0
  183. package/src/components/theme/ThemeStatusBar.js +3 -0
  184. package/src/components/theme/ThemeStatusBar.native.js +9 -0
  185. package/src/components/theme/ThemeThumb.js +98 -0
  186. package/src/components/theme/index.js +3 -0
  187. package/src/helpers/index.js +1 -0
  188. package/src/helpers/storage.js +54 -0
  189. package/src/helpers/string.js +18 -1
  190. package/src/i18n/I18n.js +97 -0
  191. package/src/i18n/I18nProvider.js +40 -0
  192. package/src/i18n/index.js +2 -0
  193. package/src/index.css +4 -0
  194. package/src/index.js +1 -0
  195. package/src/modifiers/animations/fadeEffect.web.js +3 -0
  196. package/src/modifiers/animations/scrollEffect.web.js +3 -0
  197. package/src/modifiers/animations/slideEffect.web.js +3 -0
  198. package/src/modifiers/fullColor.js +2 -2
  199. package/src/modifiers/overflow.js +6 -1
  200. package/src/modifiers/position.js +7 -0
  201. package/src/theme/ThemeHandler.js +18 -2
  202. package/src/theme/default/base.js +12 -8
  203. package/src/theme/default/blackTheme.js +4 -1
  204. package/src/theme/default/cyberpunkTheme.js +3 -1
  205. package/src/theme/default/darkTheme.js +3 -1
  206. package/src/theme/default/deepWoodsTheme.js +4 -2
  207. package/src/theme/default/forestTheme.js +3 -1
  208. package/src/theme/default/hackerTheme.js +3 -1
  209. package/src/theme/default/lightTheme.js +3 -1
  210. package/src/theme/default/midnightTheme.js +3 -1
  211. package/src/theme/default/msdosTheme.js +18 -4
  212. package/src/theme/default/oceanTheme.js +4 -2
  213. package/src/theme/default/paperTheme.js +35 -0
  214. package/src/theme/default/pastelTheme.js +3 -1
  215. package/src/theme/default/sunsetTheme.js +5 -3
  216. package/src/theme/default/themes.js +7 -10
  217. package/src/theme/format/formatTheme.js +9 -3
  218. package/src/theme/helpers/contrastColor.js +49 -11
  219. package/dist/abstractions/TouchableOpacity.web.js +0 -1
  220. package/src/abstractions/TouchableOpacity.web.js +0 -3
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/presentation/Result.js";var _excluded=["type","icon","iconColor","title","description","footer","titleProps","descriptionProps","textProps","iconProps"];import{Divider}from"../helpers/Separator";import{Icon}from"./Icon";import{Text}from"../text/Text";import{View}from"../structure/View";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export var RESULT_TYPES={error:{icon:'close-circle-fill',color:'red'},success:{icon:'checkbox-circle-fill',color:'green'},warning:{icon:'error-warning-fill',color:'yellow'},info:{icon:'information-2-fill',color:'blue'}};export function Result(_ref){var type=_ref.type,icon=_ref.icon,iconColor=_ref.iconColor,title=_ref.title,description=_ref.description,footer=_ref.footer,titleProps=_ref.titleProps,descriptionProps=_ref.descriptionProps,textProps=_ref.textProps,iconProps=_ref.iconProps,props=_objectWithoutProperties(_ref,_excluded);var typeProps=RESULT_TYPES[type]||{};icon=icon||typeProps.icon;iconColor=iconColor||typeProps.color||'primary';return _jsxs(View,Object.assign({className:"neko-result",center:true,padding:"lg"},props,{children:[!!icon&&_jsx(Icon,Object.assign({name:icon,color:iconColor,size:42,primary:true},iconProps)),!!icon&&_jsx(Divider,{height:10}),_jsx(Text,Object.assign({h3:true},textProps,titleProps,{children:title})),!!description&&_jsx(Text,Object.assign({text3:true,sm:true},textProps,descriptionProps,{children:description})),!!footer&&_jsx(View,{marginT:"lg",children:footer})]}));}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/presentation/Result.js";var _excluded=["type","icon","iconColor","title","description","footer","titleProps","descriptionProps","textProps","iconProps"];import{Divider}from"../helpers/Separator";import{Icon}from"./Icon";import{Text}from"../text/Text";import{View}from"../structure/View";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export var RESULT_TYPES={error:{icon:'close-circle-fill',color:'red'},success:{icon:'checkbox-circle-fill',color:'green'},warning:{icon:'error-warning-fill',color:'yellow'},info:{icon:'information-2-fill',color:'blue'}};export function Result(_ref){var type=_ref.type,icon=_ref.icon,iconColor=_ref.iconColor,title=_ref.title,description=_ref.description,footer=_ref.footer,titleProps=_ref.titleProps,descriptionProps=_ref.descriptionProps,textProps=_ref.textProps,iconProps=_ref.iconProps,props=_objectWithoutProperties(_ref,_excluded);var typeProps=RESULT_TYPES[type]||{};icon=icon||typeProps.icon;iconColor=iconColor||typeProps.color||'primary';return _jsxs(View,Object.assign({className:"neko-result",center:true,padding:"lg"},props,{children:[!!icon&&_jsx(Icon,Object.assign({name:icon,color:iconColor,size:42,primary:true},iconProps)),!!icon&&_jsx(Divider,{height:10}),_jsx(Text,Object.assign({h4:true},textProps,titleProps,{children:title})),!!description&&_jsx(Text,Object.assign({text3:true,sm:true,marginT:"sm"},textProps,descriptionProps,{children:description})),!!footer&&_jsx(View,{marginT:"lg",children:footer})]}));}
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/presentation/Tooltip.js";var _excluded=["label","icon","textProps","iconProps","gap","invert","children"];import{pipe}from'ramda';import{IconLabel}from"./IconLabel";import{Popover}from"../structure/popover/Popover";import{useColorConverter}from"../../modifiers/colorConverter";import{useFullColorModifier}from"../../modifiers/fullColor";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";export function Tooltip(rootProps){var _pipe=pipe(useColorConverter('overlayBG'),useSizeConverter('text','md'),useThemeComponentModifier('Tooltip'),useFullColorModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],loading=_pipe2$.loading,fontColor=_pipe2$.fontColor,sizeCode=_pipe2$.sizeCode,formattedProps=_pipe2[1];var label=formattedProps.label,icon=formattedProps.icon,textProps=formattedProps.textProps,iconProps=formattedProps.iconProps,gap=formattedProps.gap,invert=formattedProps.invert,children=formattedProps.children,props=_objectWithoutProperties(formattedProps,_excluded);if(!label&&!icon)return children;return _jsx(Popover,Object.assign({className:"neko-tooltip"},props,{content:_jsx(IconLabel,{center:true,color:fontColor,size:sizeCode,label:label,icon:icon,gap:gap,invert:invert,textProps:textProps,iconProps:iconProps,loading:loading}),children:children}));}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/presentation/Tooltip.js";var _excluded=["label","icon","textProps","iconProps","gap","invert","children"];import{pipe}from'ramda';import{IconLabel}from"./IconLabel";import{Popover}from"../structure/popover/Popover";import{useColorConverter}from"../../modifiers/colorConverter";import{useFullColorModifier}from"../../modifiers/fullColor";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";export function Tooltip(rootProps){var _pipe=pipe(useColorConverter('overlayBG'),useSizeConverter('text','md'),useThemeComponentModifier('Tooltip'),useFullColorModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_pipe2$=_pipe2[0],loading=_pipe2$.loading,fontColor=_pipe2$.fontColor,sizeCode=_pipe2$.sizeCode,formattedProps=_pipe2[1];var label=formattedProps.label,icon=formattedProps.icon,textProps=formattedProps.textProps,iconProps=formattedProps.iconProps,gap=formattedProps.gap,invert=formattedProps.invert,children=formattedProps.children,props=_objectWithoutProperties(formattedProps,_excluded);if(!label&&!icon)return children;return _jsx(Popover,Object.assign({className:"neko-tooltip",padding:"xs"},props,{content:_jsx(IconLabel,{center:true,color:fontColor,size:sizeCode,label:label,icon:icon,gap:gap,invert:invert,textProps:textProps,iconProps:iconProps,loading:loading}),children:children}));}
@@ -1 +1 @@
1
- export*from"./Tag";export*from"./Icon";export*from"./IconLabel";export*from"./Result";export*from"./ResultBar";export*from"./Tooltip";export*from"./Badge";export*from"./Avatar";export*from"./AvatarLabel";export*from"./Image";export*from"./ImageBackground";export*from"./LabelValue";
1
+ export*from"./Tag";export*from"./Icon";export*from"./IconLabel";export*from"./Result";export*from"./ResultBar";export*from"./Tooltip";export*from"./Badge";export*from"./Avatar";export*from"./AvatarLabel";export*from"./Image";export*from"./ImageBackground";export*from"./LabelValue";export*from"./Rate";export*from"./RateTag";
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/state/LoadingView.js";var _excluded=["active","children","size","color","replaceChildren","noWrapper"];import{Loading}from"./Loading";import{View}from"../structure/View";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function LoadingView(_ref){var active=_ref.active,children=_ref.children,size=_ref.size,color=_ref.color,replaceChildren=_ref.replaceChildren,noWrapper=_ref.noWrapper,props=_objectWithoutProperties(_ref,_excluded);if(!active&&!!noWrapper)return children;if(!active)return _jsx(View,Object.assign({},props,{children:children}));var loader=_jsx(Loading,{size:size,color:color});if(!!replaceChildren&&!!noWrapper)return loader;if(!!replaceChildren){return _jsx(View,Object.assign({},props,{center:true,children:loader}));}return _jsxs(View,Object.assign({className:"neko-loading-view",relative:true},props,{children:[children,_jsx(View,{className:"neko-laoding-view-overlay",bg:"bg_op90",absolute:true,top:0,left:0,right:0,bottom:0,center:true,children:loader})]}));}export var LoadingWrapper=LoadingView;
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/state/LoadingView.js";var _excluded=["active","children","size","color","replaceChildren","noWrapper"];import{Loading}from"./Loading";import{View}from"../structure/View";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function LoadingView(_ref){var active=_ref.active,children=_ref.children,size=_ref.size,color=_ref.color,replaceChildren=_ref.replaceChildren,noWrapper=_ref.noWrapper,props=_objectWithoutProperties(_ref,_excluded);if(!active&&!!noWrapper)return children;if(!active)return _jsx(View,Object.assign({},props,{children:children}));var loader=_jsx(Loading,{size:size,color:color});if(!!replaceChildren&&!!noWrapper)return loader;if(!!replaceChildren){return _jsx(View,Object.assign({},props,{center:true,children:loader}));}return _jsxs(View,Object.assign({className:"neko-loading-view",relative:true},props,{children:[children,_jsx(View,{className:"neko-laoding-view-overlay",bg:"mainBG_op90",absolute:true,top:0,left:0,right:0,bottom:0,center:true,children:loader})]}));}export var LoadingWrapper=LoadingView;
@@ -1 +1 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/Accordion.js";var _excluded=["children","title","open","onChange"],_excluded2=["contentProps","titleProps","headerProps","initOpen"];import{pipe}from'ramda';import React from'react';import{AbsView}from"../../abstractions/View";import{Card}from"./Card";import{Icon}from"../presentation/Icon";import{Link}from"../actions/Link";import{Text}from"../text/Text";import{View}from"./View";import{moveScale}from"../../theme/helpers/sizeScale";import{useDefaultModifier}from"../../modifiers/default";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var DEFAULT_PROPS={padding:0,br:'xl',bg:'overlayBG',hiddenOverflow:true};export function Accordion(_ref){var children=_ref.children,title=_ref.title,open=_ref.open,onChange=_ref.onChange,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useSizeConverter('elementHeights','md'),useThemeComponentModifier('Accordion'),useDefaultModifier(DEFAULT_PROPS))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),sizeCode=_pipe2[0].sizeCode,formattedProps=_pipe2[1];var contentProps=formattedProps.contentProps,titleProps=formattedProps.titleProps,headerProps=formattedProps.headerProps,initOpen=formattedProps.initOpen,props=_objectWithoutProperties(formattedProps,_excluded2);var _React$useState=React.useState(initOpen),_React$useState2=_slicedToArray(_React$useState,2),localOpen=_React$useState2[0],setLocalOpen=_React$useState2[1];open=open===undefined?localOpen:open;var toggle=function toggle(){setLocalOpen(!open);onChange==null?void 0:onChange(!open);};return _jsxs(Card,Object.assign({},props,{children:[_jsxs(Link,Object.assign({padding:sizeCode,row:true,gap:moveScale(sizeCode,-2),borderB:open?props.border||true:open,borderColor:props.borderColor||'bg',centerV:true},headerProps,{onPress:toggle,children:[_jsx(Icon,{name:!!open?'arrow-down-s-line':'arrow-right-s-line'}),_jsx(Text,Object.assign({flex:true},titleProps,{children:title}))]})),!!open&&_jsx(View,Object.assign({padding:sizeCode},contentProps,{children:children}))]}));return _jsx(AbsView,Object.assign({className:"neko-accordion"},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/structure/Accordion.js";var _excluded=["children","title","open","onChange"],_excluded2=["contentProps","titleProps","headerProps","initOpen"];import{pipe}from'ramda';import React from'react';import{AbsView}from"../../abstractions/View";import{Card}from"./Card";import{Icon}from"../presentation/Icon";import{Link}from"../actions/Link";import{Text}from"../text/Text";import{View}from"./View";import{moveScale}from"../../theme/helpers/sizeScale";import{useDefaultModifier}from"../../modifiers/default";import{useSizeConverter}from"../../modifiers/sizeConverter";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var DEFAULT_PROPS={padding:0,br:'xl',bg:'overlayBG',hiddenOverflow:true};export function Accordion(_ref){var children=_ref.children,title=_ref.title,open=_ref.open,onChange=_ref.onChange,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useSizeConverter('elementHeights','md'),useThemeComponentModifier('Accordion'),useDefaultModifier(DEFAULT_PROPS))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),sizeCode=_pipe2[0].sizeCode,formattedProps=_pipe2[1];var contentProps=formattedProps.contentProps,titleProps=formattedProps.titleProps,headerProps=formattedProps.headerProps,initOpen=formattedProps.initOpen,props=_objectWithoutProperties(formattedProps,_excluded2);var _React$useState=React.useState(initOpen),_React$useState2=_slicedToArray(_React$useState,2),localOpen=_React$useState2[0],setLocalOpen=_React$useState2[1];open=open===undefined?localOpen:open;var toggle=function toggle(){setLocalOpen(!open);onChange==null?void 0:onChange(!open);};return _jsxs(Card,Object.assign({},props,{children:[_jsxs(Link,Object.assign({padding:sizeCode,row:true,gap:moveScale(sizeCode,-2),borderB:open?props.border||true:open,borderColor:props.borderColor||'divider_op40',centerV:true},headerProps,{onPress:toggle,children:[_jsx(Icon,{name:!!open?'arrow-down-s-line':'arrow-right-s-line'}),_jsx(Text,Object.assign({flex:true},titleProps,{children:title}))]})),!!open&&_jsx(View,Object.assign({padding:sizeCode},contentProps,{children:children}))]}));return _jsx(AbsView,Object.assign({className:"neko-accordion"},props,{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/components/structure/Row.js";var _excluded=["children"],_excluded2=["colSpan"];import{pipe}from'ramda';import React from'react';import{AbsView}from"../../abstractions/View";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useGridModifier}from"../../modifiers/grid";import{useMarginModifier}from"../../modifiers/margin";import{usePositionModifier}from"../../modifiers/position";import{useResponsiveConverter}from"../../modifiers/responsiveConverter";import{useSizeModifier}from"../../modifiers/size";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";export function Row(_ref){var children=_ref.children,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useThemeComponentModifier('Row'),useResponsiveConverter([]),useGridModifier,useSizeModifier,usePositionModifier,useFlexWrapperModifier,useFlexModifier,useMarginModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),childPaddingProps=_pipe2[0].childPaddingProps,_pipe2$=_pipe2[1],colSpan=_pipe2$.colSpan,props=_objectWithoutProperties(_pipe2$,_excluded2);var clonedChildren=React.useMemo(function(){return React.Children.map(children,function(child){return React.isValidElement(child)?React.cloneElement(child,Object.assign({parentSpan:colSpan},childPaddingProps)):child;});},[children,childPaddingProps]);return _jsx(AbsView,Object.assign({className:"neko-row"},props,{children:clonedChildren}));}export var Grid=Row;
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/Row.js";var _excluded=["children"],_excluded2=["colSpan"];import{pipe}from'ramda';import React from'react';import{AbsView}from"../../abstractions/View";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useGridModifier}from"../../modifiers/grid";import{useMarginModifier}from"../../modifiers/margin";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";import{useResponsiveConverter}from"../../modifiers/responsiveConverter";import{useShadowModifier}from"../../modifiers/shadow";import{useSizeModifier}from"../../modifiers/size";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";export function Row(_ref){var children=_ref.children,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useThemeComponentModifier('Row'),useResponsiveConverter([]),useGridModifier,useSizeModifier,usePositionModifier,useFlexWrapperModifier,useFlexModifier,useMarginModifier,usePaddingModifier,useBackgroundModifier,useBorderModifier,useShadowModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),childPaddingProps=_pipe2[0].childPaddingProps,_pipe2$=_pipe2[1],colSpan=_pipe2$.colSpan,props=_objectWithoutProperties(_pipe2$,_excluded2);var clonedChildren=React.useMemo(function(){return React.Children.map(children,function(child){return React.isValidElement(child)?React.cloneElement(child,Object.assign({parentSpan:colSpan},childPaddingProps)):child;});},[children,childPaddingProps]);return _jsx(AbsView,Object.assign({className:"neko-row"},props,{children:clonedChildren}));}export var Grid=Row;
@@ -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/structure/Segment.js";var _excluded=["children"],_excluded2=["br"];import{pipe}from'ramda';import React from'react';import{View}from"./View";import{useDefaultModifier}from"../../modifiers/default";import{useSizeConverter}from"../../modifiers/sizeConverter";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{row:true,justify:'stretch',br:sizeCode};};export function Segment(_ref3){var children=_ref3.children,rootProps=_objectWithoutProperties(_ref3,_excluded);var _pipe=pipe(useSizeConverter('elementHeights','md'),useThemeComponentModifier('Segment'),useDefaultModifier(DEFAULT_PROPS))([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),sizeCode=_pipe2[0].sizeCode,formattedProps=_pipe2[1];var br=formattedProps.br,props=_objectWithoutProperties(formattedProps,_excluded2);var size=children==null?void 0:children.length;return _jsx(View,Object.assign({className:"neko-segment"},props,{children:React.Children.map(children,function(child,index){if(!React.isValidElement(child))return child;var isFirst=index===0;var isLast=size-1===index;var childProps=child.props||{};var newProps={brL:br,brR:br,size:sizeCode};if(!isLast){newProps.brR=0;}if(!isFirst){newProps.brL=0;}return React.cloneElement(child,newProps);})}));}
@@ -1 +1 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/View.js";var _excluded=["children"];import{pipe}from'ramda';import{AbsView}from"../../abstractions/View";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 View(_ref){var children=_ref.children,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useThemeComponentModifier('View'),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(AbsView,Object.assign({className:"neko-view"},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/structure/View.js";var _excluded=["children"];import{pipe}from'ramda';import{AbsView}from"../../abstractions/View";import{useAnimationModifier}from"../../modifiers/animation";import{useBackgroundModifier}from"../../modifiers/background";import{useBorderModifier}from"../../modifiers/border";import{useCursorModifier}from"../../modifiers/cursor";import{useDisplayModifier}from"../../modifiers/display";import{useFlexModifier}from"../../modifiers/flex";import{useFlexWrapperModifier}from"../../modifiers/flexWrapper";import{useMarginModifier}from"../../modifiers/margin";import{useOverflowModifier}from"../../modifiers/overflow";import{usePaddingModifier}from"../../modifiers/padding";import{usePositionModifier}from"../../modifiers/position";import{useShadowModifier}from"../../modifiers/shadow";import{useSizeModifier}from"../../modifiers/size";import{useStateModifier}from"../../modifiers/state";import{useThemeComponentModifier}from"../../modifiers/themeComponent";import{jsx as _jsx}from"react/jsx-runtime";export function View(_ref){var children=_ref.children,rootProps=_objectWithoutProperties(_ref,_excluded);var _pipe=pipe(useThemeComponentModifier('View'),useFlexWrapperModifier,useDisplayModifier,useCursorModifier,useAnimationModifier,useStateModifier,useSizeModifier,usePositionModifier,useOverflowModifier,usePaddingModifier,useMarginModifier,useFlexModifier,useBackgroundModifier,useBorderModifier,useShadowModifier)([{},rootProps]),_pipe2=_slicedToArray(_pipe,2),_=_pipe2[0],props=_pipe2[1];return _jsx(AbsView,Object.assign({className:"neko-view"},props,{children:children}));}
@@ -1 +1 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/bottomDrawer/native/BottomDrawer.js";var _excluded=["children","render","setRender","open","onClose","snapPoints","useSafeArea","enableOverScroll","enableHandlePanningGesture","enableContentPanningGesture","animationConfig","hideHandle","contentProps"],_excluded2=["open"];import{GestureDetector,Gesture,GestureHandlerRootView}from'react-native-gesture-handler';import{Modal,Dimensions,StyleSheet,BackHandler,Platform}from"react-native-web";import{useSafeAreaInsets}from'react-native-safe-area-context';import Animated,{useSharedValue,useAnimatedStyle,withSpring,runOnJS,useAnimatedReaction}from'react-native-reanimated';import React from'react';import{DrawerHandle}from"./DrawerHandle";import{DrawerProvider}from"./DrawerContext";import{Pressable}from"../../../actions/Pressable";import{View}from"../../View";import{normalizeSnapPoints,findClosestSnapPoint}from"./utils";import{useColors}from"../../../../theme/ThemeHandler";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";function InnerContent(_ref){var children=_ref.children,render=_ref.render,setRender=_ref.setRender,open=_ref.open,onClose=_ref.onClose,_ref$snapPoints=_ref.snapPoints,snapPoints=_ref$snapPoints===void 0?['50%']:_ref$snapPoints,_ref$useSafeArea=_ref.useSafeArea,useSafeArea=_ref$useSafeArea===void 0?true:_ref$useSafeArea,_ref$enableOverScroll=_ref.enableOverScroll,enableOverScroll=_ref$enableOverScroll===void 0?true:_ref$enableOverScroll,_ref$enableHandlePann=_ref.enableHandlePanningGesture,enableHandlePanningGesture=_ref$enableHandlePann===void 0?true:_ref$enableHandlePann,_ref$enableContentPan=_ref.enableContentPanningGesture,enableContentPanningGesture=_ref$enableContentPan===void 0?true:_ref$enableContentPan,_ref$animationConfig=_ref.animationConfig,animationConfig=_ref$animationConfig===void 0?{damping:50,stiffness:500,mass:0.3,overshootClamping:true,restDisplacementThreshold:10,restSpeedThreshold:10}:_ref$animationConfig,hideHandle=_ref.hideHandle,contentProps=_ref.contentProps,props=_objectWithoutProperties(_ref,_excluded);var _Dimensions$get=Dimensions.get('window'),SCREEN_HEIGHT=_Dimensions$get.height;var insets=useSafeAreaInsets();var bottomInset=useSafeArea?insets.bottom:0;var colors=useColors();var translateY=useSharedValue(SCREEN_HEIGHT);var scrollOffset=useSharedValue(0);var scrollEnabled=useSharedValue(false);var isScrolling=useSharedValue(false);var snapIndex=useSharedValue(0);var velocityY=useSharedValue(0);var normalizedSnapPoints=React.useMemo(function(){return normalizeSnapPoints(snapPoints,SCREEN_HEIGHT);},[snapPoints]);var maxSnapPoint=React.useMemo(function(){return Math.max.apply(Math,_toConsumableArray(normalizedSnapPoints));},[normalizedSnapPoints]);var minSnapPoint=React.useMemo(function(){return Math.min.apply(Math,_toConsumableArray(normalizedSnapPoints));},[normalizedSnapPoints]);React.useEffect(function(){if(open){var targetY=SCREEN_HEIGHT-normalizedSnapPoints[0];translateY.value=withSpring(targetY,animationConfig);snapIndex.value=0;}else{translateY.value=withSpring(SCREEN_HEIGHT,animationConfig,function(){scrollOffset.value=0;scrollEnabled.value=false;runOnJS(setRender)(false);});snapIndex.value=-1;}},[open]);React.useEffect(function(){if(!onClose||!open||Platform.OS!=='android')return;var backHandler=BackHandler.addEventListener('hardwareBackPress',function(){onClose();return true;});return function(){return backHandler.remove();};},[open,onClose]);useAnimatedReaction(function(){return translateY.value;},function(currentY){var atMaxSnapPoint=currentY<=SCREEN_HEIGHT-maxSnapPoint;scrollEnabled.value=atMaxSnapPoint;},[]);var handleClose=React.useCallback(function(){onClose==null?void 0:onClose();},[onClose]);if(!onClose)handleClose=false;var snapTo=React.useCallback(function(index){'worklet';var snapPoint=normalizedSnapPoints[index];if(snapPoint!==undefined){translateY.value=withSpring(SCREEN_HEIGHT-snapPoint,animationConfig);snapIndex.value=index;}},[normalizedSnapPoints]);var gestureStartTranslateY=useSharedValue(0);var panGesture=React.useMemo(function(){return Gesture.Pan().enabled(enableHandlePanningGesture||enableContentPanningGesture).onStart(function(){gestureStartTranslateY.value=translateY.value;}).onUpdate(function(event){var newTranslateY=gestureStartTranslateY.value+event.translationY;var maxPosition=SCREEN_HEIGHT-maxSnapPoint;if(enableOverScroll&&newTranslateY>=maxPosition){translateY.value=newTranslateY;}else{translateY.value=Math.max(maxPosition,Math.min(SCREEN_HEIGHT,newTranslateY));}velocityY.value=event.velocityY;}).onEnd(function(){var currentPosition=SCREEN_HEIGHT-translateY.value;var shouldClose=!!handleClose&&(velocityY.value>2000&&currentPosition<minSnapPoint*0.75||currentPosition<minSnapPoint*0.25);if(shouldClose){runOnJS(handleClose)();}else{var closestSnapIndex=findClosestSnapPoint(currentPosition,normalizedSnapPoints,velocityY.value);var targetSnapPoint=normalizedSnapPoints[closestSnapIndex];translateY.value=withSpring(SCREEN_HEIGHT-targetSnapPoint,animationConfig);snapIndex.value=closestSnapIndex;}});},[enableHandlePanningGesture,enableContentPanningGesture,enableOverScroll,maxSnapPoint,minSnapPoint,normalizedSnapPoints,animationConfig,handleClose]);var animatedSheetStyle=useAnimatedStyle(function(){var currentHeight=SCREEN_HEIGHT-translateY.value;return{transform:[{translateY:translateY.value}],maxHeight:currentHeight};});var contextValue=React.useMemo(function(){return{translateY:translateY,scrollOffset:scrollOffset,scrollEnabled:scrollEnabled,isScrolling:isScrolling,snapIndex:snapIndex,maxSnapPoint:maxSnapPoint,snapTo:snapTo,animationConfig:animationConfig};},[maxSnapPoint]);return _jsxs(GestureHandlerRootView,{style:{flex:1},children:[_jsx(Pressable,{absoluteFill:true,bg:"backdrop_op70",onPress:function onPress(){if(!handleClose)return;runOnJS(handleClose)();}}),_jsx(DrawerProvider,{value:contextValue,children:_jsx(GestureDetector,{gesture:panGesture,children:_jsx(Animated.View,{style:[styles.container,{height:SCREEN_HEIGHT},animatedSheetStyle],children:_jsxs(View,Object.assign({flex:true,bg:"overlayBG",shadow:true,paddingB:useSafeArea&&bottomInset,borderRadiusT:"xxxl"},props,{children:[_jsx(DrawerHandle,{hide:hideHandle}),_jsx(View,Object.assign({flex:true},contentProps,{children:children}))]}))})})})]});}var styles=StyleSheet.create({container:{position:'absolute',left:0,right:0,top:0}});export function BottomDrawer(_ref2){var open=_ref2.open,props=_objectWithoutProperties(_ref2,_excluded2);var _React$useState=React.useState(open),_React$useState2=_slicedToArray(_React$useState,2),render=_React$useState2[0],setRender=_React$useState2[1];React.useEffect(function(){if(open){setRender(true);}},[open]);return _jsx(Modal,{visible:render,transparent:true,statusBarTranslucent:true,navigationBarTranslucent:true,animationType:"none",children:_jsx(InnerContent,Object.assign({},props,{open:open,render:render,setRender:setRender}))});}
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/bottomDrawer/native/BottomDrawer.js";var _excluded=["children","render","setRender","open","onClose","snapPoints","useSafeArea","enableOverScroll","enableHandlePanningGesture","enableContentPanningGesture","animationConfig","hideHandle","contentProps"],_excluded2=["open"];import{GestureDetector,Gesture,GestureHandlerRootView}from'react-native-gesture-handler';import{Modal,Dimensions,StyleSheet,BackHandler,Platform}from"react-native-web";import{useSafeAreaInsets}from'react-native-safe-area-context';import Animated,{useSharedValue,useAnimatedStyle,withSpring,runOnJS,useAnimatedReaction}from'react-native-reanimated';import React from'react';import{DrawerHandle}from"./DrawerHandle";import{DrawerProvider}from"./DrawerContext";import{Pressable}from"../../../actions/Pressable";import{View}from"../../View";import{normalizeSnapPoints,findClosestSnapPoint}from"./utils";import{useColors}from"../../../../theme/ThemeHandler";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";function InnerContent(_ref){var children=_ref.children,render=_ref.render,setRender=_ref.setRender,open=_ref.open,onClose=_ref.onClose,_ref$snapPoints=_ref.snapPoints,snapPoints=_ref$snapPoints===void 0?['50%']:_ref$snapPoints,_ref$useSafeArea=_ref.useSafeArea,useSafeArea=_ref$useSafeArea===void 0?true:_ref$useSafeArea,_ref$enableOverScroll=_ref.enableOverScroll,enableOverScroll=_ref$enableOverScroll===void 0?true:_ref$enableOverScroll,_ref$enableHandlePann=_ref.enableHandlePanningGesture,enableHandlePanningGesture=_ref$enableHandlePann===void 0?true:_ref$enableHandlePann,_ref$enableContentPan=_ref.enableContentPanningGesture,enableContentPanningGesture=_ref$enableContentPan===void 0?true:_ref$enableContentPan,_ref$animationConfig=_ref.animationConfig,animationConfig=_ref$animationConfig===void 0?{damping:50,stiffness:500,mass:0.3,overshootClamping:true,restDisplacementThreshold:10,restSpeedThreshold:10}:_ref$animationConfig,hideHandle=_ref.hideHandle,contentProps=_ref.contentProps,props=_objectWithoutProperties(_ref,_excluded);var _Dimensions$get=Dimensions.get('window'),SCREEN_HEIGHT=_Dimensions$get.height;var insets=useSafeAreaInsets();var bottomInset=useSafeArea?insets.bottom:0;var colors=useColors();var translateY=useSharedValue(SCREEN_HEIGHT);var scrollOffset=useSharedValue(0);var scrollEnabled=useSharedValue(false);var isScrolling=useSharedValue(false);var snapIndex=useSharedValue(0);var velocityY=useSharedValue(0);var normalizedSnapPoints=React.useMemo(function(){return normalizeSnapPoints(snapPoints,SCREEN_HEIGHT,bottomInset);},[snapPoints,useSafeArea]);var maxSnapPoint=React.useMemo(function(){return Math.max.apply(Math,_toConsumableArray(normalizedSnapPoints));},[normalizedSnapPoints]);var minSnapPoint=React.useMemo(function(){return Math.min.apply(Math,_toConsumableArray(normalizedSnapPoints));},[normalizedSnapPoints]);React.useEffect(function(){if(open){var targetY=SCREEN_HEIGHT-normalizedSnapPoints[0];translateY.value=withSpring(targetY,animationConfig);snapIndex.value=0;}else{translateY.value=withSpring(SCREEN_HEIGHT,animationConfig,function(){scrollOffset.value=0;scrollEnabled.value=false;runOnJS(setRender)(false);});snapIndex.value=-1;}},[open]);React.useEffect(function(){if(!onClose||!open||Platform.OS!=='android')return;var backHandler=BackHandler.addEventListener('hardwareBackPress',function(){onClose();return true;});return function(){return backHandler.remove();};},[open,onClose]);useAnimatedReaction(function(){return translateY.value;},function(currentY){var atMaxSnapPoint=currentY<=SCREEN_HEIGHT-maxSnapPoint;scrollEnabled.value=atMaxSnapPoint;},[]);var handleClose=React.useCallback(function(){onClose==null?void 0:onClose();},[onClose]);if(!onClose)handleClose=false;var snapTo=React.useCallback(function(index){'worklet';var snapPoint=normalizedSnapPoints[index];if(snapPoint!==undefined){translateY.value=withSpring(SCREEN_HEIGHT-snapPoint,animationConfig);snapIndex.value=index;}},[normalizedSnapPoints]);var gestureStartTranslateY=useSharedValue(0);var panGesture=React.useMemo(function(){return Gesture.Pan().enabled(enableHandlePanningGesture||enableContentPanningGesture).onStart(function(){gestureStartTranslateY.value=translateY.value;}).onUpdate(function(event){var newTranslateY=gestureStartTranslateY.value+event.translationY;var maxPosition=SCREEN_HEIGHT-maxSnapPoint;if(enableOverScroll&&newTranslateY>=maxPosition){translateY.value=newTranslateY;}else{translateY.value=Math.max(maxPosition,Math.min(SCREEN_HEIGHT,newTranslateY));}velocityY.value=event.velocityY;}).onEnd(function(){var currentPosition=SCREEN_HEIGHT-translateY.value;var shouldClose=!!handleClose&&(velocityY.value>2000&&currentPosition<minSnapPoint*0.75||currentPosition<minSnapPoint*0.25);if(shouldClose){runOnJS(handleClose)();}else{var closestSnapIndex=findClosestSnapPoint(currentPosition,normalizedSnapPoints,velocityY.value);var targetSnapPoint=normalizedSnapPoints[closestSnapIndex];translateY.value=withSpring(SCREEN_HEIGHT-targetSnapPoint,animationConfig);snapIndex.value=closestSnapIndex;}});},[enableHandlePanningGesture,enableContentPanningGesture,enableOverScroll,maxSnapPoint,minSnapPoint,normalizedSnapPoints,animationConfig,handleClose]);var animatedSheetStyle=useAnimatedStyle(function(){var currentHeight=SCREEN_HEIGHT-translateY.value;return{transform:[{translateY:translateY.value}],maxHeight:currentHeight};});var contextValue=React.useMemo(function(){return{translateY:translateY,scrollOffset:scrollOffset,scrollEnabled:scrollEnabled,isScrolling:isScrolling,snapIndex:snapIndex,maxSnapPoint:maxSnapPoint,snapTo:snapTo,animationConfig:animationConfig};},[maxSnapPoint]);return _jsxs(GestureHandlerRootView,{style:{flex:1},children:[_jsx(Pressable,{absoluteFill:true,bg:"backdrop_op70",onPress:function onPress(){if(!handleClose)return;runOnJS(handleClose)();}}),_jsx(DrawerProvider,{value:contextValue,children:_jsx(GestureDetector,{gesture:panGesture,children:_jsx(Animated.View,{style:[styles.container,{height:SCREEN_HEIGHT},animatedSheetStyle],pointerEvents:"box-none",children:_jsxs(View,Object.assign({flex:true,bg:"overlayBG",shadow:true,paddingB:useSafeArea&&bottomInset,borderRadiusT:"xxxl",marginL:"auto",marginR:"auto",fullW:true},props,{children:[_jsx(DrawerHandle,{hide:hideHandle}),_jsx(View,Object.assign({flex:true},contentProps,{children:children}))]}))})})})]});}var styles=StyleSheet.create({container:{position:'absolute',left:0,right:0,top:0}});export function BottomDrawer(_ref2){var open=_ref2.open,props=_objectWithoutProperties(_ref2,_excluded2);var _React$useState=React.useState(open),_React$useState2=_slicedToArray(_React$useState,2),render=_React$useState2[0],setRender=_React$useState2[1];React.useEffect(function(){if(open){setRender(true);}},[open]);return _jsx(Modal,{visible:render,transparent:true,statusBarTranslucent:true,navigationBarTranslucent:true,animationType:"none",children:_jsx(InnerContent,Object.assign({},props,{open:open,render:render,setRender:setRender}))});}
@@ -1 +1 @@
1
- export function normalizeSnapPoints(snapPoints,screenHeight){return snapPoints.map(function(point){if(typeof point==='string'&&point.endsWith('%')){var percentage=parseFloat(point)/100;return screenHeight*percentage;}return point;});}export function findClosestSnapPoint(currentPosition,snapPoints){'worklet';var velocity=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;var velocityImpact=velocity*0.03;var adjustedPosition=currentPosition+velocityImpact;var closestIndex=0;var minDistance=Math.abs(snapPoints[0]-adjustedPosition);for(var i=1;i<snapPoints.length;i++){var distance=Math.abs(snapPoints[i]-adjustedPosition);if(distance<minDistance){minDistance=distance;closestIndex=i;}}if(velocity<-1500&&closestIndex<snapPoints.length-1){closestIndex++;}else if(velocity>1500&&closestIndex>0){closestIndex--;}if(snapPoints.length>1){var currentSnapDistance=minDistance;var snapPointSpacing=Math.abs(snapPoints[Math.min(closestIndex+1,snapPoints.length-1)]-snapPoints[closestIndex]);if(currentSnapDistance<snapPointSpacing*0.2){return closestIndex;}}return closestIndex;}export function clamp(value,min,max){'worklet';return Math.min(Math.max(value,min),max);}
1
+ import{is}from'ramda';export function normalizeSnapPoints(snapPoints,screenHeight,bottomInset){return snapPoints.map(function(point){if(typeof point==='string'&&point.endsWith('%')){var percentage=parseFloat(point)/100;return screenHeight*percentage;}if(is(Number,point)){point=point+bottomInset;}return point;});}export function findClosestSnapPoint(currentPosition,snapPoints){'worklet';var velocity=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;var velocityImpact=velocity*0.03;var adjustedPosition=currentPosition+velocityImpact;var closestIndex=0;var minDistance=Math.abs(snapPoints[0]-adjustedPosition);for(var i=1;i<snapPoints.length;i++){var distance=Math.abs(snapPoints[i]-adjustedPosition);if(distance<minDistance){minDistance=distance;closestIndex=i;}}if(velocity<-1500&&closestIndex<snapPoints.length-1){closestIndex++;}else if(velocity>1500&&closestIndex>0){closestIndex--;}if(snapPoints.length>1){var currentSnapDistance=minDistance;var snapPointSpacing=Math.abs(snapPoints[Math.min(closestIndex+1,snapPoints.length-1)]-snapPoints[closestIndex]);if(currentSnapDistance<snapPointSpacing*0.2){return closestIndex;}}return closestIndex;}export function clamp(value,min,max){'worklet';return Math.min(Math.max(value,min),max);}
@@ -1 +1 @@
1
- var _this=this,_jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/bottomDrawer/web/BottomDrawer.js";import{Drawer}from"../../drawer";import{jsx as _jsx}from"react/jsx-runtime";export var BottomDrawer=function BottomDrawer(props){return _jsx(Drawer,Object.assign({height:400},props));};
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["snapPoints","contentProps"];var _this=this,_jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/bottomDrawer/web/BottomDrawer.js";import{Drawer}from"../../drawer";import{jsx as _jsx}from"react/jsx-runtime";export var BottomDrawer=function BottomDrawer(_ref){var snapPoints=_ref.snapPoints,contentProps=_ref.contentProps,props=_objectWithoutProperties(_ref,_excluded);return _jsx(Drawer,Object.assign({height:(snapPoints==null?void 0:snapPoints[0])||400,contentProps:Object.assign({padding:0},contentProps)},props));};
@@ -1 +1 @@
1
- export*from"./Accordion";export*from"./AccordionGroup";export*from"./View";export*from"./GradientView";export*from"./BlurView";export*from"./SafeAreaView";export*from"./Card";export*from"./Row";export*from"./Col";export*from"./modal";export*from"./drawer";export*from"./bottomDrawer";export*from"./popover/Popover";
1
+ export*from"./Accordion";export*from"./AccordionGroup";export*from"./View";export*from"./GradientView";export*from"./BlurView";export*from"./SafeAreaView";export*from"./Card";export*from"./Row";export*from"./Col";export*from"./modal";export*from"./drawer";export*from"./bottomDrawer";export*from"./popover/Popover";export*from"./Segment";
@@ -1 +1 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _defineProperty from"@babel/runtime/helpers/defineProperty";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/overlay/OverlayHandler.js";import{toPairs,dissoc}from'ramda';import React from'react';import{OverlayWrapper}from"./OverlayWrapper";import{Text}from"../../text/Text";import{genRandonId}from"../../../helpers/random";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var OverlayContext=React.createContext(null);export var useOverlay=function useOverlay(){return React.useContext(OverlayContext);};export var useRegisterOverlay=function useRegisterOverlay(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var unmountOnClose=opts.unmountOnClose;var timeout=React.useRef(null);var _useOverlay=useOverlay(),overlays=_useOverlay.overlays,setOverlays=_useOverlay.setOverlays;var randomId=React.useMemo(function(){return genRandonId();},[]);var overlay=overlays[randomId]||{};var mergeOverlay=function mergeOverlay(value){return setOverlays(function(data){return Object.assign({},data,_defineProperty({},randomId,Object.assign({},overlay,value)));});};var closeOverlay=function closeOverlay(){return mergeOverlay({open:false});};var removeOverlay=function removeOverlay(){return setOverlays(function(data){return dissoc(randomId,data);});};var stopDelayedClosing=function stopDelayedClosing(){return!!(timeout!=null&&timeout.current)&&clearTimeout(timeout.current);};React.useEffect(function(){return function(){return removeOverlay();};},[]);var onOpen=function onOpen(_ref){var content=_ref.content,triggerRect=_ref.triggerRect,placement=_ref.placement,_ref$options=_ref.options,options=_ref$options===void 0?{}:_ref$options;stopDelayedClosing();mergeOverlay(Object.assign({open:true,content:content,triggerRect:triggerRect,placement:placement},options));};var onClose=function onClose(){stopDelayedClosing();timeout.current=setTimeout(function(){!!unmountOnClose?removeOverlay():closeOverlay();},250);};var onFastClose=function onFastClose(){stopDelayedClosing();!!unmountOnClose?removeOverlay():closeOverlay();};return{onOpen:onOpen,onClose:onClose,onFastClose:onFastClose,stopDelayedClosing:stopDelayedClosing};};export function OverlayHandler(_ref2){var _this=this;var children=_ref2.children;var _React$useState=React.useState({}),_React$useState2=_slicedToArray(_React$useState,2),overlays=_React$useState2[0],setOverlays=_React$useState2[1];return _jsxs(OverlayContext.Provider,{value:{overlays:overlays,setOverlays:setOverlays},children:[children,toPairs(overlays).map(function(_ref3){var _ref4=_slicedToArray(_ref3,2),key=_ref4[0],overlay=_ref4[1];var handleClickOutside=function handleClickOutside(){return setTimeout(function(){return setOverlays(function(data){return dissoc(key,data);});},100);};return _jsx(OverlayWrapper,{triggerRect:overlay.triggerRect,placement:overlay.placement,onClickOutside:overlay.dismissOnClickOutside?handleClickOutside:null,display:!overlay.open&&'none',children:overlay.content},key);})]});}
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _defineProperty from"@babel/runtime/helpers/defineProperty";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/overlay/OverlayHandler.js";import{toPairs,dissoc}from'ramda';import React from'react';import{OverlayWrapper}from"./OverlayWrapper";import{Text}from"../../text/Text";import{genRandonId}from"../../../helpers/random";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var OverlayContext=React.createContext(null);export var useOverlay=function useOverlay(){return React.useContext(OverlayContext);};export var useRegisterOverlay=function useRegisterOverlay(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var unmountOnClose=opts.unmountOnClose;var timeout=React.useRef(null);var _useOverlay=useOverlay(),overlays=_useOverlay.overlays,setOverlays=_useOverlay.setOverlays;var randomId=React.useMemo(function(){return genRandonId();},[]);var overlay=overlays[randomId]||{};var mergeOverlay=function mergeOverlay(value){return setOverlays(function(data){return Object.assign({},data,_defineProperty({},randomId,Object.assign({},overlay,value)));});};var closeOverlay=function closeOverlay(){return mergeOverlay({open:false});};var removeOverlay=function removeOverlay(){return setOverlays(function(data){return dissoc(randomId,data);});};var stopDelayedClosing=function stopDelayedClosing(){return!!(timeout!=null&&timeout.current)&&clearTimeout(timeout.current);};React.useEffect(function(){return function(){return removeOverlay();};},[]);var onOpen=function onOpen(_ref){var content=_ref.content,triggerRect=_ref.triggerRect,placement=_ref.placement,_ref$options=_ref.options,options=_ref$options===void 0?{}:_ref$options;stopDelayedClosing();mergeOverlay(Object.assign({open:true,content:content,triggerRect:triggerRect,placement:placement},options));};var onUpdate=function onUpdate(_ref2){var content=_ref2.content,_ref2$options=_ref2.options,options=_ref2$options===void 0?{}:_ref2$options;if(!overlay.open)return;mergeOverlay(Object.assign({content:content},options));};var onClose=function onClose(){stopDelayedClosing();timeout.current=setTimeout(function(){!!unmountOnClose?removeOverlay():closeOverlay();},250);};var onFastClose=function onFastClose(){stopDelayedClosing();!!unmountOnClose?removeOverlay():closeOverlay();};return{onOpen:onOpen,onClose:onClose,onUpdate:onUpdate,onFastClose:onFastClose,stopDelayedClosing:stopDelayedClosing};};export function OverlayHandler(_ref3){var _this=this;var children=_ref3.children;var _React$useState=React.useState({}),_React$useState2=_slicedToArray(_React$useState,2),overlays=_React$useState2[0],setOverlays=_React$useState2[1];return _jsxs(OverlayContext.Provider,{value:{overlays:overlays,setOverlays:setOverlays},children:[children,toPairs(overlays).map(function(_ref4){var _ref5=_slicedToArray(_ref4,2),key=_ref5[0],overlay=_ref5[1];var handleClickOutside=function handleClickOutside(){return setTimeout(function(){return setOverlays(function(data){return dissoc(key,data);});},100);};return _jsx(OverlayWrapper,{triggerRect:overlay.triggerRect,placement:overlay.placement,onClickOutside:overlay.dismissOnClickOutside?handleClickOutside:null,display:!overlay.open&&'none',children:overlay.content},key);})]});}
@@ -1 +1 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/popover/Popover.js";var _excluded=["renderContent","content","trigger","placement","unmountOnClose","children","parentWidth","parentMinWidth","useBottomDrawer"],_excluded2=["children","content","renderContent","snapPoints"];import React from'react';import{BottomDrawer}from"../bottomDrawer";import{PopoverContent}from"./PopoverContent";import{useRegisterOverlay}from"../overlay/OverlayHandler";import{useResponsiveValue}from"../../../responsive";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";export function Popover(_ref){var _this=this;var renderContent=_ref.renderContent,content=_ref.content,_ref$trigger=_ref.trigger,trigger=_ref$trigger===void 0?'hover':_ref$trigger,_ref$placement=_ref.placement,placement=_ref$placement===void 0?'bottom':_ref$placement,unmountOnClose=_ref.unmountOnClose,children=_ref.children,parentWidth=_ref.parentWidth,parentMinWidth=_ref.parentMinWidth,_ref$useBottomDrawer=_ref.useBottomDrawer,useBottomDrawer=_ref$useBottomDrawer===void 0?{}:_ref$useBottomDrawer,props=_objectWithoutProperties(_ref,_excluded);var shouldUseDrawer=useResponsiveValue(useBottomDrawer);var ref=React.useRef(null);var _useRegisterOverlay=useRegisterOverlay({unmountOnClose:unmountOnClose}),onOpen=_useRegisterOverlay.onOpen,onClose=_useRegisterOverlay.onClose,onFastClose=_useRegisterOverlay.onFastClose,stopDelayedClosing=_useRegisterOverlay.stopDelayedClosing;var click=trigger==='click';var hover=trigger==='hover';var focus=trigger==='focus';renderContent=renderContent||function(){return content;};var show=function show(e){if(e&&e.stopPropagation)e.stopPropagation();var rect=ref.current.getBoundingClientRect();var scrollX=window.scrollX||window.pageXOffset;var scrollY=window.scrollY||window.pageYOffset;var triggerRect={left:rect.left+scrollX,right:rect.right+scrollX,top:rect.top+scrollY,bottom:rect.bottom+scrollY,width:rect.width,height:rect.height};onOpen({content:_jsx(PopoverContent,Object.assign({placement:placement,width:parentWidth?rect.width:undefined,minWidth:parentMinWidth?rect.width:undefined},props,{onMouseEnter:hover?stopDelayedClosing:undefined,onMouseLeave:hover?onClose:undefined,children:renderContent({onClose:onFastClose})})),triggerRect:triggerRect,placement:placement,options:{dismissOnClickOutside:click||focus}});};React.useEffect(function(){return function(){return onClose();};},[]);if(shouldUseDrawer){return _jsx(DrawerPopover,Object.assign({content:content,renderContent:renderContent,children:children},props));}var child=React.Children.only(children);var childProps={ref:ref,onClick:show};if(hover)childProps={ref:ref,onMouseEnter:show,onMouseLeave:onClose};if(focus)childProps={ref:ref,onFocus:show};return React.cloneElement(child,childProps);}function DrawerPopover(_ref2){var children=_ref2.children,content=_ref2.content,renderContent=_ref2.renderContent,snapPoints=_ref2.snapPoints,props=_objectWithoutProperties(_ref2,_excluded2);var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var onClose=function onClose(){return setOpen(false);};var child=React.Children.only(children);var childProps={onClick:function onClick(){return setOpen(true);}};return _jsxs(_Fragment,{children:[React.cloneElement(child,childProps),_jsx(BottomDrawer,{open:open,onClose:onClose,snapPoints:snapPoints,children:renderContent({onClose:onClose})})]});}
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/popover/Popover.js";var _excluded=["renderContent","content","trigger","placement","unmountOnClose","children","parentWidth","parentMinWidth","useBottomDrawer","bottomDrawerProps","watch","disabled"],_excluded2=["children","content","renderContent","snapPoints"];import React from'react';import{BottomDrawer}from"../bottomDrawer";import{PopoverContent}from"./PopoverContent";import{useRegisterOverlay}from"../overlay/OverlayHandler";import{useResponsiveValue}from"../../../responsive";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";export function Popover(_ref){var _this=this;var renderContent=_ref.renderContent,content=_ref.content,_ref$trigger=_ref.trigger,trigger=_ref$trigger===void 0?'hover':_ref$trigger,_ref$placement=_ref.placement,placement=_ref$placement===void 0?'bottom':_ref$placement,unmountOnClose=_ref.unmountOnClose,children=_ref.children,parentWidth=_ref.parentWidth,parentMinWidth=_ref.parentMinWidth,_ref$useBottomDrawer=_ref.useBottomDrawer,useBottomDrawer=_ref$useBottomDrawer===void 0?{}:_ref$useBottomDrawer,_ref$bottomDrawerProp=_ref.bottomDrawerProps,bottomDrawerProps=_ref$bottomDrawerProp===void 0?{}:_ref$bottomDrawerProp,watch=_ref.watch,disabled=_ref.disabled,props=_objectWithoutProperties(_ref,_excluded);var shouldUseDrawer=useResponsiveValue(useBottomDrawer);var ref=React.useRef(null);var _useRegisterOverlay=useRegisterOverlay({unmountOnClose:unmountOnClose}),onOpen=_useRegisterOverlay.onOpen,onUpdate=_useRegisterOverlay.onUpdate,onClose=_useRegisterOverlay.onClose,onFastClose=_useRegisterOverlay.onFastClose,stopDelayedClosing=_useRegisterOverlay.stopDelayedClosing;var click=trigger==='click';var hover=trigger==='hover';var focus=trigger==='focus';renderContent=renderContent||function(){return content;};var buildContent=function buildContent(){var _ref$current,_ref$current$getBound,_ref$current2,_ref$current2$getBoun;return _jsx(PopoverContent,Object.assign({placement:placement,width:parentWidth?(_ref$current=ref.current)==null?void 0:(_ref$current$getBound=_ref$current.getBoundingClientRect())==null?void 0:_ref$current$getBound.width:undefined,minWidth:parentMinWidth?(_ref$current2=ref.current)==null?void 0:(_ref$current2$getBoun=_ref$current2.getBoundingClientRect())==null?void 0:_ref$current2$getBoun.width:undefined},props,{onMouseEnter:hover?stopDelayedClosing:undefined,onMouseLeave:hover?onClose:undefined,children:renderContent({onClose:onFastClose})}));};var computeTriggerRect=function computeTriggerRect(){var rect=ref.current.getBoundingClientRect();var scrollX=window.scrollX||window.pageXOffset;var scrollY=window.scrollY||window.pageYOffset;return{left:rect.left+scrollX,right:rect.right+scrollX,top:rect.top+scrollY,bottom:rect.bottom+scrollY,width:rect.width,height:rect.height};};var show=function show(e){if(e&&e.stopPropagation)e.stopPropagation();var triggerRect=computeTriggerRect();onOpen({content:buildContent(),triggerRect:triggerRect,placement:placement,options:{dismissOnClickOutside:click||focus}});};React.useEffect(function(){return function(){return onClose();};},[]);React.useEffect(function(){if(!ref.current||!watch)return;onUpdate({content:buildContent(),options:{dismissOnClickOutside:click||focus}});},watch);if(shouldUseDrawer){return _jsx(DrawerPopover,Object.assign({content:content,renderContent:renderContent,children:children},props,bottomDrawerProps));}var child=React.Children.only(children);var childProps={ref:ref,onClick:show};if(hover)childProps={ref:ref,onMouseEnter:show,onMouseLeave:onClose,disabled:disabled};if(focus)childProps={ref:ref,onFocus:show,disabled:disabled};return React.cloneElement(child,childProps);}function DrawerPopover(_ref2){var children=_ref2.children,content=_ref2.content,renderContent=_ref2.renderContent,snapPoints=_ref2.snapPoints,props=_objectWithoutProperties(_ref2,_excluded2);var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var onClose=function onClose(){return setOpen(false);};var child=React.Children.only(children);var childProps={onClick:function onClick(){return setOpen(true);}};return _jsxs(_Fragment,{children:[React.cloneElement(child,childProps),_jsx(BottomDrawer,Object.assign({open:open,onClose:onClose,snapPoints:snapPoints},props,{children:renderContent({onClose:onClose})}))]});}
@@ -1 +1 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/popover/Popover.native.js";var _excluded=["content","renderContent","placement","children","useBottomDrawer","snapPoints"];import{Modal,TouchableWithoutFeedback}from"react-native-web";import React from'react';import{BottomDrawer}from"../bottomDrawer";import{PopoverContent}from"./PopoverContent";import{View}from"../View";import{calculatePosition}from"../overlay/calculatePosition";import{useResponsiveValue}from"../../../responsive";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";export function Popover(_ref){var _position$y,_position$x;var content=_ref.content,renderContent=_ref.renderContent,_ref$placement=_ref.placement,placement=_ref$placement===void 0?'bottom':_ref$placement,children=_ref.children,_ref$useBottomDrawer=_ref.useBottomDrawer,useBottomDrawer=_ref$useBottomDrawer===void 0?{}:_ref$useBottomDrawer,snapPoints=_ref.snapPoints,props=_objectWithoutProperties(_ref,_excluded);var shouldUseDrawer=useResponsiveValue(useBottomDrawer);var ref=React.useRef(null);var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var _React$useState3=React.useState(null),_React$useState4=_slicedToArray(_React$useState3,2),triggerRect=_React$useState4[0],setTriggerRect=_React$useState4[1];var _React$useState5=React.useState(null),_React$useState6=_slicedToArray(_React$useState5,2),position=_React$useState6[0],setPosition=_React$useState6[1];renderContent=renderContent||function(){return content;};var onOpen=function onOpen(){if(shouldUseDrawer){setOpen(true);return;}if(ref.current){ref.current.measureInWindow(function(x,y,width,height){setTriggerRect({left:x,top:y,right:x+width,bottom:y+height,width:width,height:height});setOpen(true);});}};var onClose=function onClose(){setOpen(false);setTriggerRect(null);setPosition(null);};children=React.cloneElement(React.Children.only(children),{onPress:onOpen});if(shouldUseDrawer){return _jsxs(View,{ref:ref,children:[children,_jsx(BottomDrawer,{open:open,onClose:onClose,snapPoints:snapPoints,children:renderContent({onClose:onClose})})]});}return _jsxs(_Fragment,{children:[_jsx(View,{ref:ref,children:children}),open&&_jsx(Modal,{transparent:true,visible:open,animationType:"fade",onRequestClose:onClose,children:_jsx(View,{fullW:true,flex:true,fullH:true,bg:"bg_op50",children:_jsx(TouchableWithoutFeedback,{onPress:onClose,children:_jsx(View,{style:{flex:1},children:triggerRect&&_jsx(View,{style:{position:'absolute',top:(_position$y=position==null?void 0:position.y)!=null?_position$y:-9999,left:(_position$x=position==null?void 0:position.x)!=null?_position$x:-9999},onLayout:function onLayout(e){var _e$nativeEvent$layout=e.nativeEvent.layout,width=_e$nativeEvent$layout.width,height=_e$nativeEvent$layout.height;var popoverRect={width:width,height:height};var pos=calculatePosition(triggerRect,popoverRect,placement,8);setPosition(pos);},children:_jsx(PopoverContent,Object.assign({placement:placement},props,{children:renderContent({onClose:onClose})}))})})})})})]});}
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/popover/Popover.native.js";var _excluded=["content","renderContent","placement","children","useBottomDrawer","bottomDrawerProps","snapPoints"];import{Modal,TouchableWithoutFeedback}from"react-native-web";import React from'react';import{BottomDrawer}from"../bottomDrawer";import{PopoverContent}from"./PopoverContent";import{View}from"../View";import{calculatePosition}from"../overlay/calculatePosition";import{useResponsiveValue}from"../../../responsive";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";export function Popover(_ref){var _position$y,_position$x;var content=_ref.content,renderContent=_ref.renderContent,_ref$placement=_ref.placement,placement=_ref$placement===void 0?'bottom':_ref$placement,children=_ref.children,_ref$useBottomDrawer=_ref.useBottomDrawer,useBottomDrawer=_ref$useBottomDrawer===void 0?{}:_ref$useBottomDrawer,_ref$bottomDrawerProp=_ref.bottomDrawerProps,bottomDrawerProps=_ref$bottomDrawerProp===void 0?{}:_ref$bottomDrawerProp,snapPoints=_ref.snapPoints,props=_objectWithoutProperties(_ref,_excluded);var shouldUseDrawer=useResponsiveValue(useBottomDrawer);var ref=React.useRef(null);var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var _React$useState3=React.useState(null),_React$useState4=_slicedToArray(_React$useState3,2),triggerRect=_React$useState4[0],setTriggerRect=_React$useState4[1];var _React$useState5=React.useState(null),_React$useState6=_slicedToArray(_React$useState5,2),position=_React$useState6[0],setPosition=_React$useState6[1];renderContent=renderContent||function(){return content;};var onOpen=function onOpen(){if(shouldUseDrawer){setOpen(true);return;}if(ref.current){ref.current.measureInWindow(function(x,y,width,height){setTriggerRect({left:x,top:y,right:x+width,bottom:y+height,width:width,height:height});setOpen(true);});}};var onClose=function onClose(){setOpen(false);setTriggerRect(null);setPosition(null);};children=React.cloneElement(React.Children.only(children),{onPress:onOpen});if(shouldUseDrawer){return _jsxs(View,{ref:ref,children:[children,_jsx(BottomDrawer,Object.assign({open:open,onClose:onClose,snapPoints:snapPoints},bottomDrawerProps,{children:renderContent({onClose:onClose})}))]});}return _jsxs(_Fragment,{children:[_jsx(View,{ref:ref,children:children}),open&&_jsx(Modal,{transparent:true,visible:open,animationType:"fade",onRequestClose:onClose,children:_jsx(View,{fullW:true,flex:true,fullH:true,bg:"backdrop_op50",children:_jsx(TouchableWithoutFeedback,{onPress:onClose,children:_jsx(View,{style:{flex:1},children:triggerRect&&_jsx(View,{style:{position:'absolute',top:(_position$y=position==null?void 0:position.y)!=null?_position$y:-9999,left:(_position$x=position==null?void 0:position.x)!=null?_position$x:-9999},onLayout:function onLayout(e){var _e$nativeEvent$layout=e.nativeEvent.layout,width=_e$nativeEvent$layout.width,height=_e$nativeEvent$layout.height;var popoverRect={width:width,height:height};var pos=calculatePosition(triggerRect,popoverRect,placement,8);setPosition(pos);},children:_jsx(PopoverContent,Object.assign({placement:placement},props,{children:renderContent({onClose:onClose})}))})})})})})]});}
@@ -0,0 +1 @@
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/structure/popover/Popover_BU.js";var _excluded=["renderContent","content","trigger","placement","unmountOnClose","children","parentWidth","parentMinWidth","useBottomDrawer","bottomDrawerProps","watch"],_excluded2=["children","content","renderContent","snapPoints"];import React from'react';import{BottomDrawer}from"../bottomDrawer";import{PopoverContent}from"./PopoverContent";import{useRegisterOverlay}from"../overlay/OverlayHandler";import{useResponsiveValue}from"../../../responsive";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";export function Popover(_ref){var _this=this;var renderContent=_ref.renderContent,content=_ref.content,_ref$trigger=_ref.trigger,trigger=_ref$trigger===void 0?'hover':_ref$trigger,_ref$placement=_ref.placement,placement=_ref$placement===void 0?'bottom':_ref$placement,unmountOnClose=_ref.unmountOnClose,children=_ref.children,parentWidth=_ref.parentWidth,parentMinWidth=_ref.parentMinWidth,_ref$useBottomDrawer=_ref.useBottomDrawer,useBottomDrawer=_ref$useBottomDrawer===void 0?{}:_ref$useBottomDrawer,_ref$bottomDrawerProp=_ref.bottomDrawerProps,bottomDrawerProps=_ref$bottomDrawerProp===void 0?{}:_ref$bottomDrawerProp,watch=_ref.watch,props=_objectWithoutProperties(_ref,_excluded);var shouldUseDrawer=useResponsiveValue(useBottomDrawer);var ref=React.useRef(null);var _useRegisterOverlay=useRegisterOverlay({unmountOnClose:unmountOnClose}),onOpen=_useRegisterOverlay.onOpen,onUpdate=_useRegisterOverlay.onUpdate,onClose=_useRegisterOverlay.onClose,onFastClose=_useRegisterOverlay.onFastClose,stopDelayedClosing=_useRegisterOverlay.stopDelayedClosing;var click=trigger==='click';var hover=trigger==='hover';var focus=trigger==='focus';renderContent=renderContent||function(){return content;};var buildContent=function buildContent(){var _ref$current,_ref$current$getBound,_ref$current2,_ref$current2$getBoun;return _jsx(PopoverContent,Object.assign({placement:placement,width:parentWidth?(_ref$current=ref.current)==null?void 0:(_ref$current$getBound=_ref$current.getBoundingClientRect())==null?void 0:_ref$current$getBound.width:undefined,minWidth:parentMinWidth?(_ref$current2=ref.current)==null?void 0:(_ref$current2$getBoun=_ref$current2.getBoundingClientRect())==null?void 0:_ref$current2$getBoun.width:undefined},props,{onMouseEnter:hover?stopDelayedClosing:undefined,onMouseLeave:hover?onClose:undefined,children:renderContent({onClose:onFastClose})}));};var computeTriggerRect=function computeTriggerRect(){var rect=ref.current.getBoundingClientRect();var scrollX=window.scrollX||window.pageXOffset;var scrollY=window.scrollY||window.pageYOffset;return{left:rect.left+scrollX,right:rect.right+scrollX,top:rect.top+scrollY,bottom:rect.bottom+scrollY,width:rect.width,height:rect.height};};var show=function show(e){if(e&&e.stopPropagation)e.stopPropagation();var triggerRect=computeTriggerRect();onOpen({content:buildContent(),triggerRect:triggerRect,placement:placement,options:{dismissOnClickOutside:click||focus}});};React.useEffect(function(){return function(){return onClose();};},[]);React.useEffect(function(){if(!ref.current)return;var triggerRect=computeTriggerRect();onUpdate({content:buildContent(),triggerRect:triggerRect,placement:placement,options:{dismissOnClickOutside:click||focus}});},[watch,renderContent]);if(shouldUseDrawer){return _jsx(DrawerPopover,Object.assign({content:content,renderContent:renderContent,children:children},props,bottomDrawerProps));}var child=React.Children.only(children);var childProps={ref:ref,onClick:show};if(hover)childProps={ref:ref,onMouseEnter:show,onMouseLeave:onClose};if(focus)childProps={ref:ref,onFocus:show};return React.cloneElement(child,childProps);}function DrawerPopover(_ref2){var children=_ref2.children,content=_ref2.content,renderContent=_ref2.renderContent,snapPoints=_ref2.snapPoints,props=_objectWithoutProperties(_ref2,_excluded2);var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];var onClose=function onClose(){return setOpen(false);};var child=React.Children.only(children);var childProps={onClick:function onClick(){return setOpen(true);}};return _jsxs(_Fragment,{children:[React.cloneElement(child,childProps),_jsx(BottomDrawer,Object.assign({open:open,onClose:onClose,snapPoints:snapPoints},props,{children:renderContent({onClose:onClose})}))]});}
@@ -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/tabs/ActiveTabContent.js";var _excluded=["item","active"];import React from'react';import{AnimatedView}from"../animations";import{View}from"../structure";import{useTabs}from"./TabsHandler";import{jsx as _jsx}from"react/jsx-runtime";var duration=100;function Item(_ref){var item=_ref.item,active=_ref.active,props=_objectWithoutProperties(_ref,_excluded);var Content=React.useMemo(function(){return item.renderContent||item.Content;},[item.renderContent,item.Content]);var _React$useState=React.useState(active),_React$useState2=_slicedToArray(_React$useState,2),open=_React$useState2[0],setOpen=_React$useState2[1];React.useEffect(function(){if(!!active){setTimeout(function(){return setOpen(true);},duration);}else{setOpen(active);}},[active]);return _jsx(AnimatedView,Object.assign({open:open,fade:{duration:duration},flex:true,display:!open&&'none'},props,{children:_jsx(Content,{})}));}export function ActiveTabContent(_ref2){var _this=this;var lazy=_ref2.lazy,unmountOnClose=_ref2.unmountOnClose;var _useTabs=useTabs(),activeKey=_useTabs.activeKey,items=_useTabs.items;if(!(items!=null&&items.length))return false;return items.map(function(item){return _jsx(Item,{item:item,active:item.key===activeKey,lazy:lazy,unmountOnClose:unmountOnClose},item.key);});}
@@ -0,0 +1 @@
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/tabs/TabsHandler.js";import React from'react';import{jsx as _jsx}from"react/jsx-runtime";var TabsContext=React.createContext(null);export var useTabs=function useTabs(){return React.useContext(TabsContext)||{};};export function TabsHandler(_ref){var _items$;var children=_ref.children,items=_ref.items,initialKey=_ref.initialKey;var _React$useState=React.useState(initialKey||(items==null?void 0:(_items$=items[0])==null?void 0:_items$.key)),_React$useState2=_slicedToArray(_React$useState,2),activeKey=_React$useState2[0],setActiveKey=_React$useState2[1];var activeTab=React.useMemo(function(){return items==null?void 0:items.find(function(item){return item.key===activeKey;});},[activeKey]);var value={items:items,onChange:setActiveKey,activeKey:activeKey,activeTab:activeTab};return _jsx(TabsContext.Provider,{value:value,children:children});}
@@ -0,0 +1 @@
1
+ var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/tabs/TabsMenu.js";import{Menu}from"../actions";import{SegmentedPicker}from"../inputs";import{useTabs}from"./TabsHandler";import{jsx as _jsx}from"react/jsx-runtime";export function TabsMenu(props){var _useTabs=useTabs(),activeKey=_useTabs.activeKey,items=_useTabs.items,_onChange=_useTabs.onChange;return _jsx(Menu,Object.assign({items:items,activeKey:activeKey,onChange:function onChange(_ref){var key=_ref.key;return _onChange(key);}},props));}export function TabsSegmentedMenu(props){var _useTabs2=useTabs(),activeKey=_useTabs2.activeKey,items=_useTabs2.items,onChange=_useTabs2.onChange;return _jsx(SegmentedPicker,Object.assign({options:items,valueKey:"key",value:activeKey,onChange:onChange},props));}
@@ -0,0 +1 @@
1
+ export*from"./TabsHandler";export*from"./TabsMenu";export*from"./ActiveTabContent";
@@ -0,0 +1 @@
1
+ var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/theme/ThemePicker.js";import{mapObjIndexed,mergeDeepRight,values,pipe,filter}from'ramda';import{DEFAULT_THEMES,useThemeHandler}from"../../theme";import{IconLabel}from"../presentation";import{Link}from"../actions";import{Picker}from"../inputs";import{ThemeThumb}from"./ThemeThumb";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function ThemePicker(_ref){var _this=this;var _onChange=_ref.onChange,onlyKeys=_ref.onlyKeys,hideKeys=_ref.hideKeys;var _useThemeHandler=useThemeHandler(),activeThemeKey=_useThemeHandler.activeThemeKey,setActiveThemeKey=_useThemeHandler.setActiveThemeKey,themes=_useThemeHandler.themes,onChangeTheme=_useThemeHandler.onChangeTheme;var options=pipe(mergeDeepRight(DEFAULT_THEMES),mapObjIndexed(function(obj,key){return Object.assign({},obj,{value:key,key:key});}),values,filter(function(item){if(item.value==='_all')return false;if(onlyKeys&&onlyKeys.includes(item.value))return true;if(hideKeys&&hideKeys.includes(item.value))return false;return true;}))(themes);return _jsx(Picker,{colSpan:12,gap:"lg",value:activeThemeKey,onChange:function onChange(key){setActiveThemeKey(key);onChangeTheme==null?void 0:onChangeTheme(key);_onChange==null?void 0:_onChange(key);},options:options,renderOption:function renderOption(_ref2){var option=_ref2.option,selected=_ref2.selected,onChange=_ref2.onChange;return _jsxs(Link,{onPress:onChange,gap:"xs",children:[_jsx(ThemeThumb,{value:option.value}),_jsx(IconLabel,{center:true,label:option.label,icon:selected&&'checkbox-circle-fill',color:selected?'primary':'text3',strong:true})]});}});}
@@ -0,0 +1 @@
1
+ var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/theme/ThemePickerDrawer.js";import{BottomDrawer}from"../structure";import{ScrollView}from"../list/ScrollView";import{ThemePicker}from"./ThemePicker";import{jsx as _jsx}from"react/jsx-runtime";export function ThemePickerDrawer(_ref){var open=_ref.open,onClose=_ref.onClose,onChange=_ref.onChange;return _jsx(BottomDrawer,{open:open,onClose:onClose,maxWidth:550,snapPoints:['50%','85%'],children:_jsx(ScrollView,{padding:"md",children:_jsx(ThemePicker,{onChange:onChange})})});}
@@ -0,0 +1 @@
1
+ export function ThemeStatusBar(){return false;}
@@ -0,0 +1 @@
1
+ var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/theme/ThemeStatusBar.native.js";import{StatusBar}from"react-native-web";import{useTheme}from"../../theme";import{jsx as _jsx}from"react/jsx-runtime";export function ThemeStatusBar(props){var _useTheme=useTheme(),isDark=_useTheme.isDark;return _jsx(StatusBar,Object.assign({},props,{style:isDark?'dark':'light'}));}
@@ -0,0 +1 @@
1
+ var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/components/theme/ThemeThumb.js";import{View}from"../structure";import{useFormattedTheme}from"../../theme/format/formatTheme";import{useResponsiveValue}from"../../responsive";import{useThemeHandler}from"../../theme";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";export function ThemeThumb(_ref){var value=_ref.value;var _useThemeHandler=useThemeHandler(),themes=_useThemeHandler.themes;var _useFormattedTheme=useFormattedTheme(themes,value),colors=_useFormattedTheme.colors,label=_useFormattedTheme.label;var isMobile=useResponsiveValue({smd:true,df:false});if(isMobile){return _jsx(View,{centerH:true,children:_jsxs(View,{bg:colors.mainBG,height:175,fullW:true,br:"md",hiddenOverflow:true,border:2,brColor:colors.divider,maxWidth:100,children:[_jsxs(View,{bg:colors.overlayBG,height:25,padding:8,row:true,borderB:true,brColor:colors.divider,children:[_jsx(View,{width:25,fullH:true,bg:colors.primary,br:"xxs"}),_jsx(View,{flex:true}),_jsx(View,{ratio:1,fullH:true,bg:colors.divider,round:true})]}),_jsx(View,{flex:true,padding:6,children:_jsxs(View,{br:"md",bg:colors.overlayBG,flex:true,gap:8,padding:8,border:true,brColor:colors.divider,children:[_jsx(View,{bg:colors.text2,height:4,br:"xxs"}),_jsx(View,{bg:colors.text4,height:2,br:"xxs"}),_jsx(View,{bg:colors.text4,height:2,br:"xxs"}),_jsx(View,{bg:colors.text4,height:2,br:"xxs"}),_jsx(View,{bg:colors.text4,height:2,br:"xxs"}),_jsx(View,{bg:colors.text4,height:2,br:"xxs"}),_jsx(View,{flex:true}),_jsx(View,{height:6,fullW:true,bg:colors.primary,br:"xxs"})]})}),_jsxs(View,{bg:colors.overlayBG,height:25,padding:8,row:true,borderT:true,brColor:colors.divider,justify:"space-around",centerV:true,children:[_jsx(View,{ratio:1,fullH:true,bg:colors.divider,round:true}),_jsx(View,{ratio:1,fullH:true,bg:colors.divider,round:true}),_jsx(View,{ratio:1,fullH:true,bg:colors.divider,round:true}),_jsx(View,{ratio:1,fullH:true,bg:colors.divider,round:true}),_jsx(View,{ratio:1,fullH:true,bg:colors.divider,round:true})]})]})});}return _jsxs(View,{bg:colors.mainBG,height:175,fullW:true,br:"md",hiddenOverflow:true,border:2,brColor:colors.divider,children:[_jsxs(View,{bg:colors.overlayBG,height:25,paddingV:8,paddingH:12,row:true,borderB:true,brColor:colors.divider,children:[_jsx(View,{width:25,bg:colors.primary,br:"xxs"}),_jsx(View,{flex:true}),_jsx(View,{ratio:1,fullH:true,bg:colors.text4,round:true})]}),_jsxs(View,{row:true,padding:12,paddingT:8,gap:6,flex:true,children:[_jsxs(View,{br:"xs",bg:colors.overlayBG,flex:true,gap:6,padding:7,border:true,brColor:colors.divider,children:[_jsx(View,{bg:colors.text4,height:2,br:"xxs"}),_jsx(View,{bg:colors.text4,height:2,br:"xxs"}),_jsx(View,{bg:colors.text4,height:2,br:"xxs"}),_jsx(View,{bg:colors.text4,height:2,br:"xxs"}),_jsx(View,{bg:colors.text4,height:2,br:"xxs"})]}),_jsxs(View,{br:"xs",bg:colors.overlayBG,flex:4,gap:8,padding:7,border:true,brColor:colors.divider,children:[_jsx(View,{bg:colors.text2,height:4,br:"xxs",width:30}),_jsx(View,{bg:colors.text4,height:2,br:"xxs",width:'80%'}),_jsx(View,{bg:colors.text4,height:2,br:"xxs",width:'80%'}),_jsx(View,{bg:colors.text4,height:2,br:"xxs",width:'80%'}),_jsx(View,{bg:colors.text4,height:2,br:"xxs",width:'80%'}),_jsx(View,{bg:colors.text4,height:2,br:"xxs",width:'80%'}),_jsx(View,{flex:true}),_jsxs(View,{row:true,toRight:true,gap:6,children:[_jsx(View,{width:25,height:8,bg:colors.text4,br:"xxs"}),_jsx(View,{width:25,height:8,bg:colors.primary,br:"xxs"})]})]})]})]});}
@@ -0,0 +1 @@
1
+ export*from"./ThemePicker";export*from"./ThemePickerDrawer";export*from"./ThemeStatusBar";
@@ -1 +1 @@
1
- export*from"./debounce";export*from"./string";export*from"./random";
1
+ export*from"./debounce";export*from"./string";export*from"./random";export*from"./storage";
@@ -0,0 +1 @@
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import React from'react';import{AbsStorage}from"../abstractions/helpers/storage";function set(key,value){return AbsStorage.set(key,JSON.stringify(value));}function setAsync(key,value){return AbsStorage.setAsync(key,JSON.stringify(value));}function get(key){var value=AbsStorage.get(key);return formatStoragedValue(value);}function getAsync(key){return AbsStorage.setAsync(key).then(function(value){return formatStoragedValue(value);});}function formatStoragedValue(value){try{if(!value)return value;value=JSON.parse(value);if(value==='undefined')return undefined;if(value==='null')return undefined;return value;}catch(e){return value;}}function useState(key,defaultValue){var _React$useState=React.useState(get(key)||defaultValue),_React$useState2=_slicedToArray(_React$useState,2),value=_React$useState2[0],setValue=_React$useState2[1];var handleChange=function handleChange(newValue){set(key,newValue);setValue(newValue);};return[value,handleChange];}export var Storage=Object.assign({},AbsStorage,{set:set,setAsync:setAsync,get:get,getAsync:getAsync,useState:useState});
@@ -1 +1 @@
1
- import{adjust,compose,defaultTo,head,join,juxt,map,pipe,replace,split,tail,toLower,toUpper}from'ramda';export var removeSpecialChars=replace(/[^a-zA-Z ,0-9]/g,'');export var capitalize=compose(join(''),juxt([compose(toUpper,head),tail]),toLower,defaultTo(''));export var capitalizeFirstLetter=compose(join(''),juxt([compose(toUpper,head),tail]),defaultTo(''));export var capitalizeSentence=compose(join(' '),map(capitalize),split('. '),defaultTo(''));export var capitalizeAll=compose(join(' '),map(capitalize),split(' '),defaultTo(''));export var isLower=function isLower(str){return(str||'').toLowerCase()===str;};export var capitalizeIfLower=function capitalizeIfLower(str){return isLower(str)?capitalize(str):str;};export var capitalizeAllIfLower=function capitalizeAllIfLower(str){return isLower(str)?capitalizeAll(str):str;};export var capitalizeSentenceIfLower=function capitalizeSentenceIfLower(str){return isLower(str)?capitalizeSentence(str):str;};export var getInitials=function getInitials(str){if(!str)return'--';if(str.includes(' ')){str=str.split(' ').map(head).join('');}return str.substring(0,2);};export var splitWords=split(new RegExp(/[/\-_ ]/gi));export var toKebabCase=function toKebabCase(str){return str.split('').map(function(letter,index){if(letter==='_')return'-';if((letter==null?void 0:letter.toUpperCase())===letter)return`${index!==0?'-':''}${letter==null?void 0:letter.toLowerCase()}`;return letter;}).join('');};export var toSnakeCase=pipe(toKebabCase,replace(/-/g,'_'));export var toCamelCase=pipe(splitWords,map(capitalize),adjust(0,toLower),join(''));export var truncateString=function truncateString(str,size){if(!size)return str;if(!!str&&str.length>size)return str.substring(0,size)+'...';return str;};export var truncate=truncateString;export var slugify=function slugify(text){return toSnakeCase(text);};
1
+ import{adjust,compose,defaultTo,head,join,juxt,map,pipe,replace,split,tail,toLower,toUpper,trim}from'ramda';export var removeSpecialChars=replace(/[^a-zA-Z ,0-9]/g,'');export var capitalize=compose(join(''),juxt([compose(toUpper,head),tail]),toLower,defaultTo(''));export var capitalizeFirstLetter=compose(join(''),juxt([compose(toUpper,head),tail]),defaultTo(''));export var capitalizeSentence=compose(join(' '),map(capitalize),split('. '),defaultTo(''));export var capitalizeAll=compose(join(' '),map(capitalize),split(' '),defaultTo(''));export var isLower=function isLower(str){return(str||'').toLowerCase()===str;};export var capitalizeIfLower=function capitalizeIfLower(str){return isLower(str)?capitalize(str):str;};export var capitalizeAllIfLower=function capitalizeAllIfLower(str){return isLower(str)?capitalizeAll(str):str;};export var capitalizeSentenceIfLower=function capitalizeSentenceIfLower(str){return isLower(str)?capitalizeSentence(str):str;};export var getInitials=function getInitials(str){if(!str)return'--';if(str.includes(' ')){str=str.split(' ').map(head).join('');}return str.substring(0,2);};export var splitWords=split(new RegExp(/[/\-_ ]/gi));export var toKebabCase=function toKebabCase(str){return str.split('').map(function(letter,index){if(letter==='_')return'-';if((letter==null?void 0:letter.toUpperCase())===letter)return`${index!==0?'-':''}${letter==null?void 0:letter.toLowerCase()}`;return letter;}).join('');};export var toSnakeCase=pipe(toKebabCase,replace(/-/g,'_'));export var toCamelCase=pipe(splitWords,map(capitalize),adjust(0,toLower),join(''));export var truncateString=function truncateString(str,size){if(!size)return str;if(!!str&&str.length>size)return str.substring(0,size)+'...';return str;};export var truncate=truncateString;export var slugify=function slugify(text){return toSnakeCase(text);};export var normalizeString=pipe(toLower,trim,function(str){return str.normalize('NFD').replace(/[\u0300-\u036f]/g,'');});
@@ -0,0 +1 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _asyncToGenerator from"@babel/runtime/helpers/asyncToGenerator";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";var _excluded=["ns","context"];export var I18n=function(){function I18n(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};_classCallCheck(this,I18n);this.language=options.language||'en';this.fallback=options.fallback||'en';this.onChangeLanguage=options.onChangeLanguage;this.resources=options.resources||{};this.loader=options.loader;}return _createClass(I18n,[{key:"addResources",value:function addResources(lang,ns,data){if(!this.resources[lang])this.resources[lang]={};this.resources[lang][ns]=Object.assign({},this.resources[lang][ns],data);}},{key:"changeLanguage",value:function changeLanguage(lang){var _this$onChangeLanguag;this.language=lang;(_this$onChangeLanguag=this.onChangeLanguage)==null?void 0:_this$onChangeLanguag.call(this,lang);}},{key:"tAsync",value:function(){var _tAsync=_asyncToGenerator(function*(key){var _this$resources$this$;var opts=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var _opts$ns=opts.ns,ns=_opts$ns===void 0?'common':_opts$ns;if(!((_this$resources$this$=this.resources[this.language])!=null&&_this$resources$this$[ns])&&this.loader){yield this._loadNamespace(this.language,ns);}return this.t(key,opts);});function tAsync(_x){return _tAsync.apply(this,arguments);}return tAsync;}()},{key:"t",value:function t(key){var _this$resources$this$2;var opts=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var _opts$ns2=opts.ns,ns=_opts$ns2===void 0?'common':_opts$ns2,context=opts.context,vars=_objectWithoutProperties(opts,_excluded);var count=vars==null?void 0:vars.count;if(key.includes(':')){var splittedKey=key.split(':');ns=splittedKey[0];key=splittedKey[1];}var langData=(_this$resources$this$2=this.resources[this.language])==null?void 0:_this$resources$this$2[ns];var value=this._resolveKey(langData,key,count,context);if(context)console.log(context,value);if(!value){var _this$resources$this$3;var fallbackData=(_this$resources$this$3=this.resources[this.fallback])==null?void 0:_this$resources$this$3[ns];value=this._resolveKey(fallbackData,key,count,context)||key;}return this._interpolate(value,vars);}},{key:"_loadNamespace",value:function(){var _loadNamespace2=_asyncToGenerator(function*(lang,ns){if(!this.loader)return;var data=yield this.loader(lang,ns);this.addResources(lang,ns,data);});function _loadNamespace(_x2,_x3){return _loadNamespace2.apply(this,arguments);}return _loadNamespace;}()},{key:"_resolveKey",value:function _resolveKey(nsData,key,count,context){if(!nsData)return null;var parts=key.split('.');var basePath=parts.slice(0,-1);var baseKey=parts[parts.length-1];var parent=basePath.reduce(function(acc,part){return acc?acc[part]:undefined;},nsData)||nsData;if(!parent)return null;if(context){var contextKey=`${baseKey}_${context}`;if(parent[contextKey]!=null){return parent[contextKey];}}if(typeof count==='number'){if(count===0){var singularKey=`${baseKey}_zero`;if(parent[singularKey]!=null){return parent[singularKey];}}if(count===1){var _singularKey=`${baseKey}_one`;if(parent[_singularKey]!=null){return parent[_singularKey];}}}return parent[baseKey];}},{key:"_interpolate",value:function _interpolate(str,vars){if(typeof str!=='string')return str;return str.replace(/\{\{(.*?)\}\}/g,function(_,v){var _vars$v$trim;return(_vars$v$trim=vars[v.trim()])!=null?_vars$v$trim:'';});}}]);}();
@@ -0,0 +1 @@
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/i18n/I18nProvider.js";import React from'react';import{I18n}from"./I18n";import{jsx as _jsx}from"react/jsx-runtime";var I18nContext=React.createContext();export function I18nProvider(_ref){var children=_ref.children,i18n=_ref.i18n,config=_ref.config;var i18nRef=React.useRef(i18n||new I18n(config));var _React$useState=React.useState(0),_React$useState2=_slicedToArray(_React$useState,2),v=_React$useState2[0],setVersion=_React$useState2[1];var forceUpdate=React.useCallback(function(){return setVersion(function(v){return v+1;});},[]);var changeLanguage=React.useCallback(function(lang){i18nRef.current.changeLanguage(lang);forceUpdate();},[forceUpdate]);var value=React.useMemo(function(){return{t:function t(){var _i18nRef$current;return(_i18nRef$current=i18nRef.current).t.apply(_i18nRef$current,arguments);},i18n:i18nRef.current,v:v,language:i18nRef.current.language,changeLanguage:changeLanguage};},[v,forceUpdate,changeLanguage]);return _jsx(I18nContext.Provider,{value:value,children:children});}export function useTranslation(namespace){var ctx=React.useContext(I18nContext);if(!ctx)throw new Error('useTranslation must be used inside <I18nProvider>');var t=function t(key){var opts=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return ctx==null?void 0:ctx.t==null?void 0:ctx.t(key,Object.assign({ns:namespace},opts));};return Object.assign({},ctx,{t:t});}
@@ -0,0 +1 @@
1
+ export*from"./I18nProvider";export*from"./I18n";
package/dist/index.css CHANGED
@@ -62,6 +62,10 @@ button {
62
62
  opacity: 0.95;
63
63
  }
64
64
 
65
+ /* ::placeholder { */
66
+ /* color: rgba(127, 127, 127, 0.4); */
67
+ /* } */
68
+
65
69
  @keyframes wave-effect {
66
70
  0% {
67
71
  opacity: 1;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export*from"./helpers";export*from"./components";export*from"./theme";export*from"./responsive";export*from"./NekoUI";export var version=41;
1
+ export*from"./helpers";export*from"./components";export*from"./theme";export*from"./responsive";export*from"./i18n";export*from"./NekoUI";export var version=41;
@@ -0,0 +1 @@
1
+ import{useFadeEffect as useFadeEffectNative}from"./fadeEffect.native";export var useFadeEffect=useFadeEffectNative;
@@ -0,0 +1 @@
1
+ import{useScrollEffect as useScrollEffectNative}from"./scrollEffect.native";export var useScrollEffect=useScrollEffectNative;
@@ -0,0 +1 @@
1
+ import{useSlideEffect as useSlideEffectNative}from"./slideEffect.native";export var useSlideEffect=useSlideEffectNative;
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _excluded=["color"],_excluded2=["outline","fill"];import tinycolor from'tinycolor2';import{getContrastColor}from"../theme/helpers/contrastColor";import{useGetColor}from"../theme/ThemeHandler";export function useFullColorModifier(_ref){var _ref2=_slicedToArray(_ref,2),_ref2$=_ref2[0],color=_ref2$.color,values=_objectWithoutProperties(_ref2$,_excluded),_ref2$2=_ref2[1],outline=_ref2$2.outline,fill=_ref2$2.fill,props=_objectWithoutProperties(_ref2$2,_excluded2);var getColor=useGetColor();var bg=color;var bgObj=tinycolor(getColor(bg));var borderColor=color;var fontColor='text';if(!!outline&&fill!==true){bg='transparent';fontColor=color;}else{fontColor=getContrastColor(bgObj,[getColor('text'),getColor('overlayBG')]);}return[Object.assign({},values,{fontColor:fontColor}),Object.assign({},props,{bg:bg,borderColor:borderColor})];}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _excluded=["color"],_excluded2=["outline","contrastTolerance","fill"];import tinycolor from'tinycolor2';import{getContrastColor}from"../theme/helpers/contrastColor";import{useGetColor}from"../theme/ThemeHandler";export function useFullColorModifier(_ref){var _ref2=_slicedToArray(_ref,2),_ref2$=_ref2[0],color=_ref2$.color,values=_objectWithoutProperties(_ref2$,_excluded),_ref2$2=_ref2[1],outline=_ref2$2.outline,contrastTolerance=_ref2$2.contrastTolerance,fill=_ref2$2.fill,props=_objectWithoutProperties(_ref2$2,_excluded2);var getColor=useGetColor();var bg=color;var bgObj=tinycolor(getColor(bg));var borderColor=color;var fontColor='text';if(!!outline&&fill!==true){bg='transparent';fontColor=color;}else{fontColor=getContrastColor(bgObj,[getColor('overlayBG'),getColor('text')],contrastTolerance);}return[Object.assign({},values,{fontColor:fontColor}),Object.assign({},props,{bg:bg,borderColor:borderColor})];}
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _excluded=["hiddenOverflow","scroll","scrollY","scrollX","overflow","overflowY","overflowX"];import{clearProps}from"./_helpers";export function useOverflowModifier(_ref){var _ref2=_slicedToArray(_ref,2),values=_ref2[0],props=_ref2[1];var hiddenOverflow=props.hiddenOverflow,scroll=props.scroll,scrollY=props.scrollY,scrollX=props.scrollX,overflow=props.overflow,overflowY=props.overflowY,overflowX=props.overflowX,restProps=_objectWithoutProperties(props,_excluded);if(hiddenOverflow)overflow='hidden';if(scroll)overflow='scroll';if(scrollY)overflowY='scroll';if(scrollX)overflowX='scroll';var style=clearProps({overflow:overflow,overflowY:overflowY,overflowX:overflowX});return[values,Object.assign({},restProps,{style:Object.assign({},props.style,style)})];}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _excluded=["hiddenOverflow","scroll","noScroll","scrollY","scrollX","overflow","overflowY","overflowX"];import{clearProps}from"./_helpers";export function useOverflowModifier(_ref){var _ref2=_slicedToArray(_ref,2),values=_ref2[0],props=_ref2[1];var hiddenOverflow=props.hiddenOverflow,scroll=props.scroll,noScroll=props.noScroll,scrollY=props.scrollY,scrollX=props.scrollX,overflow=props.overflow,overflowY=props.overflowY,overflowX=props.overflowX,restProps=_objectWithoutProperties(props,_excluded);if(hiddenOverflow)overflow='hidden';if(scroll)overflow='scroll';if(scrollY)overflowY='scroll';if(scrollX)overflowX='scroll';if(noScroll){if(overflow==='scroll')overflow=undefined;if(overflowY==='scroll')overflowY=undefined;if(overflowX==='scroll')overflowX=undefined;}var style=clearProps({overflow:overflow,overflowY:overflowY,overflowX:overflowX});return[values,Object.assign({},restProps,{style:Object.assign({},props.style,style)})];}
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _excluded=["position","absolute","absoluteFill","fixedFill","relative","fixed","sticky","top","bottom","left","right","zIndex"];import{Platform}from"../abstractions/Platform";import{clearProps}from"./_helpers";export function usePositionModifier(_ref){var _ref2=_slicedToArray(_ref,2),values=_ref2[0],props=_ref2[1];var position=props.position,absolute=props.absolute,absoluteFill=props.absoluteFill,fixedFill=props.fixedFill,relative=props.relative,fixed=props.fixed,sticky=props.sticky,top=props.top,bottom=props.bottom,left=props.left,right=props.right,zIndex=props.zIndex,restProps=_objectWithoutProperties(props,_excluded);if(!zIndex&&!!absolute)zIndex=10;if(absolute||absoluteFill)position='absolute';if(relative)position='relative';if(fixed||fixedFill)position='fixed';if(sticky)position='sticky';if(absoluteFill||fixedFill){top=0;bottom=0;left=0;right=0;}if(Platform.OS!=='web'&&['fixed','sticky'].includes(position)){position='absolute';}var style=clearProps({position:position,top:top,bottom:bottom,left:left,right:right,zIndex:zIndex});return[values,Object.assign({},restProps,{style:Object.assign({},props.style,style)})];}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _excluded=["position","absolute","absoluteFill","fixedFill","relative","fixed","sticky","top","bottom","left","right","zIndex"];import{Platform}from"../abstractions/Platform";import{clearProps}from"./_helpers";import{useGetSpace}from"../theme";export function usePositionModifier(_ref){var _ref2=_slicedToArray(_ref,2),values=_ref2[0],props=_ref2[1];var getSpace=useGetSpace();var position=props.position,absolute=props.absolute,absoluteFill=props.absoluteFill,fixedFill=props.fixedFill,relative=props.relative,fixed=props.fixed,sticky=props.sticky,top=props.top,bottom=props.bottom,left=props.left,right=props.right,zIndex=props.zIndex,restProps=_objectWithoutProperties(props,_excluded);if(!zIndex&&!!absolute)zIndex=10;if(absolute||absoluteFill)position='absolute';if(relative)position='relative';if(fixed||fixedFill)position='fixed';if(sticky)position='sticky';top=getSpace(top);bottom=getSpace(bottom);right=getSpace(right);left=getSpace(left);if(absoluteFill||fixedFill){top=0;bottom=0;left=0;right=0;}if(Platform.OS!=='web'&&['fixed','sticky'].includes(position)){position='absolute';}var style=clearProps({position:position,top:top,bottom:bottom,left:left,right:right,zIndex:zIndex});return[values,Object.assign({},restProps,{style:Object.assign({},props.style,style)})];}
@@ -1 +1 @@
1
- import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/theme/ThemeHandler.js";import{mergeDeepRight}from'ramda';import React from'react';import{DEFAULT_LIGHT_THEME}from"./default/lightTheme";import{getThemeValue}from"./helpers/relatedScales";import{useFormattedTheme}from"./format/formatTheme";import{jsx as _jsx}from"react/jsx-runtime";var DEFAULT_BREAKPOINTS=[{name:'sm',value:768},{name:'md',value:1024},{name:'lg',value:1440},{name:'xl',value:10000}];var ThemeContext=React.createContext(null);export var useThemeHandler=function useThemeHandler(){return React.useContext(ThemeContext)||{};};export var useBreakpoints=function useBreakpoints(){var _useThemeHandler;return((_useThemeHandler=useThemeHandler())==null?void 0:_useThemeHandler.breakpoints)||DEFAULT_BREAKPOINTS;};export var useTheme=function useTheme(groupKey){var theme=useThemeHandler().theme||DEFAULT_LIGHT_THEME;if(!groupKey)return theme;return(theme==null?void 0:theme[groupKey])||{};};export var useGetThemeValue=function useGetThemeValue(groupKey){var group=useTheme(groupKey);return function(key){return getThemeValue(group,key);};};export var useColors=function useColors(){return useTheme('colors');};export var useGetColor=function useGetColor(){return useGetThemeValue('colors');};export var useSpaces=function useSpaces(){return useTheme('spaces');};export var useGetSpace=function useGetSpace(){return useGetThemeValue('spaces');};export var useRadius=function useRadius(){return useTheme('radius');};export var useGetRadius=function useGetRadius(){return useGetThemeValue('radius');};export var useElementHeights=function useElementHeights(){return useTheme('elementHeights');};export var useGetElementHeight=function useGetElementHeight(){return useGetThemeValue('elementHeights');};export var useTexts=function useTexts(){return useTheme('texts');};export var useGetText=function useGetText(){return useGetThemeValue('text');};export var useThemeComponents=function useThemeComponents(){return useTheme('components');};export function useThemeComponent(name){var components=useThemeComponents();return components[name]||{};}export function useMergeThemeComponent(name,props){var themeProps=useThemeComponent(name);return mergeDeepRight(themeProps,props);}export function ThemeHandler(_ref){var breakpoints=_ref.breakpoints,themes=_ref.themes,initTheme=_ref.initTheme,children=_ref.children;var _React$useState=React.useState(initTheme||'light'),_React$useState2=_slicedToArray(_React$useState,2),activeThemeKey=_React$useState2[0],setActiveThemeKey=_React$useState2[1];var theme=useFormattedTheme(themes,activeThemeKey);var value={theme:theme,themes:themes,activeThemeKey:activeThemeKey,setActiveThemeKey:setActiveThemeKey,breakpoints:breakpoints||DEFAULT_BREAKPOINTS};return _jsx(ThemeContext.Provider,{value:value,children:children});}
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/theme/ThemeHandler.js";import{mergeDeepRight}from'ramda';import React from'react';import{DEFAULT_LIGHT_THEME}from"./default/lightTheme";import{getThemeValue}from"./helpers/relatedScales";import{useFormattedTheme}from"./format/formatTheme";import{jsx as _jsx}from"react/jsx-runtime";var DEFAULT_BREAKPOINTS=[{name:'sm',value:768},{name:'md',value:1024},{name:'lg',value:1440},{name:'xl',value:10000}];var ThemeContext=React.createContext(null);export var useThemeHandler=function useThemeHandler(){return React.useContext(ThemeContext)||{};};export var useBreakpoints=function useBreakpoints(){var _useThemeHandler;return((_useThemeHandler=useThemeHandler())==null?void 0:_useThemeHandler.breakpoints)||DEFAULT_BREAKPOINTS;};export var useTheme=function useTheme(groupKey){var theme=useThemeHandler().theme||DEFAULT_LIGHT_THEME;if(!groupKey)return theme;return(theme==null?void 0:theme[groupKey])||{};};export var useGetThemeValue=function useGetThemeValue(groupKey){var group=useTheme(groupKey);return function(key){return getThemeValue(group,key);};};export var useColors=function useColors(){return useTheme('colors');};export var useGetColor=function useGetColor(){return useGetThemeValue('colors');};export var useSpaces=function useSpaces(){return useTheme('spaces');};export var useGetSpace=function useGetSpace(){return useGetThemeValue('spaces');};export var useRadius=function useRadius(){return useTheme('radius');};export var useGetRadius=function useGetRadius(){return useGetThemeValue('radius');};export var useElementHeights=function useElementHeights(){return useTheme('elementHeights');};export var useGetElementHeight=function useGetElementHeight(){return useGetThemeValue('elementHeights');};export var useTexts=function useTexts(){return useTheme('texts');};export var useGetText=function useGetText(){return useGetThemeValue('text');};export var useThemeComponents=function useThemeComponents(){return useTheme('components');};export function useThemeComponent(name){var components=useThemeComponents();return components[name]||{};}export function useMergeThemeComponent(name,props){var themeProps=useThemeComponent(name);return mergeDeepRight(themeProps,props);}export function ThemeHandler(_ref){var breakpoints=_ref.breakpoints,themes=_ref.themes,initTheme=_ref.initTheme,onChangeTheme=_ref.onChangeTheme,children=_ref.children;var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),themePickerOpen=_React$useState2[0],setThemePickerOpen=_React$useState2[1];var openThemePicker=function openThemePicker(){return setThemePickerOpen(true);};var _React$useState3=React.useState(initTheme||'light'),_React$useState4=_slicedToArray(_React$useState3,2),activeThemeKey=_React$useState4[0],setActiveThemeKey=_React$useState4[1];var toggleTheme=function toggleTheme(){return setActiveThemeKey(activeThemeKey==='light'?'dark':'light');};var theme=useFormattedTheme(themes,activeThemeKey);var value={theme:theme,themes:themes,activeThemeKey:activeThemeKey,setActiveThemeKey:setActiveThemeKey,toggleTheme:toggleTheme,themePickerOpen:themePickerOpen,setThemePickerOpen:setThemePickerOpen,onChangeTheme:onChangeTheme,openThemePicker:openThemePicker,toggleTheme:toggleTheme,breakpoints:breakpoints||DEFAULT_BREAKPOINTS};return _jsx(ThemeContext.Provider,{value:value,children:children});}
@@ -1 +1 @@
1
- export var BASE_THEME={spaces:{xxxs:1,xxs:3,xs:5,sm:10,md:15,lg:20,xl:30,xxl:40,xxxl:50},radius:{xxxs:4,xxs:5,xs:5,sm:7,md:8,lg:10,xl:12,xxl:15,xxxl:18},icons:{xxxs:10,xxs:12,xs:14,sm:16,md:18,lg:22,xl:26,xxl:28,xxxl:32},elementHeights:{xs:20,sm:30,md:35,lg:50,xl:60},texts:{h1:{fontSize:32,strong:true},h2:{fontSize:26,strong:true},h3:{fontSize:22,strong:true},h4:{fontSize:18,strong:true},h5:{fontSize:16,strong:true},h6:{fontSize:14,strong:true},p:{fontSize:14},sm:{fontSize:12},xs:{fontSize:10},xxs:{fontSize:8}}};
1
+ export var BASE_THEME={spaces:{xxxs:1,xxs:3,xs:5,sm:10,md:15,lg:20,xl:30,xxl:40,xxxl:50},radius:{xxxs:4,xxs:5,xs:5,sm:7,md:8,lg:10,xl:12,xxl:15,xxxl:18},icons:{xxxs:10,xxs:12,xs:14,sm:16,md:18,lg:22,xl:26,xxl:28,xxxl:32},elementHeights:{xxxs:10,xxs:15,xs:20,sm:30,md:35,lg:40,xl:50,xxl:60,xxxl:70},texts:{h1:{fontSize:35,strong:true},h2:{fontSize:28,strong:true},h3:{fontSize:26,strong:true},h4:{fontSize:22,strong:true},h5:{fontSize:18,strong:true},h6:{fontSize:16,strong:true},p:{fontSize:14},sm:{fontSize:12},xs:{fontSize:10},xxs:{fontSize:8}}};
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_BLACK_THEME=mergeDeepRight(BASE_THEME,{colors:{primary:'#818DF9',text:'#FFFFFF',text2:'#E0E0E0',text3:'#B0B0B0',text4:'#8A8A8A',bg:'#0f0f0f',overlayBG:'#000000',backdrop:'#1f1f1f',shadow:'rgba(216, 210, 203, 0.1)',divider:'#383E44',blue:'#4DA3FF',yellow:'#FFD93B',green:'#4CAF50',purple:'#9B59B6',orange:'#FF7F50',cyan:'#00BCD4',red:'#E74C3C',navy:'#34495E',indigo:'#5C6BC0',gray:'#9E9E9E',brown:'#8D6E63',lylac:'#B39DDB',pink:'#F48FB1'}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_BLACK_THEME=mergeDeepRight(BASE_THEME,{label:'Pitch Black',colors:{primary:'#818DF9',text:'#FFFFFF',text2:'#E0E0E0',text3:'#B0B0B0',text4:'#8A8A8A',mainBG:'#0f0f0f',overlayBG:'#000000',backdrop:'#1f1f1f',shadow:'rgba(216, 210, 203, 0.1)',divider:'#383E44',blue:'#4DA3FF',yellow:'#FFD93B',green:'#4CAF50',purple:'#9B59B6',orange:'#FF7F50',cyan:'#00BCD4',red:'#E74C3C',navy:'#34495E',indigo:'#5C6BC0',gray:'#9E9E9E',brown:'#8D6E63',lylac:'#B39DDB',pink:'#F48FB1'}});
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var CYBERPUNK_DARK_THEME=mergeDeepRight(BASE_THEME,{colors:{primary:'#FCEE09',text:'#FFFFFF',text2:'#B3B3B3',text3:'#8C8C8C',text4:'#666666',bg:'#0A0A0F',overlayBG:'#14141F',backdrop:'#0A0A0F',shadow:'rgba(39, 45, 52, 0.6)',divider:'rgba(255,255,255, 0.2)',blue:'#00E5FF',yellow:'#FFD600',green:'#00FF9D',purple:'#D500F9',orange:'#FF9100',cyan:'#00B8D4',red:'#FF1744',navy:'#1E2A38',indigo:'#651FFF',gray:'#757575',brown:'#6D4C41',lylac:'#B388FF',pink:'#FF80AB'}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var CYBERPUNK_DARK_THEME=mergeDeepRight(BASE_THEME,{label:'Cyberpunk',colors:{primary:'#FCEE09',text:'#FFFFFF',text2:'#B3B3B3',text3:'#8C8C8C',text4:'#666666',mainBG:'#14141F',overlayBG:'#14141F',backdrop:'#0A0A0F',shadow:'rgba(39, 45, 52, 0.6)',divider:'rgba(255,255,255, 0.2)',blue:'#00E5FF',yellow:'#FFD600',green:'#00FF9D',purple:'#D500F9',orange:'#FF9100',cyan:'#00B8D4',red:'#FF1744',navy:'#1E2A38',indigo:'#651FFF',gray:'#757575',brown:'#6D4C41',lylac:'#B388FF',pink:'#FF80AB'}});
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_DARK_THEME=mergeDeepRight(BASE_THEME,{colors:{primary:'#818DF9',text:'#FFFFFF',text2:'#E0E0E0',text3:'#B0B0B0',text4:'#8A8A8A',bg:'#383E44',overlayBG:'#272D34',backdrop:'#383E44',shadow:'rgba(216, 210, 203, 0.1)',divider:'#383E44',blue:'#4DA3FF',yellow:'#FFD93B',green:'#4CAF50',purple:'#9B59B6',orange:'#FF7F50',cyan:'#00BCD4',red:'#E74C3C',navy:'#34495E',indigo:'#5C6BC0',gray:'#9E9E9E',brown:'#8D6E63',lylac:'#B39DDB',pink:'#F48FB1'}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_DARK_THEME=mergeDeepRight(BASE_THEME,{label:'Dark',colors:{primary:'#818DF9',text:'#FFFFFF',text2:'#E0E0E0',text3:'#B0B0B0',text4:'#8A8A8A',mainBG:'#383E44',overlayBG:'#272D34',backdrop:'#383E44',shadow:'rgba(216, 210, 203, 0.1)',divider:'#383E44',blue:'#4DA3FF',yellow:'#FFD93B',green:'#4CAF50',purple:'#9B59B6',orange:'#FF7F50',cyan:'#00BCD4',red:'#E74C3C',navy:'#34495E',indigo:'#5C6BC0',gray:'#9E9E9E',brown:'#8D6E63',lylac:'#B39DDB',pink:'#F48FB1'}});
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEEP_WOODS_DARK_THEME=mergeDeepRight(BASE_THEME,{colors:{primary:'#4CAF50',text:'#F0F8F2',text2:'#C8E6C9',text3:'#A5D6A7',text4:'#81C784',bg:'#0D1B14',overlayBG:'#16281F',backdrop:'#0D1B14',shadow:'rgba(39, 45, 52, 0.6)',divider:'rgba(255,255,255, 0.2)',blue:'#64B5F6',yellow:'#FBC02D',green:'#81C784',purple:'#9575CD',orange:'#FFB74D',cyan:'#4DD0E1',red:'#E57373',navy:'#1B263B',indigo:'#5C6BC0',gray:'#9E9E9E',brown:'#8D6E63',lylac:'#B39DDB',pink:'#F48FB1'}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEEP_WOODS_DARK_THEME=mergeDeepRight(BASE_THEME,{label:'Deep Woods',colors:{primary:'#4CAF50',text:'#C8E6C9',text2:'#C8E6C9',text3:'#A5D6A7',text4:'#81C784',mainBG:'#0D1B14',overlayBG:'#16281F',backdrop:'#0D1B14',shadow:'rgba(39, 45, 52, 0.6)',divider:'rgba(255,255,255, 0.2)',blue:'#64B5F6',yellow:'#FBC02D',green:'#81C784',purple:'#9575CD',orange:'#FFB74D',cyan:'#4DD0E1',red:'#E57373',navy:'#1B263B',indigo:'#5C6BC0',gray:'#9E9E9E',brown:'#8D6E63',lylac:'#B39DDB',pink:'#F48FB1'}});
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var FOREST_MIST_THEME=mergeDeepRight(BASE_THEME,{colors:{primary:'#4CAF50',text:'#0B2414',text2:'#14532D',text3:'#1B5E20',text4:'#388E3C',bg:'#E9F5EC',overlayBG:'#FFFFFF',backdrop:'#E9F5EC',shadow:'rgba(39, 45, 52, 0.15)',divider:'rgba(0,0,0, 0.1)',blue:'#2563EB',yellow:'#F59E0B',green:'#15803D',purple:'#7C3AED',orange:'#EA580C',cyan:'#0891B2',red:'#B91C1C',navy:'#1E3A8A',indigo:'#4338CA',gray:'#94A3B8',brown:'#78350F',lylac:'#A78BFA',pink:'#F472B6'}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var FOREST_MIST_THEME=mergeDeepRight(BASE_THEME,{label:'Forest Mist',colors:{primary:'#4CAF50',text:'#0B2414',text2:'#14532D',text3:'#1B5E20',text4:'#388E3C',mainBG:'#E9F5EC',overlayBG:'#FFFFFF',backdrop:'#E9F5EC',shadow:'rgba(39, 45, 52, 0.15)',divider:'rgba(0,0,0, 0.1)',blue:'#2563EB',yellow:'#F59E0B',green:'#15803D',purple:'#7C3AED',orange:'#EA580C',cyan:'#0891B2',red:'#B91C1C',navy:'#1E3A8A',indigo:'#4338CA',gray:'#94A3B8',brown:'#78350F',lylac:'#A78BFA',pink:'#F472B6'}});
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_MATRIX_THEME=mergeDeepRight(BASE_THEME,{colors:{primary:'#00FF41',text:'#00FF41',text2:'#00CC33',text3:'#009926',text4:'#00661A',bg:'#000000',overlayBG:'#0A0A0A',backdrop:'#000000',shadow:'rgba(0, 255, 65, 0.2)',divider:'rgba(0,255,65, 0.3)',blue:'#0087BD',yellow:'#AEBF00',green:'#00FF41',purple:'#7A1FA2',orange:'#FF6D00',cyan:'#00BFA5',red:'#D50000',navy:'#003366',indigo:'#303F9F',gray:'#4A4A4A',brown:'#5D4037',lylac:'#8E24AA',pink:'#C51162'},components:{Card:{border:1,br:5,borderColor:'divider'}}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_MATRIX_THEME=mergeDeepRight(BASE_THEME,{label:'Hacker',colors:{primary:'#00FF41',text:'#00FF41',text2:'#00CC33',text3:'#009926',text4:'#00661A',mainBG:'#000000',overlayBG:'#0A0A0A',backdrop:'#000000',shadow:'rgba(0, 255, 65, 0.2)',divider:'rgba(0,255,65, 0.3)',blue:'#0087BD',yellow:'#AEBF00',green:'#00FF41',purple:'#7A1FA2',orange:'#FF6D00',cyan:'#00BFA5',red:'#D50000',navy:'#003366',indigo:'#303F9F',gray:'#4A4A4A',brown:'#5D4037',lylac:'#8E24AA',pink:'#C51162'},components:{Card:{border:1,br:5,borderColor:'divider'}}});
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_LIGHT_THEME=mergeDeepRight(BASE_THEME,{colors:{primary:'#818DF9',text:'#272D34',text2:'#4A5159',text3:'#6E7680',text4:'#9AA1AC',bg:'#F4F5FE',overlayBG:'#FFFFFF',backdrop:'#383E44',shadow:'rgba(39, 45, 52, 0.15)',divider:'#e0e0e0',blue:'#4DA3FF',yellow:'#FFD93B',green:'#4CAF50',purple:'#9B59B6',orange:'#FF7F50',cyan:'#00BCD4',red:'#E74C3C',navy:'#34495E',indigo:'#5C6BC0',gray:'#B0BEC5',brown:'#8D6E63',lylac:'#B39DDB',pink:'#F48FB1'}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_LIGHT_THEME=mergeDeepRight(BASE_THEME,{label:'Light',colors:{primary:'#818DF9',text:'#272D34',text2:'#4A5159',text3:'#6E7680',text4:'#9AA1AC',mainBG:'#F4F5FE',overlayBG:'#FFFFFF',backdrop:'#383E44',shadow:'rgba(39, 45, 52, 0.15)',divider:'#e0e0e0',blue:'#4DA3FF',yellow:'#FFD93B',green:'#4CAF50',purple:'#9B59B6',orange:'#FF7F50',cyan:'#00BCD4',red:'#E74C3C',navy:'#34495E',indigo:'#5C6BC0',gray:'#B0BEC5',brown:'#8D6E63',lylac:'#B39DDB',pink:'#F48FB1'}});
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var MIDNIGHT_NEON_THEME=mergeDeepRight(BASE_THEME,{colors:{primary:'#FF00FF',text:'#F0F0F0',text2:'#D4D4D4',text3:'#A3A3A3',text4:'#7A7A7A',bg:'#0D0D0D',overlayBG:'#1A1A1A',backdrop:'#0D0D0D',shadow:'rgba(39, 45, 52, 0.6)',divider:'rgba(255,255,255, 0.2)',blue:'#3B82F6',yellow:'#FACC15',green:'#22C55E',purple:'#A855F7',orange:'#FB923C',cyan:'#06B6D4',red:'#F87171',navy:'#1E3A8A',indigo:'#6366F1',gray:'#9CA3AF',brown:'#92400E',lylac:'#C084FC',pink:'#F472B6'}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var MIDNIGHT_NEON_THEME=mergeDeepRight(BASE_THEME,{label:'Midnight',colors:{primary:'#FF00FF',text:'#F0F0F0',text2:'#D4D4D4',text3:'#A3A3A3',text4:'#7A7A7A',mainBG:'#0D0D0D',overlayBG:'#1A1A1A',backdrop:'#0D0D0D',shadow:'rgba(39, 45, 52, 0.6)',divider:'rgba(255,255,255, 0.2)',blue:'#3B82F6',yellow:'#FACC15',green:'#22C55E',purple:'#A855F7',orange:'#FB923C',cyan:'#06B6D4',red:'#F87171',navy:'#1E3A8A',indigo:'#6366F1',gray:'#9CA3AF',brown:'#92400E',lylac:'#C084FC',pink:'#F472B6'}});
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_MSDOS_THEME=mergeDeepRight(BASE_THEME,{colors:{primary:'#FFFF00',text:'#FFFFFF',text2:'#FFD700',text3:'#CCCCCC',text4:'#999999',bg:'#0000AA',overlayBG:'#000088',backdrop:'#0000AA',shadow:'rgba(0, 0, 0, 0.6)',divider:'rgba(255,255,255,0.3)',blue:'#0000FF',yellow:'#FFFF00',green:'#00FF00',purple:'#AA00FF',orange:'#FF7700',cyan:'#00FFFF',red:'#FF0000',navy:'#000080',indigo:'#4B0082',gray:'#B0B0B0',brown:'#8B4513',lylac:'#9370DB',pink:'#FF69B4'},components:{Card:{border:1,br:5,borderColor:'divider'}}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_MSDOS_THEME=mergeDeepRight(BASE_THEME,{label:'MSDOS',colors:{primary:'#FFFF00',text:'#FFFFFF',text2:'#E0E0E0',text3:'#B0B0B0',text4:'#8A8A8A',mainBG:'#0000AA',overlayBG:'#000088',backdrop:'#0000AA',shadow:'rgba(0, 0, 0, 0.6)',divider:'rgba(255,255,255,0.3)',blue:'#0000FF',yellow:'#FFFF00',green:'#00FF00',purple:'#AA00FF',orange:'#FF7700',cyan:'#00FFFF',red:'#FF0000',navy:'#000080',indigo:'#4B0082',gray:'#B0B0B0',brown:'#8B4513',lylac:'#9370DB',pink:'#FF69B4'},radius:{xxxs:1,xxs:2,xs:3,sm:4,md:6,lg:8,xl:10,xxl:12,xxxl:14},components:{Card:{border:1,br:5,borderColor:'divider'}}});
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var OCEAN_BREEZE_THEME=mergeDeepRight(BASE_THEME,{colors:{primary:'#2B90D9',text:'#04364A',text2:'#065A82',text3:'#0B84B4',text4:'#3ABEFF',bg:'#E6F7FF',overlayBG:'#FFFFFF',backdrop:'#04364A',shadow:'rgba(39, 45, 52, 0.15)',divider:'rgba(0,0,0, 0.1)',blue:'#1D4ED8',yellow:'#FACC15',green:'#10B981',purple:'#8B5CF6',orange:'#FB923C',cyan:'#06B6D4',red:'#EF4444',navy:'#1E3A8A',indigo:'#6366F1',gray:'#9CA3AF',brown:'#A16207',lylac:'#C4B5FD',pink:'#F472B6'}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var OCEAN_BREEZE_THEME=mergeDeepRight(BASE_THEME,{label:'Ocean Breeze',colors:{primary:'#2B90D9',text:'#065277',text2:'#065A82',text3:'#0B84B4',text4:'#3ABEFF',mainBG:'#E6F7FF',overlayBG:'#FFFFFF',backdrop:'#04364A',shadow:'rgba(39, 45, 52, 0.15)',divider:'rgba(0,0,0, 0.1)',blue:'#1D4ED8',yellow:'#FACC15',green:'#10B981',purple:'#8B5CF6',orange:'#FB923C',cyan:'#06B6D4',red:'#EF4444',navy:'#1E3A8A',indigo:'#6366F1',gray:'#9CA3AF',brown:'#A16207',lylac:'#C4B5FD',pink:'#F472B6'}});
@@ -0,0 +1 @@
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var DEFAULT_PAPER_THEME=mergeDeepRight(BASE_THEME,{label:'Paper',colors:{primary:'#5A5A5A',text:'#000000',text2:'#333333',text3:'#555555',text4:'#777777',mainBG:'#F8F1E3',overlayBG:'#F8F1E3',backdrop:'#383E44',shadow:'rgba(0, 0, 0, 0.04)',divider:'#E3D9C9',blue:'#6B8EAE',yellow:'#EADCA6',green:'#88A288',purple:'#A391B8',orange:'#D9A066',cyan:'#9CC9C2',red:'#B85C5C',navy:'#4A4A4A',indigo:'#70788C',gray:'#B8B8B8',brown:'#8B7355',lylac:'#C7B7D4',pink:'#E4A1B2'}});
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var PASTEL_DREAM_THEME=mergeDeepRight(BASE_THEME,{colors:{primary:'#FFB6C1',text:'#4B4453',text2:'#6D6875',text3:'#A093A6',text4:'#C9BBCF',bg:'#FFF7FA',overlayBG:'#FFFFFF',backdrop:'#4B4453',shadow:'rgba(39, 45, 52, 0.15)',divider:'#f0f0f0',blue:'#A5B4FC',yellow:'#FDE68A',green:'#BBF7D0',purple:'#E9D5FF',orange:'#FED7AA',cyan:'#BAE6FD',red:'#FCA5A5',navy:'#A5B4FC',indigo:'#C7D2FE',gray:'#E5E7EB',brown:'#E0B084',lylac:'#E9D5FF',pink:'#FBCFE8'}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var PASTEL_DREAM_THEME=mergeDeepRight(BASE_THEME,{label:'Pastel Dream',colors:{primary:'#FFB6C1',text:'#4B4453',text2:'#6D6875',text3:'#A093A6',text4:'#C9BBCF',mainBG:'#FFF7FA',overlayBG:'#FFFFFF',backdrop:'#4B4453',shadow:'rgba(39, 45, 52, 0.15)',divider:'#f0f0f0',blue:'#A5B4FC',yellow:'#FDE68A',green:'#BBF7D0',purple:'#E9D5FF',orange:'#FED7AA',cyan:'#BAE6FD',red:'#FCA5A5',navy:'#A5B4FC',indigo:'#C7D2FE',gray:'#E5E7EB',brown:'#E0B084',lylac:'#E9D5FF',pink:'#FBCFE8'}});
@@ -1 +1 @@
1
- import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var SUNSET_GLOW_THEME=mergeDeepRight(BASE_THEME,{colors:{primary:'#FF6B6B',text:'#331E0A',text2:'#5C4033',text3:'#8C5A43',text4:'#B97A57',bg:'#FFF5E6',overlayBG:'#FFFFFF',backdrop:'#331E0A',shadow:'rgba(39, 45, 52, 0.15)',divider:'#f0f0f0',blue:'#3B82F6',yellow:'#FBBF24',green:'#22C55E',purple:'#A855F7',orange:'#FB923C',cyan:'#06B6D4',red:'#DC2626',navy:'#1E3A8A',indigo:'#4F46E5',gray:'#9CA3AF',brown:'#92400E',lylac:'#C084FC',pink:'#F472B6'}});
1
+ import{mergeDeepRight}from'ramda';import{BASE_THEME}from"./base";export var SUNSET_GLOW_THEME=mergeDeepRight(BASE_THEME,{label:'Sunset',colors:{primary:'#FF6B6B',text:'#4B372E',text2:'#5C4033',text3:'#8C5A43',text4:'#B97A57',mainBG:'#FFF5E6',overlayBG:'#FFFAF1',backdrop:'#331E0A',shadow:'rgba(39, 45, 52, 0.15)',divider:'#f0f0f0',blue:'#3B82F6',yellow:'#FBBF24',green:'#22C55E',purple:'#A855F7',orange:'#FB923C',cyan:'#06B6D4',red:'#DC2626',navy:'#1E3A8A',indigo:'#4F46E5',gray:'#9CA3AF',brown:'#92400E',lylac:'#C084FC',pink:'#F472B6'}});
@@ -1 +1 @@
1
- import{CYBERPUNK_DARK_THEME}from"./cyberpunkTheme";import{DEEP_WOODS_DARK_THEME}from"./deepWoodsTheme";import{DEFAULT_BLACK_THEME}from"./blackTheme";import{DEFAULT_DARK_THEME}from"./darkTheme";import{DEFAULT_LIGHT_THEME}from"./lightTheme";import{DEFAULT_MATRIX_THEME}from"./hackerTheme";import{DEFAULT_MSDOS_THEME}from"./msdosTheme";import{FOREST_MIST_THEME}from"./forestTheme";import{MIDNIGHT_NEON_THEME}from"./midnightTheme";import{OCEAN_BREEZE_THEME}from"./oceanTheme";import{PASTEL_DREAM_THEME}from"./pastelTheme";import{SUNSET_GLOW_THEME}from"./sunsetTheme";export var DEFAULT_THEMES={light:DEFAULT_LIGHT_THEME,dark:DEFAULT_DARK_THEME,black:DEFAULT_BLACK_THEME,pastel:PASTEL_DREAM_THEME,midnight:MIDNIGHT_NEON_THEME,sunset:SUNSET_GLOW_THEME,ocean:OCEAN_BREEZE_THEME,forest:FOREST_MIST_THEME,cyberpunk:CYBERPUNK_DARK_THEME,deepWoods:DEEP_WOODS_DARK_THEME,hacker:DEFAULT_MATRIX_THEME,msdos:DEFAULT_MSDOS_THEME};
1
+ import{CYBERPUNK_DARK_THEME}from"./cyberpunkTheme";import{DEFAULT_BLACK_THEME}from"./blackTheme";import{DEFAULT_DARK_THEME}from"./darkTheme";import{DEFAULT_LIGHT_THEME}from"./lightTheme";import{DEFAULT_MATRIX_THEME}from"./hackerTheme";import{DEFAULT_MSDOS_THEME}from"./msdosTheme";import{DEFAULT_PAPER_THEME}from"./paperTheme";import{MIDNIGHT_NEON_THEME}from"./midnightTheme";export var DEFAULT_THEMES={light:DEFAULT_LIGHT_THEME,dark:DEFAULT_DARK_THEME,paper:DEFAULT_PAPER_THEME,black:DEFAULT_BLACK_THEME,midnight:MIDNIGHT_NEON_THEME,cyberpunk:CYBERPUNK_DARK_THEME,hacker:DEFAULT_MATRIX_THEME,msdos:DEFAULT_MSDOS_THEME};
@@ -1 +1 @@
1
- import{mergeDeepRight,pipe}from'ramda';import React from'react';import{DEFAULT_LIGHT_THEME}from"../default/lightTheme";import{DEFAULT_THEMES}from"../default/themes";import{applyColorVariantsOnTheme}from"./colorsVariations";export function useFormattedTheme(themes,key){themes=themes||DEFAULT_THEMES;return React.useMemo(function(){return formatTheme(themes,key);},[key]);}export function formatTheme(themes,key){themes=themes||DEFAULT_THEMES;var theme=themes[key]||DEFAULT_THEMES[key]||DEFAULT_LIGHT_THEME;var baseDefaultTheme=DEFAULT_THEMES[theme.base]||DEFAULT_THEMES[key]||DEFAULT_LIGHT_THEME;return pipe(mergeDeepRight(baseDefaultTheme),applyColorVariantsOnTheme)(Object.assign({},theme));}
1
+ import{mergeDeepRight,mergeDeepLeft,pipe}from'ramda';import React from'react';import tinycolor from'tinycolor2';import{DEFAULT_LIGHT_THEME}from"../default/lightTheme";import{DEFAULT_THEMES}from"../default/themes";import{applyColorVariantsOnTheme}from"./colorsVariations";export function useFormattedTheme(themes,key){themes=themes||DEFAULT_THEMES;return React.useMemo(function(){return formatTheme(themes,key);},[key]);}export function formatTheme(themes,key){var _formattedTheme$color,_formattedTheme$color2;themes=themes||DEFAULT_THEMES;var theme=themes[key]||DEFAULT_THEMES[key]||DEFAULT_LIGHT_THEME;var baseDefaultTheme=DEFAULT_THEMES[theme.base]||DEFAULT_THEMES[key]||DEFAULT_LIGHT_THEME;var formattedTheme=pipe(mergeDeepRight(baseDefaultTheme),applyColorVariantsOnTheme,mergeDeepLeft(themes._all||{}))(Object.assign({},theme));var isDark=tinycolor((formattedTheme==null?void 0:(_formattedTheme$color=formattedTheme.colors)==null?void 0:_formattedTheme$color.overlayBG)||(formattedTheme==null?void 0:(_formattedTheme$color2=formattedTheme.colors)==null?void 0:_formattedTheme$color2.bg)).isDark();return Object.assign({},formattedTheme,{isDark:isDark,isLight:!isDark});}
@@ -1 +1 @@
1
- import tinycolor from'tinycolor2';export function getContrastColor(bg){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:['#FFFFFF','#666666'];var tolerance=arguments.length>2&&arguments[2]!==undefined?arguments[2]:2.5;if(!options.length)return'#666666';return tinycolor.mostReadable(bg,options).toHexString();}
1
+ import tinycolor from'tinycolor2';export function getContrastColor(bg){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:['#FFFFFF','#666666'];var tolerance=arguments.length>2&&arguments[2]!==undefined?arguments[2]:2.5;if(!options.length)return'#666666';var contrasts=options.map(function(color){return{color:color,contrast:tinycolor.readability(bg,color)};});contrasts.sort(function(a,b){return b.contrast-a.contrast;});if(contrasts.length>1&&Math.abs(contrasts[0].contrast-contrasts[1].contrast)<tolerance){return options[0];}return contrasts[0].color;}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neko-os/ui",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "author": "Christian Storch <ccstorch@gmail.com>",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -0,0 +1,21 @@
1
+ import React from 'react'
2
+
3
+ import { useColors } from './theme'
4
+
5
+ export function DynamicStyleTag() {
6
+ const colors = useColors()
7
+ const placeholderColor = colors.text_op30
8
+
9
+ React.useEffect(() => {
10
+ const style = document.createElement('style')
11
+ style.innerHTML = `
12
+ ::placeholder {
13
+ color: ${placeholderColor};
14
+ }
15
+ `
16
+ document.head.appendChild(style)
17
+ return () => style.remove()
18
+ }, [placeholderColor])
19
+
20
+ return false
21
+ }