@neko-os/ui 0.0.1 → 0.0.2

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.
package/README.md CHANGED
@@ -5,7 +5,7 @@ Universal React Native UI library (works on react-native, react-native-web and r
5
5
  ## Install
6
6
 
7
7
  ```
8
- yarn add @neko-os/ui
8
+ yarn add @neko-os/ui ramda dayjs
9
9
  ```
10
10
 
11
11
  ### Web or native-web
@@ -0,0 +1 @@
1
+ var _this=this,_jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/abstractions/View.js";import React from'react';import{jsx as _jsx}from"react/jsx-runtime";var AbsView;try{var _require=require("react-native-web"),Platform=_require.Platform,RNView=_require.View;console.log('NATIVE');AbsView=function AbsView(props){return _jsx(RNView,Object.assign({},props));};}catch(_unused){console.log('WEB');AbsView=function AbsView(props){return _jsx("div",Object.assign({},props));};}export{AbsView};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export*from"./structure";export var version=2;
1
+ export*from"./structure";export var version=8;
@@ -1 +1 @@
1
- import{clearProps}from"./_helpers";export function useFlexModifier(props){var flex=props.flex;if(flex===true)flex=1;var style=clearProps({flex:flex});return Object.assign({},props,{style:Object.assign({},props.style,style)});}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["flex"];import{clearProps}from"./_helpers";export function useFlexModifier(props){var flex=props.flex,restProps=_objectWithoutProperties(props,_excluded);if(flex===true)flex=1;var style=clearProps({flex:flex});return Object.assign({},restProps,{style:Object.assign({},props.style,style)});}
@@ -1 +1 @@
1
- import{clearProps}from"./_helpers";export function useFlexWrapperModifier(props){var justify=props.justify,align=props.align,center=props.center,centerV=props.centerV,centerH=props.centerH,toRight=props.toRight,toBottom=props.toBottom,direction=props.direction,row=props.row,wrap=props.wrap,gap=props.gap;var justifyContent=justify;var alignItems=align;var flexDirection=direction;var flexWrap;if(center){justifyContent='center';alignItems='center';}else{if(centerV)justifyContent='center';if(toBottom)justifyContent='flex-end';if(centerH)alignItems='center';if(toRight)alignItems='flex-end';}if(row)flexDirection='row';if(wrap)flexWrap='wrap';var style=clearProps({justifyContent:justifyContent,alignItems:alignItems,flexDirection:flexDirection,flexWrap:flexWrap,gap:gap});return Object.assign({},props,{style:Object.assign({},props.style,style)});}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["justify","align","center","centerV","centerH","toRight","toBottom","direction","row","wrap","gap"];import{clearProps}from"./_helpers";export function useFlexWrapperModifier(props){var justify=props.justify,align=props.align,center=props.center,centerV=props.centerV,centerH=props.centerH,toRight=props.toRight,toBottom=props.toBottom,direction=props.direction,row=props.row,wrap=props.wrap,gap=props.gap,restProps=_objectWithoutProperties(props,_excluded);var justifyContent=justify;var alignItems=align;var flexDirection=direction||'column';var flexWrap;if(center){justifyContent='center';alignItems='center';}else{if(centerV)justifyContent='center';if(toBottom)justifyContent='flex-end';if(centerH)alignItems='center';if(toRight)alignItems='flex-end';}if(row)flexDirection='row';if(wrap)flexWrap='wrap';var style=clearProps({display:'flex',justifyContent:justifyContent,alignItems:alignItems,flexDirection:flexDirection,flexWrap:flexWrap,gap:gap});return Object.assign({},restProps,{style:Object.assign({},props.style,style)});}
@@ -1 +1 @@
1
- import{clearProps}from"./_helpers";export function useMarginModifier(props){var _ref,_ref2,_ref3,_ref4;var marginT=props.marginT,marginB=props.marginB,marginL=props.marginL,marginR=props.marginR,marginV=props.marginV,marginH=props.marginH,margin=props.margin;var marginTop=(_ref=marginT!=null?marginT:marginV)!=null?_ref:margin;var marginBottom=(_ref2=marginB!=null?marginB:marginV)!=null?_ref2:margin;var marginRight=(_ref3=marginR!=null?marginR:marginH)!=null?_ref3:margin;var marginLeft=(_ref4=marginL!=null?marginL:marginH)!=null?_ref4:margin;var style=clearProps({marginTop:marginTop,marginBottom:marginBottom,marginRight:marginRight,marginLeft:marginLeft});return Object.assign({},props,{style:Object.assign({},props.style,style)});}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["marginT","marginB","marginL","marginR","marginV","marginH","margin"];import{clearProps}from"./_helpers";export function useMarginModifier(props){var _ref,_ref2,_ref3,_ref4;var marginT=props.marginT,marginB=props.marginB,marginL=props.marginL,marginR=props.marginR,marginV=props.marginV,marginH=props.marginH,margin=props.margin,restProps=_objectWithoutProperties(props,_excluded);var marginTop=(_ref=marginT!=null?marginT:marginV)!=null?_ref:margin;var marginBottom=(_ref2=marginB!=null?marginB:marginV)!=null?_ref2:margin;var marginRight=(_ref3=marginR!=null?marginR:marginH)!=null?_ref3:margin;var marginLeft=(_ref4=marginL!=null?marginL:marginH)!=null?_ref4:margin;var style=clearProps({marginTop:marginTop,marginBottom:marginBottom,marginRight:marginRight,marginLeft:marginLeft});return Object.assign({},restProps,{style:Object.assign({},props.style,style)});}
@@ -1 +1 @@
1
- import{clearProps}from"./_helpers";export function usePaddingModifier(props){var _ref,_ref2,_ref3,_ref4;var paddingT=props.paddingT,paddingB=props.paddingB,paddingL=props.paddingL,paddingR=props.paddingR,paddingV=props.paddingV,paddingH=props.paddingH,padding=props.padding;var paddingTop=(_ref=paddingT!=null?paddingT:paddingV)!=null?_ref:padding;var paddingBottom=(_ref2=paddingB!=null?paddingB:paddingV)!=null?_ref2:padding;var paddingRight=(_ref3=paddingR!=null?paddingR:paddingH)!=null?_ref3:padding;var paddingLeft=(_ref4=paddingL!=null?paddingL:paddingH)!=null?_ref4:padding;var style=clearProps({paddingTop:paddingTop,paddingBottom:paddingBottom,paddingRight:paddingRight,paddingLeft:paddingLeft});return Object.assign({},props,{style:Object.assign({},props.style,style)});}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["paddingT","paddingB","paddingL","paddingR","paddingV","paddingH","padding"];import{clearProps}from"./_helpers";export function usePaddingModifier(props){var _ref,_ref2,_ref3,_ref4;var paddingT=props.paddingT,paddingB=props.paddingB,paddingL=props.paddingL,paddingR=props.paddingR,paddingV=props.paddingV,paddingH=props.paddingH,padding=props.padding,restProps=_objectWithoutProperties(props,_excluded);var paddingTop=(_ref=paddingT!=null?paddingT:paddingV)!=null?_ref:padding;var paddingBottom=(_ref2=paddingB!=null?paddingB:paddingV)!=null?_ref2:padding;var paddingRight=(_ref3=paddingR!=null?paddingR:paddingH)!=null?_ref3:padding;var paddingLeft=(_ref4=paddingL!=null?paddingL:paddingH)!=null?_ref4:padding;var style=clearProps({paddingTop:paddingTop,paddingBottom:paddingBottom,paddingRight:paddingRight,paddingLeft:paddingLeft});return Object.assign({},restProps,{style:Object.assign({},props.style,style)});}
@@ -1 +1 @@
1
- import{clearProps}from"./_helpers";export function usePositionModifier(props){var position=props.position,absolute=props.absolute,relative=props.relative,top=props.top,bottom=props.bottom,left=props.left,right=props.right;if(absolute)position='absolute';if(relative)position='relative';var style=clearProps({position:position,top:top,bottom:bottom,left:left,right:right});return Object.assign({},props,{style:Object.assign({},props.style,style)});}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["position","absolute","relative","top","bottom","left","right"];import{clearProps}from"./_helpers";export function usePositionModifier(props){var position=props.position,absolute=props.absolute,relative=props.relative,top=props.top,bottom=props.bottom,left=props.left,right=props.right,restProps=_objectWithoutProperties(props,_excluded);if(absolute)position='absolute';if(relative)position='relative';var style=clearProps({position:position,top:top,bottom:bottom,left:left,right:right});return Object.assign({},restProps,{style:Object.assign({},props.style,style)});}
@@ -1 +1 @@
1
- import{clearProps}from"./_helpers";export function useSizeModifier(props){var _ref=props||{},width=_ref.width,height=_ref.height,fullWidth=_ref.fullWidth,fullHeight=_ref.fullHeight;if(fullWidth)width='100%';if(fullHeight)height='100%';var style=clearProps({height:height,width:width});return Object.assign({},props,{style:Object.assign({},props.style,style)});}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["width","height","fullWidth","fullHeight"];import{clearProps}from"./_helpers";export function useSizeModifier(props){var _ref=props||{},width=_ref.width,height=_ref.height,fullWidth=_ref.fullWidth,fullHeight=_ref.fullHeight,restProps=_objectWithoutProperties(_ref,_excluded);if(fullWidth)width='100%';if(fullHeight)height='100%';var style=clearProps({height:height,width:width});return Object.assign({},restProps,{style:Object.assign({},props.style,style)});}
@@ -1 +1 @@
1
- import{clearProps}from"./_helpers";export function useTextModifier(props){var opacity=props.opacity,bold=props.bold,strong=props.strong,fontWeight=props.fontWeight,italic=props.italic,underline=props.underline,lineHeight=props.lineHeight,align=props.align,center=props.center,toRight=props.toRight;var fontStyle;if(italic)fontStyle='italic';var textDecorationLine;if(underline)textDecorationLine='underline';var textAlign=align;if(center)textAlign='center';if(toRight)textAlign='right';if(bold||strong)fontWeight=600;var style=clearProps({fontWeight:fontWeight,fontStyle:fontStyle,textDecorationLine:textDecorationLine,lineHeight:lineHeight,textAlign:textAlign,opacity:opacity});return Object.assign({},props,{style:Object.assign({},props.style,style)});}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["opacity","bold","strong","fontWeight","italic","underline","lineHeight","align","center","toRight"];import{clearProps}from"./_helpers";export function useTextModifier(props){var opacity=props.opacity,bold=props.bold,strong=props.strong,fontWeight=props.fontWeight,italic=props.italic,underline=props.underline,lineHeight=props.lineHeight,align=props.align,center=props.center,toRight=props.toRight,restProps=_objectWithoutProperties(props,_excluded);var fontStyle;if(italic)fontStyle='italic';var textDecorationLine;if(underline)textDecorationLine='underline';var textAlign=align;if(center)textAlign='center';if(toRight)textAlign='right';if(bold||strong)fontWeight=600;var style=clearProps({fontWeight:fontWeight,fontStyle:fontStyle,textDecorationLine:textDecorationLine,lineHeight:lineHeight,textAlign:textAlign,opacity:opacity});return Object.assign({},restProps,{style:Object.assign({},props.style,style)});}
@@ -1 +1 @@
1
- var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/structure/View.js";import React from'react';import{View as NativeView}from"react-native-web";import{pipe}from'ramda';import{useFlexModifier}from"../modifiers/flex";import{useFlexWrapperModifier}from"../modifiers/flexWrapper";import{useMarginModifier}from"../modifiers/margin";import{usePaddingModifier}from"../modifiers/padding";import{usePositionModifier}from"../modifiers/position";import{useSizeModifier}from"../modifiers/size";import{jsx as _jsx}from"react/jsx-runtime";export function View(props){props=pipe(useSizeModifier,usePositionModifier,usePaddingModifier,useMarginModifier,useFlexWrapperModifier,useFlexModifier);return _jsx(NativeView,Object.assign({},props));}
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/Users/christianstorch/Apps/nekoapps/libs/neko-ui/src/structure/View.js";var _excluded=["children"];import{pipe}from'ramda';import{AbsView}from"../abstractions/View";import{useFlexModifier}from"../modifiers/flex";import{useFlexWrapperModifier}from"../modifiers/flexWrapper";import{useMarginModifier}from"../modifiers/margin";import{usePaddingModifier}from"../modifiers/padding";import{usePositionModifier}from"../modifiers/position";import{useSizeModifier}from"../modifiers/size";import{jsx as _jsx}from"react/jsx-runtime";export function View(_ref){var children=_ref.children,props=_objectWithoutProperties(_ref,_excluded);props=pipe(useSizeModifier,usePositionModifier,usePaddingModifier,useMarginModifier,useFlexWrapperModifier,useFlexModifier)(props);return _jsx(AbsView,Object.assign({},props,{children:children}));}
package/package.json CHANGED
@@ -1,11 +1,14 @@
1
1
  {
2
2
  "name": "@neko-os/ui",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "author": "Christian Storch <ccstorch@gmail.com>",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "react-native": "src/index.js",
8
- "files": ["dist", "src"],
8
+ "files": [
9
+ "dist",
10
+ "src"
11
+ ],
9
12
  "scripts": {
10
13
  "build": "rm -rf dist && babel src --out-dir dist --extensions \".js,.jsx\" --copy-files",
11
14
  "watch": "babel src --out-dir dist --extensions \".js,.jsx\" --copy-files --watch",
@@ -23,9 +26,7 @@
23
26
  "react-native": "*"
24
27
  },
25
28
  "dependencies": {
26
- "dayjs": "^1.11.13",
27
29
  "prop-types": "^15.8.1",
28
- "ramda": "^0.31.3",
29
30
  "react-native-web": "^0.21.0"
30
31
  },
31
32
  "devDependencies": {
@@ -0,0 +1,14 @@
1
+ import React from 'react'
2
+
3
+ let AbsView
4
+
5
+ try {
6
+ const { Platform, View: RNView } = require('react-native')
7
+ console.log('NATIVE')
8
+ AbsView = (props) => <RNView {...props} />
9
+ } catch {
10
+ console.log('WEB')
11
+ AbsView = (props) => <div {...props} />
12
+ }
13
+
14
+ export { AbsView }
package/src/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  // export * from './form'
2
2
  export * from './structure'
3
+ //
4
+ // export const View = 10
3
5
 
4
- export const version = 2
6
+ export const version = 8
@@ -1,14 +1,14 @@
1
1
  import { clearProps } from './_helpers'
2
2
 
3
3
  export function useFlexModifier(props) {
4
- let { flex } = props
4
+ let { flex, ...restProps } = props
5
5
 
6
6
  if (flex === true) flex = 1
7
7
 
8
8
  const style = clearProps({ flex })
9
9
 
10
10
  return {
11
- ...props,
11
+ ...restProps,
12
12
  style: {
13
13
  ...props.style,
14
14
  ...style,
@@ -1,11 +1,11 @@
1
1
  import { clearProps } from './_helpers'
2
2
 
3
3
  export function useFlexWrapperModifier(props) {
4
- const { justify, align, center, centerV, centerH, toRight, toBottom, direction, row, wrap, gap } = props
4
+ const { justify, align, center, centerV, centerH, toRight, toBottom, direction, row, wrap, gap, ...restProps } = props
5
5
 
6
6
  let justifyContent = justify
7
7
  let alignItems = align
8
- let flexDirection = direction
8
+ let flexDirection = direction || 'column'
9
9
  let flexWrap
10
10
 
11
11
  if (center) {
@@ -22,6 +22,7 @@ export function useFlexWrapperModifier(props) {
22
22
  if (wrap) flexWrap = 'wrap'
23
23
 
24
24
  const style = clearProps({
25
+ display: 'flex',
25
26
  justifyContent,
26
27
  alignItems,
27
28
  flexDirection,
@@ -30,7 +31,7 @@ export function useFlexWrapperModifier(props) {
30
31
  })
31
32
 
32
33
  return {
33
- ...props,
34
+ ...restProps,
34
35
  style: {
35
36
  ...props.style,
36
37
  ...style,
@@ -1,7 +1,7 @@
1
1
  import { clearProps } from './_helpers'
2
2
 
3
3
  export function useMarginModifier(props) {
4
- const { marginT, marginB, marginL, marginR, marginV, marginH, margin } = props
4
+ const { marginT, marginB, marginL, marginR, marginV, marginH, margin, ...restProps } = props
5
5
 
6
6
  const marginTop = marginT ?? marginV ?? margin
7
7
  const marginBottom = marginB ?? marginV ?? margin
@@ -11,7 +11,7 @@ export function useMarginModifier(props) {
11
11
  const style = clearProps({ marginTop, marginBottom, marginRight, marginLeft })
12
12
 
13
13
  return {
14
- ...props,
14
+ ...restProps,
15
15
  style: {
16
16
  ...props.style,
17
17
  ...style,
@@ -1,7 +1,7 @@
1
1
  import { clearProps } from './_helpers'
2
2
 
3
3
  export function usePaddingModifier(props) {
4
- const { paddingT, paddingB, paddingL, paddingR, paddingV, paddingH, padding } = props
4
+ const { paddingT, paddingB, paddingL, paddingR, paddingV, paddingH, padding, ...restProps } = props
5
5
 
6
6
  const paddingTop = paddingT ?? paddingV ?? padding
7
7
  const paddingBottom = paddingB ?? paddingV ?? padding
@@ -11,7 +11,7 @@ export function usePaddingModifier(props) {
11
11
  const style = clearProps({ paddingTop, paddingBottom, paddingRight, paddingLeft })
12
12
 
13
13
  return {
14
- ...props,
14
+ ...restProps,
15
15
  style: {
16
16
  ...props.style,
17
17
  ...style,
@@ -1,7 +1,7 @@
1
1
  import { clearProps } from './_helpers'
2
2
 
3
3
  export function usePositionModifier(props) {
4
- let { position, absolute, relative, top, bottom, left, right } = props
4
+ let { position, absolute, relative, top, bottom, left, right, ...restProps } = props
5
5
 
6
6
  if (absolute) position = 'absolute'
7
7
  if (relative) position = 'relative'
@@ -9,7 +9,7 @@ export function usePositionModifier(props) {
9
9
  const style = clearProps({ position, top, bottom, left, right })
10
10
 
11
11
  return {
12
- ...props,
12
+ ...restProps,
13
13
  style: {
14
14
  ...props.style,
15
15
  ...style,
@@ -1,14 +1,14 @@
1
1
  import { clearProps } from './_helpers'
2
2
 
3
3
  export function useSizeModifier(props) {
4
- let { width, height, fullWidth, fullHeight } = props || {}
4
+ let { width, height, fullWidth, fullHeight, ...restProps } = props || {}
5
5
  if (fullWidth) width = '100%'
6
6
  if (fullHeight) height = '100%'
7
7
 
8
8
  const style = clearProps({ height, width })
9
9
 
10
10
  return {
11
- ...props,
11
+ ...restProps,
12
12
  style: { ...props.style, ...style },
13
13
  }
14
14
  }
@@ -1,7 +1,7 @@
1
1
  import { clearProps } from './_helpers'
2
2
 
3
3
  export function useTextModifier(props) {
4
- let { opacity, bold, strong, fontWeight, italic, underline, lineHeight, align, center, toRight } = props
4
+ let { opacity, bold, strong, fontWeight, italic, underline, lineHeight, align, center, toRight, ...restProps } = props
5
5
 
6
6
  let fontStyle
7
7
  if (italic) fontStyle = 'italic'
@@ -27,7 +27,7 @@ export function useTextModifier(props) {
27
27
  // TODO: Handle font sizes based on theme
28
28
 
29
29
  return {
30
- ...props,
30
+ ...restProps,
31
31
  style: {
32
32
  ...props.style,
33
33
  ...style,
@@ -1,7 +1,6 @@
1
- import React from 'react'
2
- import { View as NativeView } from 'react-native'
3
1
  import { pipe } from 'ramda'
4
2
 
3
+ import { AbsView } from '../abstractions/View'
5
4
  import { useFlexModifier } from '../modifiers/flex'
6
5
  import { useFlexWrapperModifier } from '../modifiers/flexWrapper'
7
6
  import { useMarginModifier } from '../modifiers/margin'
@@ -9,7 +8,7 @@ import { usePaddingModifier } from '../modifiers/padding'
9
8
  import { usePositionModifier } from '../modifiers/position'
10
9
  import { useSizeModifier } from '../modifiers/size'
11
10
 
12
- export function View(props) {
11
+ export function View({ children, ...props }) {
13
12
  props = pipe(
14
13
  useSizeModifier, //
15
14
  usePositionModifier,
@@ -17,7 +16,7 @@ export function View(props) {
17
16
  useMarginModifier,
18
17
  useFlexWrapperModifier,
19
18
  useFlexModifier
20
- )
19
+ )(props)
21
20
 
22
- return <NativeView {...props} />
21
+ return <AbsView {...props}>{children}</AbsView>
23
22
  }